re_arch = re.compile(r'CONFIG_SYS_ARCH="(.*)"')
re_cpu = re.compile(r'CONFIG_SYS_CPU="(.*)"')
- def __init__(self, configs, options, progress, build_dir):
+ def __init__(self, configs, options, build_dir):
"""Create a new parser.
Arguments:
configs: A list of CONFIGs to move.
options: option flags.
- progress: A progress indicator
build_dir: Build directory.
"""
self.configs = configs
self.options = options
- self.progress = progress
self.dotconfig = os.path.join(build_dir, '.config')
self.autoconf = os.path.join(build_dir, 'include', 'autoconf.mk')
self.config_autoconf = os.path.join(build_dir, 'include', 'config',
This function parses the generated .config and include/autoconf.mk
searching the target options.
Move the config option(s) to the .config as needed.
- Also, display the log to show what happened to the .config.
Arguments:
defconfig: defconfig name.
+
+ Returns:
+ Return log string
"""
results = []
log += log_msg(self.options.color, log_color, defconfig, actlog)
- # Some threads are running in parallel.
- # Print log in one shot to not mix up logs from different threads.
- print log,
- self.progress.show()
-
with open(self.dotconfig, 'a') as f:
for (action, value) in results:
if action == ACTION_MOVE:
os.remove(self.config_autoconf)
os.remove(self.autoconf)
+ return log
+
class Slot:
"""A slot to store a subprocess.
self.build_dir = tempfile.mkdtemp()
self.devnull = devnull
self.make_cmd = (make_cmd, 'O=' + self.build_dir)
- self.parser = KconfigParser(configs, options, progress, self.build_dir)
+ self.parser = KconfigParser(configs, options, self.build_dir)
self.state = STATE_IDLE
self.failed_boards = []
return True
if self.state == STATE_AUTOCONF:
- self.parser.update_dotconfig(self.defconfig)
+ self.log = self.parser.update_dotconfig(self.defconfig)
"""Save off the defconfig in a consistent way"""
cmd = list(self.make_cmd)
if not self.options.dry_run:
shutil.move(os.path.join(self.build_dir, 'defconfig'),
os.path.join('configs', self.defconfig))
+ # Some threads are running in parallel.
+ # Print log in one shot to not mix up logs from different threads.
+ print self.log,
self.progress.inc()
+ self.progress.show()
self.state = STATE_IDLE
return True
while not slots.empty():
time.sleep(SLEEP_TIME)
- progress.show()
print ''
slots.show_failed_boards()