aboutsummaryrefslogtreecommitdiff
path: root/scripts/solution.py
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2015-05-06 21:18:38 +0200
committerKarel Kočí <cynerd@email.cz>2015-05-06 21:18:38 +0200
commit86eb35073eaf733db725647eb7429da22d4d365a (patch)
tree5dff5d8e040624b546d78f545469027ab5198ae5 /scripts/solution.py
parentff8c714ac90ba532030a5889ab9529c31a966238 (diff)
downloadlinux-conf-perf-86eb35073eaf733db725647eb7429da22d4d365a.tar.gz
linux-conf-perf-86eb35073eaf733db725647eb7429da22d4d365a.tar.bz2
linux-conf-perf-86eb35073eaf733db725647eb7429da22d4d365a.zip
Add generation of all solutions in initialization phase
Diffstat (limited to 'scripts/solution.py')
-rw-r--r--scripts/solution.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/scripts/solution.py b/scripts/solution.py
index 60e9538..8e02324 100644
--- a/scripts/solution.py
+++ b/scripts/solution.py
@@ -6,7 +6,7 @@ import subprocess
import utils
from conf import conf
from conf import sf
-from exceptions import NoSolution
+import exceptions
def generate():
"""Collect boolean equations from files: rules, solved and required
@@ -14,7 +14,10 @@ def generate():
"""
# Check if rules_file exist. If it was generated.
if not os.path.isfile(sf(conf.rules_file)):
- raise Exception("Rules file missing. Run parse_kconfig and check ecistence of " + rules_file)
+ raise exceptions.MissingFile(conf.rules_file,"Run parse_kconfig.")
+
+ if sys.path.isfile(sf(conf.solution_file)) and conf.gen_all_solution_oninit:
+ raise exceptions.SolutionGenerated()
w_file = tempfile.NamedTemporaryFile(delete=False)
# Join files to one single temporary file
@@ -47,13 +50,14 @@ def generate():
w_file.close()
# Execute picosat
+ picosat_cmd = [conf.picosat, w_file.name]
+ picosat_cmd += ['-o', sf(conf.solution_file)]
+ if (conf.gen_all_solution_oninit):
+ picosat_cmd += ['--all']
if conf.picosat_output:
- subprocess.call([conf.picosat, w_file.name, '-o',
- sf(conf.solution_file)] + conf.picosat_args)
+ subprocess.call(picosat_cmd)
else:
- subprocess.call([conf.picosat, w_file.name, '-o',
- sf(conf.solution_file)] + conf.picosat_args,
- stdout=subprocess.DEVNULL)
+ subprocess.call(picosat_cmd, stdout=subprocess.DEVNULL)
os.remove(w_file.name)