[U-Boot] [PATCH v2 5/7] moveconfig: Always run savedefconfig on the moved config

Joe Hershberger joe.hershberger at ni.com
Mon May 11 19:23:16 CEST 2015


This will ensure that the order of the defconfig entries will always
match that of the Kconfig files. After one slightly painful (but
still early in the process) pass over all boards, this should keep
the defconfigs clean from here on.

Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
---

Changes in v2: None

 tools/moveconfig.py | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 2e5f2ce..5572be9 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -46,6 +46,7 @@ CROSS_COMPILE = {
 STATE_IDLE = 0
 STATE_DEFCONFIG = 1
 STATE_SILENTOLDCONFIG = 2
+STATE_SAVEDEFCONFIG = 3
 
 ### helper functions ###
 def get_devnull():
@@ -150,8 +151,8 @@ class KconfigParser:
         """
         arch = ''
         cpu = ''
-        dotconfig = os.path.join(self.build_dir, '.config')
-        for line in open(dotconfig):
+        self.dotconfig = os.path.join(self.build_dir, '.config')
+        for line in open(self.dotconfig):
             m = self.re_arch.match(line)
             if m:
                 arch = m.group(1)
@@ -225,7 +226,7 @@ class KconfigParser:
 
         print output.strip()
 
-        with open(os.path.join('configs', defconfig), 'a') as f:
+        with open(os.path.join(self.dotconfig), 'a') as f:
             for line in output_lines:
                 if prefixes[line] != '+':
                     line = prefixes[line] + ':' + line
@@ -313,6 +314,23 @@ class Slot:
         if self.state == STATE_SILENTOLDCONFIG:
             if self.parser.update_defconfig(self.defconfig):
                 self.defconfig_error('ERROR - autoconf.mk not found')
+                self.state = STATE_IDLE
+                return True
+
+            """Save off the defconfig in a consistent way"""
+            cmd = list(self.make_cmd)
+            cmd.append('savedefconfig')
+            self.ps = subprocess.Popen(cmd, stdout=self.devnull,
+                                       stderr=self.devnull)
+            self.state = STATE_SAVEDEFCONFIG
+            return False
+
+        if self.state == STATE_SAVEDEFCONFIG:
+            defconfig_path = os.path.join(self.build_dir, 'defconfig')
+            if not os.path.exists(defconfig_path):
+                self.defconfig_error('ERROR - defconfig not updated')
+            shutil.move(defconfig_path,
+                        os.path.join('configs', self.defconfig))
             self.state = STATE_IDLE
             return True
 
-- 
1.7.11.5



More information about the U-Boot mailing list