From a9136c0892fa5fa1627c2502d309eeb8cda187f8 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Thu, 19 Aug 2010 12:49:37 +0000
Subject: [PATCH] speed up the build system by including include/shell.sh on
 shell commands only where necessary

SVN-Revision: 22720
---
 include/depends.mk          | 2 +-
 include/kernel.mk           | 1 +
 include/package-defaults.mk | 2 +-
 include/package-ipkg.mk     | 4 ++--
 include/target.mk           | 6 +++---
 include/toplevel.mk         | 2 +-
 include/unpack.mk           | 4 ++--
 rules.mk                    | 3 +--
 8 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/include/depends.mk b/include/depends.mk
index 65e9b25d5e..828ceb8564 100644
--- a/include/depends.mk
+++ b/include/depends.mk
@@ -13,7 +13,7 @@
 
 DEP_FINDPARAMS := -x "*/.svn*" -x ".*" -x "*:*" -x "*\!*" -x "* *" -x "*\\\#*" -x "*/.*_check"
 
-find_md5=find $(1) -type f $(patsubst -x,-and -not -path,$(DEP_FINDPARAMS) $(2)) | md5s
+find_md5=$(SH_FUNC) find $(1) -type f $(patsubst -x,-and -not -path,$(DEP_FINDPARAMS) $(2)) | md5s
 
 define rdep
   .PRECIOUS: $(2)
diff --git a/include/kernel.mk b/include/kernel.mk
index f283e0febc..6ef4fd942d 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -64,6 +64,7 @@ define KernelPackage/Defaults
 endef
 
 define ModuleAutoLoad
+	$(SH_FUNC) \
 	export modules=; \
 	add_module() { \
 		mkdir -p $(2)/etc/modules.d; \
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 117497d5de..649f409f50 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -43,7 +43,7 @@ endef
 Build/Patch:=$(Build/Patch/Default)
 ifneq ($(strip $(PKG_UNPACK)),)
   define Build/Prepare/Default
-  	$(PKG_UNPACK)
+	$(SH_FUNC) $(PKG_UNPACK)
 	$(Build/Patch)
   endef
 endif
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index 87b142aa59..82fc209c5b 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -21,7 +21,7 @@ IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
 
 define BuildIPKGVariable
   $(call shexport,Package/$(1)/$(2))
-  $(1)_COMMANDS += var2file "$(call shvar,Package/$(1)/$(2))" $(2);
+  $(1)_COMMANDS += $(SH_FUNC) var2file "$(call shvar,Package/$(1)/$(2))" $(2);
 endef
 
 PARENL :=(
@@ -95,7 +95,7 @@ ifeq ($(DUMP),)
 		echo "Maintainer: $(MAINTAINER)"; \
 		echo "Architecture: $(PKGARCH)"; \
 		echo "Installed-Size: 1"; \
-		echo -n "Description: "; getvar $(call shvar,Package/$(1)/description) | sed -e 's,^[[:space:]]*, ,g'; \
+		echo -n "Description: "; $(SH_FUNC) getvar $(call shvar,Package/$(1)/description) | sed -e 's,^[[:space:]]*, ,g'; \
  	) >> $$(IDIR_$(1))/CONTROL/control
 	chmod 644 $$(IDIR_$(1))/CONTROL/control
 	(cd $$(IDIR_$(1))/CONTROL; \
diff --git a/include/target.mk b/include/target.mk
index 2f45bd877c..d49714c353 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -67,10 +67,10 @@ define Profile
 		echo "Target-Profile-Kconfig: yes"; \
 	fi; \
 	echo "Target-Profile-Config: "; \
-	getvar "$(call shvar,Profile/$(1)/Config)"; \
+	$(SH_FUNC) getvar "$(call shvar,Profile/$(1)/Config)"; \
 	echo "@@"; \
 	echo "Target-Profile-Description:"; \
-	getvar "$(call shvar,Profile/$(1)/Description)"; \
+	$(SH_FUNC) getvar "$(call shvar,Profile/$(1)/Description)"; \
 	echo "@@"; \
 	echo;
   ifeq ($(CONFIG_TARGET_$(call target_conf,$(BOARD)_$(if $(SUBTARGET),$(SUBTARGET)_)$(1))),y)
@@ -185,7 +185,7 @@ define BuildTargets/DumpCurrent
 	 echo 'Linux-Release: $(LINUX_RELEASE)'; \
 	 echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \
 	 echo 'Target-Description:'; \
-	 getvar $(call shvar,Target/Description); \
+	 $(SH_FUNC) getvar $(call shvar,Target/Description); \
 	 echo '@@'; \
 	 echo 'Default-Packages: $(DEFAULT_PACKAGES)'; \
 	 $(DUMPINFO)
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 4510df2816..53c5f4772d 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -7,7 +7,7 @@
 #
 
 RELEASE:=Kamikaze
-SHELL:=/usr/bin/env bash
+export SHELL:=/usr/bin/env bash
 PREP_MK= OPENWRT_BUILD= QUIET=0
 
 include $(TOPDIR)/include/verbose.mk
diff --git a/include/unpack.mk b/include/unpack.mk
index 0151675777..2d35863095 100644
--- a/include/unpack.mk
+++ b/include/unpack.mk
@@ -71,10 +71,10 @@ ifeq ($(strip $(UNPACK_CMD)),)
 endif
 
 ifdef PKG_BUILD_DIR
-  PKG_UNPACK ?= $(call UNPACK_CMD,$(PKG_BUILD_DIR)) $(call CRLF_CMD,$(PKG_BUILD_DIR))
+  PKG_UNPACK ?= $(SH_FUNC) $(call UNPACK_CMD,$(PKG_BUILD_DIR)) $(call CRLF_CMD,$(PKG_BUILD_DIR))
 endif
 ifdef HOST_BUILD_DIR
-  HOST_UNPACK ?= $(call UNPACK_CMD,$(HOST_BUILD_DIR)) $(call CRLF_CMD,$(HOST_BUILD_DIR))
+  HOST_UNPACK ?= $(SH_FUNC) $(call UNPACK_CMD,$(HOST_BUILD_DIR)) $(call CRLF_CMD,$(HOST_BUILD_DIR))
 endif
 
 endif # PKG_SOURCE
diff --git a/rules.mk b/rules.mk
index 2add087133..3714fecf5e 100644
--- a/rules.mk
+++ b/rules.mk
@@ -16,8 +16,6 @@ include $(TOPDIR)/include/verbose.mk
 
 TMP_DIR:=$(TOPDIR)/tmp
 
-export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --
-
 GREP_OPTIONS=
 export GREP_OPTIONS
 
@@ -148,6 +146,7 @@ endif
 export PATH:=$(TARGET_PATH)
 export STAGING_DIR
 export GCC_HONOUR_COPTS:=0
+export SH_FUNC:=. $(INCLUDE_DIR)/shell.sh;
 
 PKG_CONFIG:=$(STAGING_DIR_HOST)/bin/pkg-config
 
-- 
GitLab