From 99796923831445f29b029a0b6c15e8130bea393a Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Tue, 22 Jul 2014 11:19:09 +0900 Subject: [PATCH] buildman: make sure to invoke GNU Make Since the command name 'make' may not be GNU Make on some platforms such as FreeBSD, buildman should call scripts/show-gnu-make to get the command name for GNU MAKE (and error out if it is not found). Signed-off-by: Masahiro Yamada Acked-by: Simon Glass Tested-by: Jeroen Hofstee --- tools/buildman/builder.py | 6 ++++-- tools/buildman/control.py | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py index 0a3900c2f2..7de8125a8f 100644 --- a/tools/buildman/builder.py +++ b/tools/buildman/builder.py @@ -576,7 +576,7 @@ class Builder: self.func_sizes = func_sizes def __init__(self, toolchains, base_dir, git_dir, num_threads, num_jobs, - checkout=True, show_unknown=True, step=1): + gnu_make='make', checkout=True, show_unknown=True, step=1): """Create a new Builder object Args: @@ -585,6 +585,7 @@ class Builder: git_dir: Git directory containing source repository num_threads: Number of builder threads to run num_jobs: Number of jobs to run at once (passed to make as -j) + gnu_make: the command name of GNU Make. checkout: True to check out source, False to skip that step. This is used for testing. show_unknown: Show unknown boards (those not built) in summary @@ -596,6 +597,7 @@ class Builder: self.threads = [] self.active = True self.do_make = self.Make + self.gnu_make = gnu_make self.checkout = checkout self.num_threads = num_threads self.num_jobs = num_jobs @@ -700,7 +702,7 @@ class Builder: args: Arguments to pass to make kwargs: Arguments to pass to command.RunPipe() """ - cmd = ['make'] + list(args) + cmd = [self.gnu_make] + list(args) result = command.RunPipe([cmd], capture=True, capture_stderr=True, cwd=cwd, raise_on_error=False, **kwargs) return result diff --git a/tools/buildman/control.py b/tools/buildman/control.py index 2dd80434eb..267b7d9821 100644 --- a/tools/buildman/control.py +++ b/tools/buildman/control.py @@ -14,6 +14,7 @@ import gitutil import patchstream import terminal import toolchain +import command def GetPlural(count): """Returns a plural 's' if count is not 1""" @@ -144,10 +145,16 @@ def DoBuildman(options, args): if not options.step: options.step = len(series.commits) - 1 + gnu_make = command.Output(os.path.join(options.git, + 'scripts/show-gnu-make')).rstrip() + if not gnu_make: + print >> sys.stderr, 'GNU Make not found' + sys.exit(1) + # Create a new builder with the selected options output_dir = os.path.join(options.output_dir, options.branch) builder = Builder(toolchains, output_dir, options.git_dir, - options.threads, options.jobs, checkout=True, + options.threads, options.jobs, gnu_make=gnu_make, checkout=True, show_unknown=options.show_unknown, step=options.step) builder.force_config_on_failure = not options.quick -- 2.25.1