diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 84ad16d876..e32104412e 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -496,10 +496,13 @@ class KconfigParser: defconfig: defconfig name. Returns: - Return log string + Return a tuple of (updated flag, log string). + The "updated flag" is True if the .config was updated, False + otherwise. The "log string" shows what happend to the .config. """ results = [] + updated = False with open(self.dotconfig) as f: dotconfig_lines = f.readlines() @@ -534,11 +537,12 @@ class KconfigParser: for (action, value) in results: if action == ACTION_MOVE: f.write(value + '\n') + updated = True os.remove(self.config_autoconf) os.remove(self.autoconf) - return log + return (updated, log) class Slot: @@ -614,8 +618,11 @@ class Slot: If the configuration is successfully finished, assign a new subprocess to build include/autoconf.mk. If include/autoconf.mk is generated, invoke the parser to - parse the .config and the include/autoconf.mk, and then set the - slot back to the idle state. + parse the .config and the include/autoconf.mk, moving + config options to the .config as needed. + If the .config was updated, run "make savedefconfig" to sync + it, update the original defconfig, and then set the slot back + to the idle state. Returns: Return True if the subprocess is terminated, False otherwise @@ -636,8 +643,12 @@ class Slot: return True if self.state == STATE_AUTOCONF: - self.log += self.parser.update_dotconfig() + (updated, log) = self.parser.update_dotconfig() + self.log += log + if not updated: + self.finish(True) + return True """Save off the defconfig in a consistent way""" cmd = list(self.make_cmd) cmd.append('savedefconfig')