From e81e057b6d70d70616132593dc2acbfe77cb459c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 14 Apr 2010 23:37:47 +1000 Subject: 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 --- buildtools/wafsamba/samba_utils.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'buildtools/wafsamba/samba_utils.py') 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 -- cgit