buildman: Support in-tree builds
At present buildman always builds out-of-tree, that is it uses a separate output directory from the source directory. Normally this is what you want, but it is important that in-tree builds work also. Some Makefile changes may break this. Add a -i option to tell buildman to use in-tree builds, so that it is easy to test this feature. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
97e915262e
commit
189a496825
@ -213,7 +213,10 @@ class BuilderThread(threading.Thread):
|
||||
# self.Make() below, in the event that we do a build.
|
||||
result = command.CommandResult()
|
||||
result.return_code = 0
|
||||
out_dir = os.path.join(work_dir, 'build')
|
||||
if self.builder.in_tree:
|
||||
out_dir = work_dir
|
||||
else:
|
||||
out_dir = os.path.join(work_dir, 'build')
|
||||
|
||||
# Check if the job was already completed last time
|
||||
done_file = self.builder.GetDoneFile(commit_upto, brd.target)
|
||||
@ -257,7 +260,10 @@ class BuilderThread(threading.Thread):
|
||||
# Set up the environment and command line
|
||||
env = self.toolchain.MakeEnvironment()
|
||||
Mkdir(out_dir)
|
||||
args = ['O=build', '-s']
|
||||
args = []
|
||||
if not self.builder.in_tree:
|
||||
args.append('O=build')
|
||||
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]
|
||||
@ -531,6 +537,9 @@ class Builder:
|
||||
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.
|
||||
in_tree: Build U-Boot in-tree instead of specifying an output
|
||||
directory separate from the source code. This option is really
|
||||
only useful for testing in-tree builds.
|
||||
|
||||
Private members:
|
||||
_base_board_dict: Last-summarised Dict of boards
|
||||
@ -602,6 +611,7 @@ class Builder:
|
||||
self.force_build_failures = False
|
||||
self.force_reconfig = False
|
||||
self._step = step
|
||||
self.in_tree = False
|
||||
|
||||
self.col = terminal.Color()
|
||||
|
||||
|
@ -85,6 +85,9 @@ parser.add_option('-g', '--git', type='string',
|
||||
help='Git repo containing branch to build', default='.')
|
||||
parser.add_option('-H', '--full-help', action='store_true', dest='full_help',
|
||||
default=False, help='Display the README file')
|
||||
parser.add_option('-i', '--in-tree', dest='in_tree',
|
||||
action='store_true', default=False,
|
||||
help='Build in the source tree instead of a separate directory')
|
||||
parser.add_option('-j', '--jobs', dest='jobs', type='int',
|
||||
default=None, help='Number of jobs to run at once (passed to make)')
|
||||
parser.add_option('-k', '--keep-outputs', action='store_true',
|
||||
|
@ -158,6 +158,7 @@ def DoBuildman(options, args):
|
||||
builder.force_build = options.force_build
|
||||
builder.force_build_failures = options.force_build_failures
|
||||
builder.force_reconfig = options.force_reconfig
|
||||
builder.in_tree = options.in_tree
|
||||
|
||||
# Work out which boards to build
|
||||
board_selected = boards.GetSelectedDict()
|
||||
|
Loading…
Reference in New Issue
Block a user