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

SVN-Revision: 5014
This commit is contained in:
Felix Fietkau 2006-10-10 15:30:50 +00:00
parent c2527c7204
commit af7a470f9c
4 changed files with 44 additions and 20 deletions

View File

@ -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)";
echo; \
echo "$(URL)";
endif
DUMPINFO += \
echo "@@";
DUMPINFO += \
echo "@@";
ifneq ($(CONFIG),)
DUMPINFO += \
echo "Config: $(CONFIG)" | sed -e 's,\\,\n,g'; \
echo "@@";
endif
$(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))

15
openwrt/include/shell.sh Normal file
View File

@ -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" ]
}

View File

@ -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

View File

@ -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)))