aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/cmake/Makefile4
-rw-r--r--tools/cmake/patches/150-bootstrap_parallel_make_flag.patch14
2 files changed, 17 insertions, 1 deletions
diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile
index a1137c5b50..c56cd40fb5 100644
--- a/tools/cmake/Makefile
+++ b/tools/cmake/Makefile
@@ -20,7 +20,9 @@ HOST_CONFIGURE_PARALLEL:=1
include $(INCLUDE_DIR)/host-build.mk
HOST_CONFIGURE_CMD := \
- MAKEFLAGS="$(HOST_JOBS)" $(BASH) ./configure
+ MAKEFLAGS="$(HOST_JOBS)" \
+ $(BASH) ./configure \
+ $(if $(MAKE_JOBSERVER),--parallel="$(MAKE_JOBSERVER)")
HOST_CONFIGURE_VARS :=
diff --git a/tools/cmake/patches/150-bootstrap_parallel_make_flag.patch b/tools/cmake/patches/150-bootstrap_parallel_make_flag.patch
new file mode 100644
index 0000000000..6970b83b32
--- /dev/null
+++ b/tools/cmake/patches/150-bootstrap_parallel_make_flag.patch
@@ -0,0 +1,14 @@
+--- a/bootstrap
++++ b/bootstrap
+@@ -958,7 +958,10 @@ int main(){ printf("1%c", (char)0x0a); r
+ ' > "test.c"
+ cmake_original_make_flags="${cmake_make_flags}"
+ if [ "x${cmake_parallel_make}" != "x" ]; then
+- cmake_make_flags="${cmake_make_flags} -j ${cmake_parallel_make}"
++ case "$cmake_paralle_make" in
++ [0-9]*) cmake_parallel_make="-j ${cmake_parallel_make}";;
++ esac
++ cmake_make_flags="${cmake_make_flags} ${cmake_parallel_make}"
+ fi
+ for a in ${cmake_make_processors}; do
+ if [ -z "${cmake_make_processor}" ] && cmake_try_make "${a}" "${cmake_make_flags}" >> ../cmake_bootstrap.log 2>&1; then