diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-04-14 23:37:47 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-04-14 23:37:47 +1000 |
commit | e81e057b6d70d70616132593dc2acbfe77cb459c (patch) | |
tree | ee9fd136626400e7c46e15f172fa43a7083faac2 | |
parent | 74c4c7fe4f8ed9479a126d1217dfcc084ff31791 (diff) | |
download | samba-e81e057b6d70d70616132593dc2acbfe77cb459c.tar.gz samba-e81e057b6d70d70616132593dc2acbfe77cb459c.tar.bz2 samba-e81e057b6d70d70616132593dc2acbfe77cb459c.zip |
build: try to honor MAKEFLAGS from make
This means "make -j" and "make -k" now do roughly what is expected
make -j will use the number of CPUs on the system, regardless of the
number after the -j (as MAKEFLAGS doesn't contain that value).
make -k will will continue on errors
-rw-r--r-- | buildtools/scripts/Makefile.waf | 7 | ||||
-rw-r--r-- | buildtools/wafsamba/samba_utils.py | 26 | ||||
-rw-r--r-- | buildtools/wafsamba/wscript | 1 |
3 files changed, 28 insertions, 6 deletions
diff --git a/buildtools/scripts/Makefile.waf b/buildtools/scripts/Makefile.waf index a1c4b69525..ac5c01355a 100644 --- a/buildtools/scripts/Makefile.waf +++ b/buildtools/scripts/Makefile.waf @@ -1,11 +1,6 @@ # simple makefile wrapper to run waf -# default to using only 1 cpu, to be friendly to build -# farm machines. I wonder how we get at the -jN option -# from make to pass it to waf? -JOBS=1 - -WAF=JOBS=$(JOBS) BUILDTOOLS/bin/waf +WAF=WAF_MAKE=1 BUILDTOOLS/bin/waf all: $(WAF) build diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py index 7ee1663513..bf051afa3b 100644 --- a/buildtools/wafsamba/samba_utils.py +++ b/buildtools/wafsamba/samba_utils.py @@ -438,3 +438,29 @@ def RECURSE(ctx, directory): raise Options.Handler.RECURSE = RECURSE Build.BuildContext.RECURSE = RECURSE + + +def CHECK_MAKEFLAGS(bld): + '''check for MAKEFLAGS environment variable in case we are being + called from a Makefile try to honor a few make command line flags''' + if not 'WAF_MAKE' in os.environ: + return + makeflags = os.environ.get('MAKEFLAGS') + jobs_set = False + for opt in makeflags.split(): + # options can come either as -x or as x + if opt[0] != '-': + for v in opt: + if v == 'j': + jobs_set = True + elif v == 'k': + Options.options.keep = True + elif opt == '-j': + jobs_set = True + elif opt == '-k': + Options.options.keep = True + if not jobs_set: + # default to one job + Options.options.jobs = 1 + +Build.BuildContext.CHECK_MAKEFLAGS = CHECK_MAKEFLAGS diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index a395bfedf3..b4fcb99684 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -226,6 +226,7 @@ def configure(conf): def build(bld): + bld.CHECK_MAKEFLAGS() bld.SETUP_BUILD_GROUPS() bld.ENFORCE_GROUP_ORDERING() bld.CHECK_PROJECT_RULES() |