aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/buildman/builder.py10
-rwxr-xr-xtools/buildman/buildman.py3
-rw-r--r--tools/buildman/control.py1
3 files changed, 13 insertions, 1 deletions
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 39a6e8a..767b1f6 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -431,7 +431,8 @@ class BuilderThread(threading.Thread):
result, request_config = self.RunCommit(commit_upto,
brd, work_dir, True, True, False)
did_config = True
- do_config = request_config
+ if not self.builder.force_reconfig:
+ do_config = request_config
# If we built that commit, then config is done. But if we got
# an warning, reconfig next time to force it to build the same
@@ -524,6 +525,12 @@ class Builder:
toolchains: Toolchains object to use for building
upto: Current commit number we are building (0.count-1)
warned: Number of builds that produced at least one warning
+ force_reconfig: Reconfigure U-Boot on each comiit. This disables
+ incremental building, where buildman reconfigures on the first
+ commit for a baord, and then just does an incremental build for
+ the following commits. In fact buildman will reconfigure and
+ retry for any failing commits, so generally the only effect of
+ this option is to slow things down.
Private members:
_base_board_dict: Last-summarised Dict of boards
@@ -593,6 +600,7 @@ class Builder:
self._next_delay_update = datetime.now()
self.force_config_on_failure = True
self.force_build_failures = False
+ self.force_reconfig = False
self._step = step
self.col = terminal.Color()
diff --git a/tools/buildman/buildman.py b/tools/buildman/buildman.py
index 0da6797..5046b16 100755
--- a/tools/buildman/buildman.py
+++ b/tools/buildman/buildman.py
@@ -67,6 +67,9 @@ parser.add_option('-B', '--bloat', dest='show_bloat',
help='Show changes in function code size for each board')
parser.add_option('-c', '--count', dest='count', type='int',
default=-1, help='Run build on the top n commits')
+parser.add_option('-C', '--force-reconfig', dest='force_reconfig',
+ action='store_true', default=False,
+ help='Reconfigure for every commit (disable incremental build)')
parser.add_option('-e', '--show_errors', action='store_true',
default=False, help='Show errors and warnings')
parser.add_option('-f', '--force-build', dest='force_build',
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index cfad535..a737fd1 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -157,6 +157,7 @@ def DoBuildman(options, args):
else:
builder.force_build = options.force_build
builder.force_build_failures = options.force_build_failures
+ builder.force_reconfig = options.force_reconfig
# Work out which boards to build
board_selected = boards.GetSelectedDict()