buildman: Add an option to write the full build output
authorSimon Glass <sjg@chromium.org>
Tue, 2 Dec 2014 00:34:07 +0000 (17:34 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 15 Jan 2015 05:16:54 +0000 (21:16 -0800)
Normally buildman runs with 'make -s' meaning that only errors and warnings
appear in the log file. Add a -V option to run make in verbose mode, and
with V=1, causing a full build log to be created.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/buildman/builder.py
tools/buildman/builderthread.py
tools/buildman/cmdline.py
tools/buildman/control.py

index 93d048b568205bd1ba2af41c9339a84b958bed1e..1b0ad9927592d9b22ca63893de0bd2255db8fb7d 100644 (file)
@@ -175,7 +175,7 @@ class Builder:
 
     def __init__(self, toolchains, base_dir, git_dir, num_threads, num_jobs,
                  gnu_make='make', checkout=True, show_unknown=True, step=1,
-                 no_subdirs=False, full_path=False):
+                 no_subdirs=False, full_path=False, verbose_build=False):
         """Create a new Builder object
 
         Args:
@@ -193,6 +193,7 @@ class Builder:
                 source for a single board
             full_path: Return the full path in CROSS_COMPILE and don't set
                 PATH
+            verbose_build: Run build with V=1 and don't use 'make -s'
         """
         self.toolchains = toolchains
         self.base_dir = base_dir
@@ -220,6 +221,7 @@ class Builder:
         self._error_lines = 0
         self.no_subdirs = no_subdirs
         self.full_path = full_path
+        self.verbose_build = verbose_build
 
         self.col = terminal.Color()
 
index a803481458be4d1aa68dcca6bd8100b5aa5f93e1..efb62f16d7020793d6f24439fd34c46df05134db 100644 (file)
@@ -197,7 +197,8 @@ class BuilderThread(threading.Thread):
                         src_dir = os.getcwd()
                     else:
                         args.append('O=build')
-                args.append('-s')
+                if not self.builder.verbose_build:
+                    args.append('-s')
                 if self.builder.num_jobs is not None:
                     args.extend(['-j', str(self.builder.num_jobs)])
                 config_args = ['%s_defconfig' % brd.target]
index e884e190e3a4ee319b01022b5c84c30914eb1ab3..e8a6dadd1c7dfd8cca279b7c5cde03de337315f9 100644 (file)
@@ -82,6 +82,8 @@ def ParseArgs():
           default=False, help='Show boards with unknown build result')
     parser.add_option('-v', '--verbose', action='store_true',
           default=False, help='Show build results while the build progresses')
+    parser.add_option('-V', '--verbose-build', action='store_true',
+          default=False, help='Run make with V=1, showing all output')
     parser.add_option('-x', '--exclude', dest='exclude',
           type='string', action='append',
           help='Specify a list of boards to exclude, separated by comma')
index a7c58227f0bbb52588873b2a0ff57193be4c7680..720b978b238ffb8d664f03278b6a7f29cb7f3d73 100644 (file)
@@ -248,7 +248,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
     builder = Builder(toolchains, output_dir, options.git_dir,
             options.threads, options.jobs, gnu_make=gnu_make, checkout=True,
             show_unknown=options.show_unknown, step=options.step,
-            no_subdirs=options.no_subdirs, full_path=options.full_path)
+            no_subdirs=options.no_subdirs, full_path=options.full_path,
+            verbose_build=options.verbose_build)
     builder.force_config_on_failure = not options.quick
     if make_func:
         builder.do_make = make_func