summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.in8
-rw-r--r--package/Makefile.in8
2 files changed, 13 insertions, 3 deletions
diff --git a/Config.in b/Config.in
index 83f64bb67..925c2474c 100644
--- a/Config.in
+++ b/Config.in
@@ -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)