diff options
author | Nathan Lynch <ntl@pobox.com> | 2012-06-16 09:37:17 +0000 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2012-06-24 11:11:07 +0200 |
commit | 5016aa02fb51dbd73461f65ed8c7d9b52539a988 (patch) | |
tree | 4ac7062feff600396b5867885e126d09db4e4c41 | |
parent | f6b26ea4251c7bcec36a26e7059832789a3f5938 (diff) |
automatically set PARALLEL_JOBS when BR2_JLEVEL is 0
When BR2_JLEVEL is 0, set PARALLEL_JOBS to double the number of CPUs
detected. This allows one to more or less fully utilize the host
system without manually tuning the configuration.
Also make 0 the default value for BR2_JLEVEL.
Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r-- | Config.in | 8 | ||||
-rw-r--r-- | package/Makefile.in | 8 |
2 files changed, 13 insertions, 3 deletions
@@ -178,10 +178,12 @@ config BR2_DEBIAN_MIRROR endmenu config BR2_JLEVEL - int "Number of jobs to run simultaneously" - default "2" + int "Number of jobs to run simultaneously (0 for auto)" + default "0" help - Number of jobs to run simultaneously + Number of jobs to run simultaneously. If 0, determine + automatically according to number of CPUs on the host + system. config BR2_CCACHE bool "Enable compiler cache" diff --git a/package/Makefile.in b/package/Makefile.in index be83ada1c..1d43aef5c 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -6,7 +6,15 @@ HOSTMAKE=$(MAKE) endif HOSTMAKE :=$(shell which $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make) +# If BR2_LEVEL is 0, scale the maximum concurrency with the number of +# CPUs. A coefficient of 2 is used in order to keep processors busy +# while waiting on I/O. +ifeq ($(BR2_JLEVEL),0) +PARALLEL_JOBS:=$(shell echo \ + $$((2 * `getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1`))) +else PARALLEL_JOBS:=$(BR2_JLEVEL) +endif MAKE1:=$(HOSTMAKE) -j1 MAKE:=$(HOSTMAKE) -j$(PARALLEL_JOBS) |