diff --git a/include/host-build.mk b/include/host-build.mk
index 66795c8e1082c848a941dc09c87abd113a7e1387..60b7b9f916df771899038d1e3adecfced8d2ccad 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 37f814da8cf71af271939ac1eb19286f02950737..e2ce863166f74d47464a574ad701008b2a651607 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 6352eec523cd26b7179470199eec2c0a1a9fb748..177a42ff33fd62f90d35ba6c7b20141c36bd856d 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 2f78030da0a04ce13ac827e2a651ae373efbd6b2..63cf86e14770ea5c3f17269bacddcd79f2a42ee2 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 cf0b9ea2530688da2e9adaa65afaef1609af2bb0..10178b5cb1a34d6b365c9dc190322051c1c42579 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 add8f51bfcc7069d7d42ebd9ef6d931bca8e1a76..a45a168bbc39803157b076fdbb6628da539e82cd 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 80681f5577d17c91125ea4674e2161cf51731ae2..8e89617e1218fcf4b5291d95e3e39dca483020b5 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 5a038ee9106ab0032961520c93d3a74a9f1893dd..f829b709e3c37e2eb3c569b623f6f271932039e4 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 99f4561c69e365172a117c2cbbdfde2fae65ba22..da9f250eef3534ffb7f058684bfda59f5e25074b 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 597c96bf398b57ec17d114f6bec6cb002179a29b..4efd44a209019c56fcbbcddcfeb6d3e1be60cbcb 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 7b46585f6ee0bedf8cacac034772b205323cbd0c..d2c6f6b88d28762d5b01e0a97e5468c7a1d3d468 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 ffa98813be6f0fcdc2aacc9a17d0c0412b1370d7..18b8884cd56c4c0e8edb20075a229dd018346b0a 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 81f457f11f19b3c93bc895b209798ad0fea6eb5f..4a1140aae297eae80ca112fb6423725953cb0825 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 d9624d0673eb80376aa71539f4e029cc452d4efa..a667266a0961ad7846c60918a366d7eae3f8ab39 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 319a064cb1d9d363e022507373cac28ca614d989..6a985e5af2a65f16e50a824f6c673ed9a6943187 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 2869ed5bf1bb8dbac173191f85b6986222fb7f17..ee8291606cd3f40a97d855dd0ce6d62bf10298e6 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 7ffcc1b1d25e4f185072fd48ef0b87aa335cccf8..47df5d961e3deb9c9c33af5514ae2a40c9f67efa 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 dbd6eed89afb4a5471c73d20091d5f1aa1b5b692..8036b6f1890f550ee86214398942346dea735bcd 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 86bb7c03d18306de03ef7d900f56da04bcde6f95..71e1bc9e0df1707ac97dc7e17eb4f776e6bec222 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 383cdcdfd4f4be23c40d1c48a5ddb50e894ddeb2..9999006d4884b82b5c644699238d5a33caac1a33 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