buildman: adjust for Kconfig

Use "make <board>_defconfig" instead of "make <board>_config".

Invoke tools/genboardscfg.py to generate boards.cfg when it is missing.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/buildman/board.py b/tools/buildman/board.py
index 5172a47..7bcc932 100644
--- a/tools/buildman/board.py
+++ b/tools/buildman/board.py
@@ -17,7 +17,7 @@
             soc: Name of SOC, or '' if none (e.g. mx31)
             vendor: Name of vendor (e.g. armltd)
             board_name: Name of board (e.g. integrator)
-            target: Target name (use make <target>_config to configure)
+            target: Target name (use make <target>_defconfig to configure)
             options: board-specific options (e.g. integratorcp:CM1136)
         """
         self.target = target
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 7de8125..48408ff 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -199,7 +199,7 @@
             commit_upto: Commit number to build (0...n-1)
             brd: Board object to build
             work_dir: Directory to which the source will be checked out
-            do_config: True to run a make <board>_config on the source
+            do_config: True to run a make <board>_defconfig on the source
             force_build: Force a build even if one was previously done
             force_build_failures: Force a bulid if the previous result showed
                 failure
@@ -266,7 +266,7 @@
                 args.append('-s')
                 if self.builder.num_jobs is not None:
                     args.extend(['-j', str(self.builder.num_jobs)])
-                config_args = ['%s_config' % brd.target]
+                config_args = ['%s_defconfig' % brd.target]
                 config_out = ''
                 args.extend(self.builder.toolchains.GetMakeArguments(brd))
 
@@ -419,7 +419,7 @@
         work_dir = self.builder.GetThreadDir(self.thread_num)
         self.toolchain = None
         if job.commits:
-            # Run 'make board_config' on the first commit
+            # Run 'make board_defconfig' on the first commit
             do_config = True
             commit_upto  = 0
             force_build = False
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 267b7d9..75b6498 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -15,6 +15,7 @@
 import terminal
 import toolchain
 import command
+import subprocess
 
 def GetPlural(count):
     """Returns a plural 's' if count is not 1"""
@@ -109,6 +110,15 @@
         sys.exit(1)
 
     # Work out what subset of the boards we are building
+    board_file = os.path.join(options.git, 'boards.cfg')
+    if not os.path.exists(board_file):
+        print 'Could not find %s' % board_file
+        status = subprocess.call([os.path.join(options.git,
+                                               'tools/genboardscfg.py')])
+        if status != 0:
+            print >> sys.stderr, "Failed to generate boards.cfg"
+            sys.exit(1)
+
     boards = board.Boards()
     boards.ReadBoards(os.path.join(options.git, 'boards.cfg'))
     why_selected = boards.SelectBoards(args)