from conf import conf
from conf import sf
import exceptions
+import configurations
def all():
try:
utils.dirtycheck()
except exceptions.DirtyRepository as e:
print("Warning: " + str(e))
- base()
- parse_kconfig()
gen_fixed()
- # check if database is initialized
- database.database()
-
-def base():
- print('Initialize base...')
- try:
- os.mkdir(sf(conf.build_folder))
- except FileExistsError:
- pass
- try:
- os.mkdir(sf(conf.log_folder))
- except FileExistsError:
- pass
-
-def parse_kconfig():
- "Execute parse_kconfig in linux_sources directory."
- if os.path.isfile(sf(conf.symbol_map_file)) and \
- os.path.isfile(sf(conf.rules_file)) and \
- os.path.isfile(sf(conf.variable_count_file)):
- print('Warning: parse_kconfig not executed. Files already exists.')
- return
- print('Executing parse_kconfig...')
- wd = os.getcwd()
- os.chdir(sf(conf.linux_sources))
- parse_kconfig_cmd = [sf(conf.parse_kconfig)]
- parse_kconfig_cmd += [sf(conf.linux_kconfig_head), sf(conf.build_folder)]
- parse_kconfig_cmd += ['-v', '-v']
- utils.callsubprocess("parse_kconfig", parse_kconfig_cmd,
- conf.parse_kconfig_output, env=utils.get_kernel_env())
- os.chdir(wd)
-
+ checkmeasure()
+ database.database() # check if database is initialized
def __gen_allconfig_fixed__():
wd = os.getcwd()
raise exceptions.ConfigurationError("Can't measure configuraion option MODULES. Not supported.")
fmes.write(str(srmap[line[7:indx]]) + "\n")
+def checkmeasure():
+ if os.path.isfile(sf(conf.measurechecked_file)):
+ print("Checking if all configurations can be measured skiped.")
+ print(" For new check remove file " + sf(conf.measurechecked_file))
+ return
+ print("Checking if all configurations can be measured...")
+ utils.build_symbol_map()
+ measure_list = set()
+ with open(sf(conf.variable_count_file)) as f:
+ var_num = f.readline().rstrip()
+ conf_num = f.readline().rstrip()
+ with open(sf(conf.measure_file), 'r') as fi:
+ for ln in fi:
+ measure_list.add(int(ln))
+ for measure in measure_list:
+ tfile1 = configurations.__buildtempcnf__(var_num, (sf(conf.rules_file),
+ sf(conf.fixed_file)), [str(measure)])
+ tfile2 = configurations.__buildtempcnf__(var_num, (sf(conf.rules_file),
+ sf(conf.fixed_file)), [str(-1 * measure)])
+ try:
+ configurations.__exec_sat__(tfile1, [], conf_num)
+ except exceptions.NoSolution:
+ print("W: " + utils.smap[measure] + " won't be measured! Can't select.")
+ try:
+ configurations.__exec_sat__(tfile2, [], conf_num)
+ except exceptions.NoSolution:
+ print("W: " + utils.smap[measure] + " won't be measured! Can't unselect.")
+ with open(sf(conf.measurechecked_file), 'w') as f:
+ f.write("Remove this file if you wanna execute check if all configurations can be measured once again.\n")
#################################################################################