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:
parent
c2527c7204
commit
af7a470f9c
4 changed files with 44 additions and 20 deletions
|
@ -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
15
openwrt/include/shell.sh
Normal 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" ]
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)))
|
||||
|
|
Loading…
Reference in a new issue