summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-10 15:30:50 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-10 15:30:50 +0000
commit34dbf787c3fa13541abc9aadcf53c23016895382 (patch)
tree6156097aa76c3eb354e5af3e97c1857f2acf998a
parentbd97e26b6af3a3e3571b0e7164ab46380b8a03e6 (diff)
add support for a common shell include file, which is evaluated for every make shell call, simplify variable passing to the shell with shvar and shexport templates, use Package/<pkgname>/config for adding config.in data
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@5014 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/package.mk38
-rw-r--r--include/shell.sh15
-rw-r--r--package/busybox/Makefile10
-rw-r--r--rules.mk3
4 files changed, 45 insertions, 21 deletions
diff --git a/include/package.mk b/include/package.mk
index e93192413..181ea32b6 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -12,6 +12,15 @@ endif
include $(INCLUDE_DIR)/prereq.mk
+define shvar
+V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
+endef
+
+define shexport
+$(call shvar,$(1))=$$(call $(1))
+export $(call shvar,$(1))
+endef
+
define Build/DefaultTargets
ifeq ($(DUMP),)
ifeq ($(CONFIG_AUTOREBUILD),y)
@@ -98,9 +107,8 @@ define BuildDescription
endef
define BuildIPKGVariable
- pkg_$(subst .,_,$(subst -,_,$(1)))_$(2) = $$(Package/$(1)/$(2))
- export pkg_$(subst .,_,$(subst -,_,$(1))_$(2))
- $(1)_COMMANDS += if [ -n "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" ]; then echo "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" > $(2); fi;
+ $(call shexport,Package/$(1)/$(2))
+ $(1)_COMMANDS += var2file "$(call shvar,Package/$(1)/$(2))" $(2);
endef
define BuildPackage
@@ -168,22 +176,22 @@ define BuildPackage
echo "Build-Depends: $(PKG_BUILDDEP)"; \
echo "Category: $(CATEGORY)"; \
echo "Title: $(TITLE)"; \
- echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g';
+ echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g'; \
ifneq ($(URL),)
DUMPINFO += \
- echo; \
- echo "$(URL)";
- endif
-
- DUMPINFO += \
- echo "@@";
-
- ifneq ($(CONFIG),)
- DUMPINFO += \
- echo "Config: $(CONFIG)" | sed -e 's,\\,\n,g'; \
- echo "@@";
+ echo; \
+ echo "$(URL)";
endif
+
+ DUMPINFO += \
+ echo "@@";
+
+ $(call shexport,Package/$(1)/config)
+ DUMPINFO += \
+ if isset $(call shvar,Package/$(1)/config); then echo "Config: "; getvar $(call shvar,Package/$(1)/config); fi; \
+ echo "@@";
+
endif
$(eval $(call BuildIPKGVariable,$(1),conffiles))
diff --git a/include/shell.sh b/include/shell.sh
new file mode 100644
index 000000000..6ee0cf603
--- /dev/null
+++ b/include/shell.sh
@@ -0,0 +1,15 @@
+getvar() {
+ eval "echo \"\${$1}\""
+}
+
+var2file() {
+ local var
+ eval "var=\"\${$1}\""
+ if [ -n "$var" ]; then echo "$var" > "$2"; fi
+}
+
+isset() {
+ local var
+ eval "var=\"\${$1}\""
+ [ -n "$var" ]
+}
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index c87701ad1..f56d2462d 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -31,10 +31,12 @@ define Package/busybox
It slices, it dices, it makes Julian Fries.
URL:=http://busybox.net/
MENU:=1
- CONFIG:=\\\
- menu "Configuration" \\\
- depends on PACKAGE_busybox \\\
- source "$(SOURCE)/config/Config.in" \\\
+endef
+
+define Package/busybox/config
+ menu "Configuration"
+ depends on PACKAGE_busybox
+ source "$(SOURCE)/config/Config.in"
endmenu
endef
diff --git a/rules.mk b/rules.mk
index 84163ba22..8e5294edb 100644
--- a/rules.mk
+++ b/rules.mk
@@ -8,8 +8,7 @@
-include $(TOPDIR)/.config
include $(TOPDIR)/include/verbose.mk
-export SHELL=/bin/bash
-
+export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --
ARCH:=$(strip $(subst ",, $(CONFIG_ARCH)))
TARGET_OPTIMIZATION:=$(strip $(subst ",, $(CONFIG_TARGET_OPTIMIZATION)))
WGET:=$(strip $(subst ",, $(CONFIG_WGET)))