From ed2bf29be5ea97f67c7195cd02eaf1bc1515bd36 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sun, 23 Sep 2012 09:50:01 +0000
Subject: [PATCH] build: add the + token to any commands that can pass through
 the jobserver, fixes parallel build on some systems

SVN-Revision: 33523
---
 include/host-build.mk          | 4 ++--
 include/package-defaults.mk    | 2 +-
 package/busybox/Makefile       | 2 +-
 package/dropbear/Makefile      | 4 ++--
 package/gdb/Makefile           | 2 +-
 package/hostapd/Makefile       | 2 +-
 package/iproute2/Makefile      | 2 +-
 package/linux-atm/Makefile     | 4 ++--
 package/mac80211/Makefile      | 2 +-
 package/opkg/Makefile          | 2 +-
 package/pjsip/Makefile         | 2 +-
 package/zlib/Makefile          | 2 +-
 toolchain/binutils/Makefile    | 2 +-
 toolchain/gcc/final/Makefile   | 2 +-
 toolchain/gcc/initial/Makefile | 2 +-
 toolchain/gcc/minimal/Makefile | 2 +-
 tools/cmake/Makefile           | 1 +
 tools/libelf/Makefile          | 2 +-
 tools/sed/Makefile             | 2 +-
 tools/xz/Makefile              | 2 +-
 20 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/include/host-build.mk b/include/host-build.mk
index 66795c8e108..60b7b9f916d 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -80,7 +80,7 @@ ifneq ($(HOST_OS),Darwin)
 endif
 
 define Host/Configure/Default
-	(cd $(HOST_BUILD_DIR)/$(3); \
+	$(if $(HOST_CONFIGURE_PARALLEL),+)(cd $(HOST_BUILD_DIR)/$(3); \
 		if [ -x configure ]; then \
 			$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/$(3)/ && \
 			$(2) \
@@ -97,7 +97,7 @@ define Host/Configure
 endef
 
 define Host/Compile/Default
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
 		$(HOST_MAKE_FLAGS) \
 		$(1)
 endef
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 37f814da8cf..e2ce863166f 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -129,7 +129,7 @@ MAKE_INSTALL_FLAGS = \
 MAKE_PATH = .
 
 define Build/Compile/Default
-	$(MAKE_VARS) \
+	+$(MAKE_VARS) \
 	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
 		$(MAKE_FLAGS) \
 		$(1);
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 6352eec523c..177a42ff33f 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -80,7 +80,7 @@ ifdef CONFIG_BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 endif
 
 define Build/Compile
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
 		CC="$(TARGET_CC)" \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		KBUILD_HAVE_NLS=no \
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index 2f78030da0a..63cf86e1477 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -76,12 +76,12 @@ define Build/Configure
 endef
 
 define Build/Compile
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
 		$(TARGET_CONFIGURE_OPTS) \
 		LD="$(TARGET_CC)" \
 		PROGRAMS="dropbear dbclient dropbearkey scp" \
 		MULTI=1 SCPPROGRESS=1
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
 		$(TARGET_CONFIGURE_OPTS) \
 		LD="$(TARGET_CC)" \
 		PROGRAMS="dropbearconvert"
diff --git a/package/gdb/Makefile b/package/gdb/Makefile
index cf0b9ea2530..10178b5cb1a 100644
--- a/package/gdb/Makefile
+++ b/package/gdb/Makefile
@@ -59,7 +59,7 @@ CONFIGURE_VARS+= \
 	ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline"
 
 define Build/Compile
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
 		DESTDIR="$(PKG_INSTALL_DIR)" \
 		CPPFLAGS="$(TARGET_CPPFLAGS)" \
 		all
diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile
index add8f51bfcc..a45a168bbc3 100644
--- a/package/hostapd/Makefile
+++ b/package/hostapd/Makefile
@@ -234,7 +234,7 @@ endif
 
 define Build/RunMake
 	CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(1) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(1) \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(DRIVER_MAKEOPTS) \
 		LIBS="$(TARGET_LDFLAGS)" \
diff --git a/package/iproute2/Makefile b/package/iproute2/Makefile
index 80681f5577d..8e89617e121 100644
--- a/package/iproute2/Makefile
+++ b/package/iproute2/Makefile
@@ -75,7 +75,7 @@ MAKE_FLAGS += \
 	FPIC="$(FPIC)"
 
 define Build/Compile
-	$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) 
+	+$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS)
 endef
 
 define Build/InstallDev
diff --git a/package/linux-atm/Makefile b/package/linux-atm/Makefile
index 5a038ee9106..f829b709e3c 100644
--- a/package/linux-atm/Makefile
+++ b/package/linux-atm/Makefile
@@ -79,10 +79,10 @@ unexport PREFIX
 
 define Build/Compile
 	# src/qgen is built with HOSTCC, which does not really like our LDFLAGS
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/src/qgen \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/src/qgen \
 		LDFLAGS="" \
 		all
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) OBJCOPY=$(TARGET_CROSS)objcopy all
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) OBJCOPY=$(TARGET_CROSS)objcopy all
 endef
 
 define Build/InstallDev
diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile
index 99f4561c69e..da9f250eef3 100644
--- a/package/mac80211/Makefile
+++ b/package/mac80211/Makefile
@@ -1341,7 +1341,7 @@ endef
 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
  define Build/Compile/kmod
 	rm -rf $(PKG_BUILD_DIR)/modules
-	$(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) modules
+	+$(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) modules
  endef
 endif
 
diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index 597c96bf398..4efd44a2090 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -88,7 +88,7 @@ HOST_CONFIGURE_ARGS+= \
 	--with-opkglockfile=/tmp/opkg.lock
 
 define Host/Compile
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all
 endef
 
 define Host/Install
diff --git a/package/pjsip/Makefile b/package/pjsip/Makefile
index 7b46585f6ee..d2c6f6b88d2 100644
--- a/package/pjsip/Makefile
+++ b/package/pjsip/Makefile
@@ -86,7 +86,7 @@ define Build/Configure
 endef
 
 define Build/Compile
-	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
+	+CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
 	CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
 	LDFLAGS="$(TARGET_LDFLAGS) -lc $(LIBGCC_S) -lm" \
 		$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH)
diff --git a/package/zlib/Makefile b/package/zlib/Makefile
index ffa98813be6..18b8884cd56 100644
--- a/package/zlib/Makefile
+++ b/package/zlib/Makefile
@@ -37,7 +37,7 @@ define Build/Configure
 endef
 
 define Build/Compile
-	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
 		$(TARGET_CONFIGURE_OPTS) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		libz.a libz.so.$(PKG_VERSION)
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 81f457f11f1..4a1140aae29 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -77,7 +77,7 @@ define Host/Configure
 endef
 
 define Host/Compile
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all
 endef
 
 define Host/Install
diff --git a/toolchain/gcc/final/Makefile b/toolchain/gcc/final/Makefile
index d9624d0673e..a667266a096 100644
--- a/toolchain/gcc/final/Makefile
+++ b/toolchain/gcc/final/Makefile
@@ -47,7 +47,7 @@ define Host/Configure
 endef
 
 define Host/Compile
-	$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all
+	+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all
 endef
 
 define SetupExtraArch
diff --git a/toolchain/gcc/initial/Makefile b/toolchain/gcc/initial/Makefile
index 319a064cb1d..6a985e5af2a 100644
--- a/toolchain/gcc/initial/Makefile
+++ b/toolchain/gcc/initial/Makefile
@@ -11,7 +11,7 @@ GCC_CONFIGURE += \
 
 define Host/Compile
 	$(CP) $(BUILD_DIR_TOOLCHAIN)/linux-dev/* $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/
-	$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) \
+	+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) \
 		all-build-libiberty \
 		all-gcc \
 		$(if $(GCC_BUILD_TARGET_LIBGCC),all-target-libgcc)
diff --git a/toolchain/gcc/minimal/Makefile b/toolchain/gcc/minimal/Makefile
index 2869ed5bf1b..ee8291606cd 100644
--- a/toolchain/gcc/minimal/Makefile
+++ b/toolchain/gcc/minimal/Makefile
@@ -30,7 +30,7 @@ define Host/Prepare
 endef
 
 define Host/Compile
-	$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all-gcc all-target-libgcc
+	+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all-gcc all-target-libgcc
 endef
 
 define Host/Install
diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile
index 7ffcc1b1d25..47df5d961e3 100644
--- a/tools/cmake/Makefile
+++ b/tools/cmake/Makefile
@@ -14,6 +14,7 @@ PKG_SOURCE_URL:=http://www.cmake.org/files/v2.8/
 PKG_MD5SUM:=e1b237aeaed880f65dec9c20602452f6
 
 HOST_BUILD_PARALLEL:=1
+HOST_CONFIGURE_PARALLEL:=1
 
 include $(INCLUDE_DIR)/host-build.mk
 
diff --git a/tools/libelf/Makefile b/tools/libelf/Makefile
index dbd6eed89af..8036b6f1890 100644
--- a/tools/libelf/Makefile
+++ b/tools/libelf/Makefile
@@ -32,7 +32,7 @@ endef
 
 
 define Host/Compile
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/lib/ libelf.a
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/lib/ libelf.a
 endef
 
 define Host/Install
diff --git a/tools/sed/Makefile b/tools/sed/Makefile
index 86bb7c03d18..71e1bc9e0df 100644
--- a/tools/sed/Makefile
+++ b/tools/sed/Makefile
@@ -29,7 +29,7 @@ HOST_CONFIGURE_VARS += \
 	ac_cv_header_selinux_selinux_h=no \
 
 define Host/Compile
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) SHELL="$(BASH)" LDFLAGS="$(HOST_STATIC_LINKING)"
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) SHELL="$(BASH)" LDFLAGS="$(HOST_STATIC_LINKING)"
 endef
 
 define Host/Install
diff --git a/tools/xz/Makefile b/tools/xz/Makefile
index 383cdcdfd4f..9999006d488 100644
--- a/tools/xz/Makefile
+++ b/tools/xz/Makefile
@@ -20,7 +20,7 @@ include $(INCLUDE_DIR)/host-build.mk
 HOST_LDFLAGS += $(HOST_STATIC_LINKING)
 
 define Host/Install
-	$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) install xzlinks="unxz xzcat" \
+	+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) install xzlinks="unxz xzcat" \
 		AM_LDFLAGS="$(if $(HOST_STATIC_LINKING),-all-static)"
 endef
 
-- 
GitLab