infra: consistently use double dollar signs inside inner-xxx-targets
authorThomas De Schampheleire <patrickdepinguin@gmail.com>
Wed, 11 Jun 2014 19:12:24 +0000 (21:12 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 14 Jun 2014 17:09:54 +0000 (19:09 +0200)
The inner-xxx-targets in the buildroot package infrastructures are
evaluated using $(eval) which causes variable references to be a bit
different than in regular make code. As we want most references to be
expanded only at the time of the $(eval) we should not use standard
references $(VAR) but rather use double dollar signs $$(VAR). This includes
function references like $(call), $(subst), etc. The only exception is the
reference to pkgdir/pkgname and numbered variables, which are parameters to
the inner block: $(1), $(2), etc.

This patch introduces consistent usage of double-dollar signs throughout the
different inner-xxx-targets blocks.

In some cases, this would potentially cause circular references, in
particular when the value of HOST_FOO_VAR would be obtained from the
corresponding FOO_VAR if HOST_FOO_VAR is not defined. In these cases, a test
is added to check for a host package (the only case where such constructions
are relevant; these are not circular).

Benefits of these changes are:
- behavior of variables is now again as expected. For example, setting
  $(2)_VERSION = virtual in pkg-virtual.mk will effectively work, while
  originally it would cause very odd results.

- The output of 'make printvars' is now much more useful. This target shows
  the value of all variables, and the expression that led to that value.
  However, if the expression was coming from an inner-xxx-targets block, and
  was using single dollar signs, it would show in printvars as
    VAR = value (value)
  while if double dollar signs are used, it would effectively look like
    VAR = value (actual expression)
  as is intended.
  This improvement is for example effective for FOO_DL_VERSION, FOO_RAWNAME,
  FOO_SITE_METHOD and FOO_MAKE.

The correctness of this patch has been verified using 'make printvars',
'make manual' and 'make legal-info' before and after applying this patch,
and comparing the output.

Insight-provided-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
docs/manual/manual.mk
fs/common.mk
package/pkg-autotools.mk
package/pkg-cmake.mk
package/pkg-generic.mk
package/pkg-luarocks.mk
package/pkg-perl.mk
package/pkg-python.mk
package/pkg-virtual.mk

index 49421df7433fc945d69843881ec254fd26a1433f..0d463fd52e22553967e1a41baab58958ac0f3880 100644 (file)
@@ -33,8 +33,8 @@ manual-check-dependencies-lists:
        fi
 
 ################################################################################
-# GENDOC -- generates the make targets needed to build a specific type of
-#           asciidoc documentation.
+# GENDOC_INNER -- generates the make targets needed to build a specific type of
+#                 asciidoc documentation.
 #
 #  argument 1 is the name of the document and must be a subdirectory of docs/;
 #             the top-level asciidoc file must have the same name
@@ -45,6 +45,9 @@ manual-check-dependencies-lists:
 #  argument 6 (optional) are extra arguments for a2x
 #
 # The variable <DOCUMENT_NAME>_SOURCES defines the dependencies.
+#
+# Since this function will be called from within an $(eval ...)
+# all variable references except the arguments must be $$-quoted.
 ################################################################################
 define GENDOC_INNER
 $(1): $(1)-$(3)
@@ -54,16 +57,16 @@ $(1)-$(3): $$(O)/docs/$(1)/$(1).$(4)
 manual-check-dependencies-$(3):
 
 $$(O)/docs/$(1)/$(1).$(4): docs/$(1)/$(1).txt \
-                          $$($(call UPPERCASE,$(1))_SOURCES) \
+                          $$($$(call UPPERCASE,$(1))_SOURCES) \
                           manual-check-dependencies \
                           manual-check-dependencies-$(3) \
                           manual-update-lists
-       $(Q)$(call MESSAGE,"Generating $(5) $(1)...")
-       $(Q)mkdir -p $$(@D)/.build
-       $(Q)rsync -au docs/$(1)/*.txt $$(@D)/.build
-       $(Q)a2x $(6) -f $(2) -d book -L -r $(TOPDIR)/docs/images \
+       $$(Q)$$(call MESSAGE,"Generating $(5) $(1)...")
+       $$(Q)mkdir -p $$(@D)/.build
+       $$(Q)rsync -au docs/$(1)/*.txt $$(@D)/.build
+       $$(Q)a2x $(6) -f $(2) -d book -L -r $$(TOPDIR)/docs/images \
                -D $$(@D) $$(@D)/.build/$(1).txt
-       -$(Q)rm -rf $$(@D)/.build
+       -$$(Q)rm -rf $$(@D)/.build
 endef
 
 ################################################################################
@@ -82,7 +85,7 @@ $(call GENDOC_INNER,$(1),text,text,text,text)
 $(call GENDOC_INNER,$(1),epub,epub,epub,ePUB)
 clean: $(1)-clean
 $(1)-clean:
-       $(Q)$(RM) -rf $(O)/docs/$(1)
+       $$(Q)$$(RM) -rf $$(O)/docs/$(1)
 .PHONY: $(1) $(1)-clean manual-update-lists
 endef
 
index 45f88b2a9b6ae01d5e7323e06b723b0670a6afc5..70198c0d2a3c4d326a046cc6a482651fac79fa34 100644 (file)
@@ -35,11 +35,13 @@ ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE) \
 USERS_TABLE = $(BUILD_DIR)/_users_table.txt
 ROOTFS_USERS_TABLES = $(call qstrip,$(BR2_ROOTFS_USERS_TABLES))
 
+# Since this function will be called from within an $(eval ...)
+# all variable references except the arguments must be $$-quoted.
 define ROOTFS_TARGET_INTERNAL
 
 # extra deps
 ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs \
-       $(if $(PACKAGES_USERS),host-mkpasswd)
+       $$(if $$(PACKAGES_USERS),host-mkpasswd)
 
 ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y)
 ROOTFS_$(2)_COMPRESS_EXT = .gz
@@ -69,7 +71,7 @@ $$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES)
        $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep))
        rm -f $$(FAKEROOT_SCRIPT)
        rm -f $$(TARGET_DIR_WARNING_FILE)
-       rm -f $(USERS_TABLE)
+       rm -f $$(USERS_TABLE)
        echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
 ifneq ($$(ROOTFS_DEVICE_TABLES),)
        cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE)
@@ -80,17 +82,17 @@ endif
        echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
 endif
 ifneq ($$(ROOTFS_USERS_TABLES),)
-       cat $$(ROOTFS_USERS_TABLES) >> $(USERS_TABLE)
+       cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE)
 endif
-       printf '$(subst $(sep),\n,$(PACKAGES_USERS))' >> $(USERS_TABLE)
-       PATH=$(BR_PATH) $(TOPDIR)/support/scripts/mkusers $(USERS_TABLE) $(TARGET_DIR) >> $(FAKEROOT_SCRIPT)
+       printf '$$(subst $$(sep),\n,$$(PACKAGES_USERS))' >> $$(USERS_TABLE)
+       PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT)
        echo "$$(ROOTFS_$(2)_CMD)" >> $$(FAKEROOT_SCRIPT)
        chmod a+x $$(FAKEROOT_SCRIPT)
-       PATH=$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
-       $(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
+       PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
+       $$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
        -@rm -f $$(FAKEROOT_SCRIPT) $$(FULL_DEVICE_TABLE)
 ifneq ($$(ROOTFS_$(2)_COMPRESS_CMD),)
-       PATH=$(BR_PATH) $$(ROOTFS_$(2)_COMPRESS_CMD) $$@ > $$@$$(ROOTFS_$(2)_COMPRESS_EXT)
+       PATH=$$(BR_PATH) $$(ROOTFS_$(2)_COMPRESS_CMD) $$@ > $$@$$(ROOTFS_$(2)_COMPRESS_EXT)
 endif
 
 rootfs-$(1)-show-depends:
index a6466120b67e5d588a34138fa1a06489a756cb94..e27ec1f0dfdcbe89fe9c16783f6448a0a314cb1d 100644 (file)
@@ -65,7 +65,7 @@ define inner-autotools-package
 
 ifndef $(2)_LIBTOOL_PATCH
  ifdef $(3)_LIBTOOL_PATCH
-  $(2)_LIBTOOL_PATCH = $($(3)_LIBTOOL_PATCH)
+  $(2)_LIBTOOL_PATCH = $$($(3)_LIBTOOL_PATCH)
  else
   $(2)_LIBTOOL_PATCH ?= YES
  endif
@@ -73,25 +73,28 @@ endif
 
 ifndef $(2)_MAKE
  ifdef $(3)_MAKE
-  $(2)_MAKE = $($(3)_MAKE)
+  $(2)_MAKE = $$($(3)_MAKE)
  else
-  $(2)_MAKE ?= $(MAKE)
+  $(2)_MAKE ?= $$(MAKE)
  endif
 endif
 
 ifndef $(2)_AUTORECONF
  ifdef $(3)_AUTORECONF
-  $(2)_AUTORECONF = $($(3)_AUTORECONF)
+  $(2)_AUTORECONF = $$($(3)_AUTORECONF)
  else
   $(2)_AUTORECONF ?= NO
  endif
 endif
 
+ifeq ($(4),host)
+ $(2)_AUTORECONF_OPT ?= $$($(3)_AUTORECONF_OPT)
+endif
+
 $(2)_CONF_ENV                  ?=
 $(2)_CONF_OPT                  ?=
 $(2)_MAKE_ENV                  ?=
 $(2)_MAKE_OPT                  ?=
-$(2)_AUTORECONF_OPT            ?= $($(3)_AUTORECONF_OPT)
 $(2)_INSTALL_OPT                ?= install
 $(2)_INSTALL_STAGING_OPT       ?= DESTDIR=$$(STAGING_DIR) install
 $(2)_INSTALL_TARGET_OPT                ?= DESTDIR=$$(TARGET_DIR)  install
@@ -175,7 +178,7 @@ $(2)_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
 #
 define LIBTOOL_PATCH_HOOK
        @$$(call MESSAGE,"Patching libtool")
-       $(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES" \
+       $$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES" \
                -a "$$($$(PKG)_AUTORECONF)" != "YES"; then \
                for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
                        ltmain_version=`sed -n '/^[     ]*VERSION=/{s/^[        ]*VERSION=//;p;q;}' $$$$i | \
@@ -201,8 +204,8 @@ endif
 #
 define AUTORECONF_HOOK
        @$$(call MESSAGE,"Autoreconfiguring")
-       $(Q)cd $$($$(PKG)_SRCDIR) && $(AUTORECONF) $$($$(PKG)_AUTORECONF_OPT)
-       $(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES"; then \
+       $$(Q)cd $$($$(PKG)_SRCDIR) && $$(AUTORECONF) $$($$(PKG)_AUTORECONF_OPT)
+       $$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES"; then \
                for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
                        ltmain_version=`sed -n '/^[     ]*VERSION=/{s/^[        ]*VERSION=//;p;q;}' $$$$i | \
                        sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
@@ -220,10 +223,11 @@ endef
 # This must be repeated from inner-generic-package, otherwise we get an empty
 # _DEPENDENCIES if _AUTORECONF is YES.  Also filter the result of _AUTORECONF
 # away from the non-host rule
-$(2)_DEPENDENCIES ?= $(filter-out host-automake host-autoconf host-libtool \
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out host-automake host-autoconf host-libtool \
                                host-toolchain $(1),\
-    $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES))))
-
+    $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 
 ifeq ($$($(2)_AUTORECONF),YES)
 $(2)_PRE_CONFIGURE_HOOKS += AUTORECONF_HOOK
@@ -263,9 +267,9 @@ endif
 ifndef $(2)_INSTALL_STAGING_CMDS
 define $(2)_INSTALL_STAGING_CMDS
        $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_SRCDIR)
-       for i in $$$$(find $(STAGING_DIR)/usr/lib* -name "*.la"); do \
+       for i in $$$$(find $$(STAGING_DIR)/usr/lib* -name "*.la"); do \
                cp -f $$$$i $$$$i~; \
-               $$(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$$$i; \
+               $$(SED) "s:\(['= ]\)/usr:\\1$$(STAGING_DIR)/usr:g" $$$$i; \
        done
 endef
 endif
index fb8144e87b0c4aca0dafe490bba9bfcbf8f03eb1..d83ff2d04d9a9b9deabe51d53b7a70aa5a204bf3 100644 (file)
@@ -38,14 +38,14 @@ define inner-cmake-package
 
 $(2)_CONF_ENV                  ?=
 $(2)_CONF_OPT                  ?=
-$(2)_MAKE                      ?= $(MAKE)
+$(2)_MAKE                      ?= $$(MAKE)
 $(2)_MAKE_ENV                  ?=
 $(2)_MAKE_OPT                  ?=
 $(2)_INSTALL_HOST_OPT          ?= install
 $(2)_INSTALL_STAGING_OPT       ?= DESTDIR=$$(STAGING_DIR) install
 $(2)_INSTALL_TARGET_OPT                ?= DESTDIR=$$(TARGET_DIR) install
 
-$(2)_SRCDIR                    = $$($(2)_DIR)/$($(2)_SUBDIR)
+$(2)_SRCDIR                    = $$($(2)_DIR)/$$($(2)_SUBDIR)
 $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
 
 #
@@ -60,15 +60,15 @@ ifeq ($(4),target)
 define $(2)_CONFIGURE_CMDS
        (cd $$($$(PKG)_BUILDDIR) && \
        rm -f CMakeCache.txt && \
-       PATH=$(BR_PATH) \
-       $$($$(PKG)_CONF_ENV) $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
+       PATH=$$(BR_PATH) \
+       $$($$(PKG)_CONF_ENV) $$(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
                -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" \
-               -DCMAKE_BUILD_TYPE=$(if $(BR2_ENABLE_DEBUG),Debug,Release) \
+               -DCMAKE_BUILD_TYPE=$$(if $$(BR2_ENABLE_DEBUG),Debug,Release) \
                -DCMAKE_INSTALL_PREFIX="/usr" \
                -DCMAKE_COLOR_MAKEFILE=OFF \
                -DBUILD_TESTING=OFF \
-               -DBUILD_SHARED_LIBS=$(if $(BR2_PREFER_STATIC_LIB),OFF,ON) \
-               -DUSE_CCACHE=$(if $(BR2_CCACHE),ON,OFF) \
+               -DBUILD_SHARED_LIBS=$$(if $$(BR2_PREFER_STATIC_LIB),OFF,ON) \
+               -DUSE_CCACHE=$$(if $$(BR2_CCACHE),ON,OFF) \
                $$($$(PKG)_CONF_OPT) \
        )
 endef
@@ -78,15 +78,15 @@ else
 define $(2)_CONFIGURE_CMDS
        (cd $$($$(PKG)_BUILDDIR) && \
        rm -f CMakeCache.txt && \
-       PATH=$(BR_PATH) \
-       $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
+       PATH=$$(BR_PATH) \
+       $$(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
                -DCMAKE_INSTALL_SO_NO_EXE=0 \
                -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
                -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
                -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY="BOTH" \
                -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE="BOTH" \
                -DCMAKE_INSTALL_PREFIX="$$(HOST_DIR)/usr" \
-               -DUSE_CCACHE=$(if $(BR2_CCACHE),ON,OFF) \
+               -DUSE_CCACHE=$$(if $$(BR2_CCACHE),ON,OFF) \
                -DBUILD_TESTING=OFF \
                $$($$(PKG)_CONF_OPT) \
        )
@@ -96,7 +96,9 @@ endif
 
 # This must be repeated from inner-generic-package, otherwise we only get
 # host-cmake in _DEPENDENCIES because of the following line
-$(2)_DEPENDENCIES ?= $(filter-out host-toolchain $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES))))
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out host-toolchain $(1),$$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 
 $(2)_DEPENDENCIES += host-cmake
 
@@ -107,11 +109,11 @@ $(2)_DEPENDENCIES += host-cmake
 ifndef $(2)_BUILD_CMDS
 ifeq ($(4),target)
 define $(2)_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
+       $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
 endef
 else
 define $(2)_BUILD_CMDS
-       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
+       $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
 endef
 endif
 endif
@@ -122,7 +124,7 @@ endif
 #
 ifndef $(2)_INSTALL_CMDS
 define $(2)_INSTALL_CMDS
-       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_HOST_OPT) -C $$($$(PKG)_BUILDDIR)
+       $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_HOST_OPT) -C $$($$(PKG)_BUILDDIR)
 endef
 endif
 
@@ -132,7 +134,7 @@ endif
 #
 ifndef $(2)_INSTALL_STAGING_CMDS
 define $(2)_INSTALL_STAGING_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_BUILDDIR)
+       $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_BUILDDIR)
 endef
 endif
 
@@ -142,7 +144,7 @@ endif
 #
 ifndef $(2)_INSTALL_TARGET_CMDS
 define $(2)_INSTALL_TARGET_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_TARGET_OPT) -C $$($$(PKG)_BUILDDIR)
+       $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_TARGET_OPT) -C $$($$(PKG)_BUILDDIR)
 endef
 endif
 
index ccd7f3bcaa4d381cbb40865cacc023a6eff19e1f..3821d33917023cdc0faf27516749ad5e81423dad 100644 (file)
@@ -282,7 +282,7 @@ define inner-generic-package
 
 $(2)_TYPE                       =  $(4)
 $(2)_NAME                      =  $(1)
-$(2)_RAWNAME                   =  $(patsubst host-%,%,$(1))
+$(2)_RAWNAME                   =  $$(patsubst host-%,%,$(1))
 
 # Keep the package version that may contain forward slashes in the _DL_VERSION
 # variable, then replace all forward slashes ('/') by underscores ('_') to
@@ -291,15 +291,15 @@ $(2)_RAWNAME                      =  $(patsubst host-%,%,$(1))
 # version control system branch or tag, for example remotes/origin/1_10_stable.
 ifndef $(2)_VERSION
  ifdef $(3)_VERSION
-  $(2)_DL_VERSION = $($(3)_VERSION)
-  $(2)_VERSION = $(subst /,_,$($(3)_VERSION))
+  $(2)_DL_VERSION = $$($(3)_VERSION)
+  $(2)_VERSION := $$(subst /,_,$$($(3)_VERSION))
  else
   $(2)_VERSION = undefined
   $(2)_DL_VERSION = undefined
  endif
 else
-  $(2)_DL_VERSION = $($(2)_VERSION)
-  $(2)_VERSION = $(subst /,_,$($(2)_VERSION))
+  $(2)_DL_VERSION = $$($(2)_VERSION)
+  $(2)_VERSION := $$(subst /,_,$$($(2)_VERSION))
 endif
 
 $(2)_BASE_NAME =  $(1)-$$($(2)_VERSION)
@@ -323,7 +323,7 @@ endif
 
 ifndef $(2)_SOURCE
  ifdef $(3)_SOURCE
-  $(2)_SOURCE = $($(3)_SOURCE)
+  $(2)_SOURCE = $$($(3)_SOURCE)
  else
   $(2)_SOURCE                  ?= $$($(2)_RAWNAME)-$$($(2)_VERSION).tar.gz
  endif
@@ -331,22 +331,22 @@ endif
 
 ifndef $(2)_PATCH
  ifdef $(3)_PATCH
-  $(2)_PATCH = $($(3)_PATCH)
+  $(2)_PATCH = $$($(3)_PATCH)
  endif
 endif
 
 ifndef $(2)_SITE
  ifdef $(3)_SITE
-  $(2)_SITE = $($(3)_SITE)
+  $(2)_SITE = $$($(3)_SITE)
  endif
 endif
 
 ifndef $(2)_SITE_METHOD
  ifdef $(3)_SITE_METHOD
-  $(2)_SITE_METHOD = $($(3)_SITE_METHOD)
+  $(2)_SITE_METHOD = $$($(3)_SITE_METHOD)
  else
        # Try automatic detection using the scheme part of the URI
-       $(2)_SITE_METHOD = $(call geturischeme,$($(2)_SITE))
+       $(2)_SITE_METHOD = $$(call geturischeme,$$($(2)_SITE))
  endif
 endif
 
@@ -358,7 +358,7 @@ endif
 
 ifndef $(2)_LICENSE
  ifdef $(3)_LICENSE
-  $(2)_LICENSE = $($(3)_LICENSE)
+  $(2)_LICENSE = $$($(3)_LICENSE)
  endif
 endif
 
@@ -366,13 +366,13 @@ $(2)_LICENSE                      ?= unknown
 
 ifndef $(2)_LICENSE_FILES
  ifdef $(3)_LICENSE_FILES
-  $(2)_LICENSE_FILES = $($(3)_LICENSE_FILES)
+  $(2)_LICENSE_FILES = $$($(3)_LICENSE_FILES)
  endif
 endif
 
 ifndef $(2)_REDISTRIBUTE
  ifdef $(3)_REDISTRIBUTE
-  $(2)_REDISTRIBUTE = $($(3)_REDISTRIBUTE)
+  $(2)_REDISTRIBUTE = $$($(3)_REDISTRIBUTE)
  endif
 endif
 
@@ -383,8 +383,10 @@ $(2)_REDISTRIBUTE          ?= YES
 # dependency
 $(2)_ADD_TOOLCHAIN_DEPENDENCY  ?= YES
 
-$(2)_DEPENDENCIES ?= $(filter-out  host-toolchain $(1),\
-       $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES))))
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out  host-toolchain $(1),\
+       $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 ifeq ($(4),target)
 ifeq ($$($(2)_ADD_TOOLCHAIN_DEPENDENCY),YES)
 $(2)_DEPENDENCIES += toolchain
@@ -414,8 +416,8 @@ $(2)_TARGET_DIRCLEAN =              $$($(2)_DIR)/.stamp_dircleaned
 
 # default extract command
 $(2)_EXTRACT_CMDS ?= \
-       $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \
-       $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
+       $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $$(DL_DIR)/$$($(2)_SOURCE) | \
+       $$(TAR) $$(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $$(TAR_OPTIONS) -)
 
 # pre/post-steps hooks
 $(2)_PRE_DOWNLOAD_HOOKS         ?=
@@ -489,7 +491,7 @@ $(1)-configure:                     $$($(2)_TARGET_CONFIGURE)
 $$($(2)_TARGET_CONFIGURE):     | $$($(2)_FINAL_DEPENDENCIES)
 
 $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dirs prepare
-ifeq ($(filter $(1),$(DEPENDENCIES_HOST_PREREQ)),)
+ifeq ($$(filter $(1),$$(DEPENDENCIES_HOST_PREREQ)),)
 $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies
 endif
 
@@ -532,11 +534,11 @@ $(1)-show-depends:
                        @echo $$($(2)_FINAL_DEPENDENCIES)
 
 $(1)-graph-depends:
-                       @$(INSTALL) -d $(O)/graphs
-                       @cd "$(CONFIG_DIR)"; \
-                       $(TOPDIR)/support/scripts/graph-depends -p $(1) $(BR2_GRAPH_DEPS_OPTS) \
-                       |tee $(O)/graphs/$$(@).dot \
-                       |dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) -o $(O)/graphs/$$(@).$(BR_GRAPH_OUT)
+                       @$$(INSTALL) -d $$(O)/graphs
+                       @cd "$$(CONFIG_DIR)"; \
+                       $$(TOPDIR)/support/scripts/graph-depends -p $(1) $$(BR2_GRAPH_DEPS_OPTS) \
+                       |tee $$(O)/graphs/$$(@).dot \
+                       |dot $$(BR2_GRAPH_DOT_OPTS) -T$$(BR_GRAPH_OUT) -o $$(O)/graphs/$$(@).$$(BR_GRAPH_OUT)
 
 $(1)-dirclean:         $$($(2)_TARGET_DIRCLEAN)
 
@@ -570,7 +572,7 @@ $$($(2)_TARGET_RSYNC):                  PKG=$(2)
 $$($(2)_TARGET_RSYNC_SOURCE):          SRCDIR=$$($(2)_OVERRIDE_SRCDIR)
 $$($(2)_TARGET_RSYNC_SOURCE):          PKG=$(2)
 $$($(2)_TARGET_PATCH):                 PKG=$(2)
-$$($(2)_TARGET_PATCH):                 RAWNAME=$(patsubst host-%,%,$(1))
+$$($(2)_TARGET_PATCH):                 RAWNAME=$$(patsubst host-%,%,$(1))
 $$($(2)_TARGET_PATCH):                 PKGDIR=$(pkgdir)
 $$($(2)_TARGET_EXTRACT):               PKG=$(2)
 $$($(2)_TARGET_SOURCE):                        PKG=$(2)
@@ -581,9 +583,9 @@ $$($(2)_TARGET_DIRCLEAN):           PKG=$(2)
 # kernel case, the bootloaders case, and the normal packages case.
 ifeq ($(1),linux)
 $(2)_KCONFIG_VAR = BR2_LINUX_KERNEL
-else ifneq ($(filter boot/%,$(pkgdir)),)
+else ifneq ($$(filter boot/%,$(pkgdir)),)
 $(2)_KCONFIG_VAR = BR2_TARGET_$(2)
-else ifneq ($(filter toolchain/%,$(pkgdir)),)
+else ifneq ($$(filter toolchain/%,$(pkgdir)),)
 $(2)_KCONFIG_VAR = BR2_$(2)
 else
 $(2)_KCONFIG_VAR = BR2_PACKAGE_$(2)
@@ -599,7 +601,7 @@ ifeq ($$($(2)_REDISTRIBUTE),YES)
 ifneq ($$($(2)_SITE_METHOD),local)
 ifneq ($$($(2)_SITE_METHOD),override)
 # Packages that have a tarball need it downloaded and extracted beforehand
-$(1)-legal-info: $(1)-extract $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4)))
+$(1)-legal-info: $(1)-extract $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4)))
 $(2)_MANIFEST_TARBALL = $$($(2)_SOURCE)
 endif
 endif
@@ -609,40 +611,37 @@ $(2)_MANIFEST_TARBALL ?= not saved
 # legal-info: produce legally relevant info.
 $(1)-legal-info:
 # Packages without a source are assumed to be part of Buildroot, skip them.
-       $(foreach hook,$($(2)_PRE_LEGAL_INFO_HOOKS),$(call $(hook))$(sep))
-ifneq ($(call qstrip,$$($(2)_SOURCE)),)
+       $$(foreach hook,$$($(2)_PRE_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep))
+ifneq ($$(call qstrip,$$($(2)_SOURCE)),)
 
 ifeq ($$($(2)_SITE_METHOD),local)
 # Packages without a tarball: don't save and warn
-       @$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),local)
+       @$$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),local)
 
 else ifneq ($$($(2)_OVERRIDE_SRCDIR),)
-       @$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),override)
+       @$$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),override)
 
 else
 # Other packages
 
 # Save license files if defined
-ifeq ($(call qstrip,$$($(2)_LICENSE_FILES)),)
-       @$(call legal-license-nofiles,$$($(2)_RAWNAME),$(call UPPERCASE,$(4)))
-       @$(call legal-warning-pkg,$$($(2)_RAWNAME),cannot save license ($(2)_LICENSE_FILES not defined))
+ifeq ($$(call qstrip,$$($(2)_LICENSE_FILES)),)
+       @$$(call legal-license-nofiles,$$($(2)_RAWNAME),$$(call UPPERCASE,$(4)))
+       @$$(call legal-warning-pkg,$$($(2)_RAWNAME),cannot save license ($(2)_LICENSE_FILES not defined))
 else
-# Double dollar signs are really needed here, to catch host packages
-# without explicit HOST_FOO_LICENSE_FILES assignment, also in case they
-# have multiple license files.
-       @$$(foreach F,$$($(2)_LICENSE_FILES),$$(call legal-license-file,$$($(2)_RAWNAME),$$(F),$$($(2)_DIR)/$$(F),$(call UPPERCASE,$(4)))$$(sep))
+       @$$(foreach F,$$($(2)_LICENSE_FILES),$$(call legal-license-file,$$($(2)_RAWNAME),$$(F),$$($(2)_DIR)/$$(F),$$(call UPPERCASE,$(4)))$$(sep))
 endif # license files
 
 ifeq ($$($(2)_REDISTRIBUTE),YES)
 # Copy the source tarball (just hardlink if possible)
-       @cp -l $(DL_DIR)/$$($(2)_SOURCE) $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4))) 2>/dev/null || \
-          cp $(DL_DIR)/$$($(2)_SOURCE) $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4)))
+       @cp -l $$(DL_DIR)/$$($(2)_SOURCE) $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4))) 2>/dev/null || \
+          cp $$(DL_DIR)/$$($(2)_SOURCE) $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4)))
 endif # redistribute
 
 endif # other packages
-       @$(call legal-manifest,$$($(2)_RAWNAME),$$($(2)_VERSION),$$($(2)_LICENSE),$$($(2)_MANIFEST_LICENSE_FILES),$$($(2)_MANIFEST_TARBALL),$(call UPPERCASE,$(4)))
-endif # ifneq ($(call qstrip,$$($(2)_SOURCE)),)
-       $(foreach hook,$($(2)_POST_LEGAL_INFO_HOOKS),$(call $(hook))$(sep))
+       @$$(call legal-manifest,$$($(2)_RAWNAME),$$($(2)_VERSION),$$($(2)_LICENSE),$$($(2)_MANIFEST_LICENSE_FILES),$$($(2)_MANIFEST_TARBALL),$$(call UPPERCASE,$(4)))
+endif # ifneq ($$(call qstrip,$$($(2)_SOURCE)),)
+       $$(foreach hook,$$($(2)_POST_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep))
 
 # add package to the general list of targets if requested by the buildroot
 # configuration
@@ -685,8 +684,8 @@ endif # SITE_METHOD
 # ZCAT="gzip -d -c", and to check for the dependency we only want 'gzip'.
 # Do not add xzcat to the list of required dependencies, as it gets built
 # automatically if it isn't found.
-ifneq ($(call suitable-extractor,$($(2)_SOURCE)),$(XZCAT))
-DL_TOOLS_DEPENDENCIES += $(firstword $(call suitable-extractor,$($(2)_SOURCE)))
+ifneq ($$(call suitable-extractor,$$($(2)_SOURCE)),$$(XZCAT))
+DL_TOOLS_DEPENDENCIES += $$(firstword $$(call suitable-extractor,$$($(2)_SOURCE)))
 endif
 
 endif # $(2)_KCONFIG_VAR
index 701038158d1da8cb31f507c632e3dc7a5131d509..b24a4c510c874bdb330b6372498bbe13ed9d0547 100644 (file)
 define inner-luarocks-package
 
 $(2)_BUILD_OPT         ?=
-$(2)_SUBDIR            ?= $(1)-$(shell echo "$($(3)_VERSION)" | sed -e "s/-[0-9]$$//")
-$(2)_ROCKSPEC          ?= $(1)-$($(3)_VERSION).rockspec
-$(2)_SOURCE            ?= $(1)-$($(3)_VERSION).src.rock
-$(2)_SITE              ?= $(call qstrip,$(BR2_LUAROCKS_MIRROR))
+$(2)_SUBDIR            ?= $(1)-$$(shell echo "$$($(3)_VERSION)" | sed -e "s/-[0-9]$$$$//")
+$(2)_ROCKSPEC          ?= $(1)-$$($(3)_VERSION).rockspec
+$(2)_SOURCE            ?= $(1)-$$($(3)_VERSION).src.rock
+$(2)_SITE              ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR))
 
 # Since we do not support host-luarocks-package, we know this is
 # a target package, and can just add the required dependencies
@@ -49,7 +49,7 @@ $(2)_DEPENDENCIES     += host-luarocks luainterpreter
 ifndef $(2)_EXTRACT_CMDS
 define $(2)_EXTRACT_CMDS
        cd $$($(2)_DIR)/.. && \
-        $$(LUAROCKS_RUN) unpack --force $(DL_DIR)/$$($(2)_SOURCE)
+        $$(LUAROCKS_RUN) unpack --force $$(DL_DIR)/$$($(2)_SOURCE)
 endef
 endif
 
index 447f364e05448b2da34f477a4484d36f910dfc6b..5cfdc773709e14ab96f3516461cce3c3c16d60e6 100644 (file)
@@ -51,18 +51,18 @@ define $(2)_CONFIGURE_CMDS
        cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
                PERL_MM_USE_DEFAULT=1 \
                perl Build.PL \
-                       --config ar="$(TARGET_AR)" \
-                       --config full_ar="$(TARGET_AR)" \
-                       --config cc="$(TARGET_CC)" \
-                       --config ccflags="$(TARGET_CFLAGS)" \
-                       --config ld="$(TARGET_CC)" \
-                       --config lddlflags="-shared $(TARGET_LDFLAGS)" \
-                       --config ldflags="$(TARGET_LDFLAGS)" \
-                       --include_dirs $$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE \
+                       --config ar="$$(TARGET_AR)" \
+                       --config full_ar="$$(TARGET_AR)" \
+                       --config cc="$$(TARGET_CC)" \
+                       --config ccflags="$$(TARGET_CFLAGS)" \
+                       --config ld="$$(TARGET_CC)" \
+                       --config lddlflags="-shared $$(TARGET_LDFLAGS)" \
+                       --config ldflags="$$(TARGET_LDFLAGS)" \
+                       --include_dirs $$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$$(PERL_ARCHNAME)/CORE \
                        --destdir $$(TARGET_DIR) \
                        --installdirs vendor \
                        --install_path lib=/usr/lib/perl5/site_perl/$$(PERL_VERSION) \
-                       --install_path arch=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$(PERL_ARCHNAME) \
+                       --install_path arch=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$$(PERL_ARCHNAME) \
                        --install_path bin=/usr/bin \
                        --install_path script=/usr/bin \
                        --install_path bindoc=/usr/share/man/man1 \
@@ -72,17 +72,17 @@ define $(2)_CONFIGURE_CMDS
                PERL_MM_USE_DEFAULT=1 \
                PERL_AUTOINSTALL=--skipdeps \
                perl Makefile.PL \
-                       AR="$(TARGET_AR)" \
-                       FULL_AR="$(TARGET_AR)" \
-                       CC="$(TARGET_CC)" \
-                       CCFLAGS="$(TARGET_CFLAGS)" \
-                       LD="$(TARGET_CC)" \
-                       LDDLFLAGS="-shared $(TARGET_LDFLAGS)" \
-                       LDFLAGS="$(TARGET_LDFLAGS)" \
+                       AR="$$(TARGET_AR)" \
+                       FULL_AR="$$(TARGET_AR)" \
+                       CC="$$(TARGET_CC)" \
+                       CCFLAGS="$$(TARGET_CFLAGS)" \
+                       LD="$$(TARGET_CC)" \
+                       LDDLFLAGS="-shared $$(TARGET_LDFLAGS)" \
+                       LDFLAGS="$$(TARGET_LDFLAGS)" \
                        DESTDIR=$$(TARGET_DIR) \
                        INSTALLDIRS=vendor \
                        INSTALLVENDORLIB=/usr/lib/perl5/site_perl/$$(PERL_VERSION) \
-                       INSTALLVENDORARCH=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$(PERL_ARCHNAME) \
+                       INSTALLVENDORARCH=/usr/lib/perl5/site_perl/$$(PERL_VERSION)/$$(PERL_ARCHNAME) \
                        INSTALLVENDORBIN=/usr/bin \
                        INSTALLVENDORSCRIPT=/usr/bin \
                        INSTALLVENDORMAN1DIR=/usr/share/man/man1 \
@@ -125,8 +125,8 @@ define $(2)_BUILD_CMDS
        cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
                perl Build $$($(2)_BUILD_OPT) build; \
        else \
-               $(MAKE1) \
-                       PERL_INC=$$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE \
+               $$(MAKE1) \
+                       PERL_INC=$$(STAGING_DIR)/usr/lib/perl5/$$(PERL_VERSION)/$$(PERL_ARCHNAME)/CORE \
                        $$($(2)_BUILD_OPT) pure_all; \
        fi
 endef
@@ -137,7 +137,7 @@ define $(2)_BUILD_CMDS
        cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
                perl Build $$($(2)_BUILD_OPT) build; \
        else \
-               $(MAKE1) $$($(2)_BUILD_OPT) pure_all; \
+               $$(MAKE1) $$($(2)_BUILD_OPT) pure_all; \
        fi
 endef
 endif
@@ -152,7 +152,7 @@ define $(2)_INSTALL_CMDS
        cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
                perl Build $$($(2)_INSTALL_TARGET_OPT) install; \
        else \
-               $(MAKE1) $$($(2)_INSTALL_TARGET_OPT) pure_install; \
+               $$(MAKE1) $$($(2)_INSTALL_TARGET_OPT) pure_install; \
        fi
 endef
 endif
@@ -166,7 +166,7 @@ define $(2)_INSTALL_TARGET_CMDS
        cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
                perl Build $$($(2)_INSTALL_TARGET_OPT) install; \
        else \
-               $(MAKE1) $$($(2)_INSTALL_TARGET_OPT) pure_install; \
+               $$(MAKE1) $$($(2)_INSTALL_TARGET_OPT) pure_install; \
        fi
 endef
 endif
index e903c23e78a1680bf87a7f5568a43f7baf557671..9e6160f2333a55e0fa40e339d86de15242c3c701 100644 (file)
@@ -82,7 +82,7 @@ HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPT = \
 
 define inner-python-package
 
-$(2)_SRCDIR    = $$($(2)_DIR)/$($(2)_SUBDIR)
+$(2)_SRCDIR    = $$($(2)_DIR)/$$($(2)_SUBDIR)
 $(2)_BUILDDIR  = $$($(2)_SRCDIR)
 
 $(2)_ENV         ?=
@@ -91,7 +91,7 @@ $(2)_INSTALL_OPT ?=
 
 ifndef $(2)_SETUP_TYPE
  ifdef $(3)_SETUP_TYPE
-  $(2)_SETUP_TYPE = $($(3)_SETUP_TYPE)
+  $(2)_SETUP_TYPE = $$($(3)_SETUP_TYPE)
  else
   $$(error "$(2)_SETUP_TYPE must be set")
  endif
@@ -138,7 +138,9 @@ endif
 # depending on the package characteristics, and shouldn't be derived
 # automatically from the dependencies of the corresponding target
 # package.
-$(2)_DEPENDENCIES ?= $(filter-out host-python host-python3 host-python-setuptools host-toolchain $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES))))
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out host-python host-python3 host-python-setuptools host-toolchain $(1),$$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 
 # Target packages need both the python interpreter on the target (for
 # runtime) and the python interpreter on the host (for
@@ -155,19 +157,19 @@ $(2)_DEPENDENCIES ?= $(filter-out host-python host-python3 host-python-setuptool
 #   - otherwise, we depend on the one requested by *_NEEDS_HOST_PYTHON.
 #
 ifeq ($(4),target)
-$(2)_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON3),host-python3 python3,host-python python)
+$(2)_DEPENDENCIES += $$(if $$(BR2_PACKAGE_PYTHON3),host-python3 python3,host-python python)
 else
-ifeq ($($(2)_NEEDS_HOST_PYTHON),)
-$(2)_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)
+ifeq ($$($(2)_NEEDS_HOST_PYTHON),)
+$(2)_DEPENDENCIES += $$(if $$(BR2_PACKAGE_PYTHON3),host-python3,host-python)
 else
-ifeq ($($(2)_NEEDS_HOST_PYTHON),python2)
+ifeq ($$($(2)_NEEDS_HOST_PYTHON),python2)
 $(2)_DEPENDENCIES += host-python
-else ifeq ($($(2)_NEEDS_HOST_PYTHON),python3)
+else ifeq ($$($(2)_NEEDS_HOST_PYTHON),python3)
 $(2)_DEPENDENCIES += host-python3
 else
-$$(error Incorrect value '$($(2)_NEEDS_HOST_PYTHON)' for $(2)_NEEDS_HOST_PYTHON)
+$$(error Incorrect value '$$($(2)_NEEDS_HOST_PYTHON)' for $(2)_NEEDS_HOST_PYTHON)
 endif
-endif # ($($(2)_NEEDS_HOST_PYTHON),)
+endif # ($$($(2)_NEEDS_HOST_PYTHON),)
 endif # ($(4),target)
 
 # Setuptools based packages will need host-python-setuptools (both
@@ -196,12 +198,12 @@ endif
 #   - otherwise, we use the one requested by *_NEEDS_HOST_PYTHON.
 #
 ifeq ($(4),target)
-$(2)_PYTHON_INTERPRETER = $(HOST_DIR)/usr/bin/python
+$(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/usr/bin/python
 else
-ifeq ($($(2)_NEEDS_HOST_PYTHON),)
-$(2)_PYTHON_INTERPRETER = $(HOST_DIR)/usr/bin/python
+ifeq ($$($(2)_NEEDS_HOST_PYTHON),)
+$(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/usr/bin/python
 else
-$(2)_PYTHON_INTERPRETER = $(HOST_DIR)/usr/bin/$($(2)_NEEDS_HOST_PYTHON)
+$(2)_PYTHON_INTERPRETER = $$(HOST_DIR)/usr/bin/$$($(2)_NEEDS_HOST_PYTHON)
 endif
 endif
 
index 617e5f2ec7f3db303ad6b121c588be65e17b0385..56e2d044b5080aeaa1cc1e17bff09d559cfbdb3a 100644 (file)
@@ -35,8 +35,8 @@
 define inner-virtual-package
 
 # Ensure the virtual package has an implementation defined.
-ifeq ($(BR2_PACKAGE_HAS_$(2)),y)
-ifeq ($(call qstrip,$(BR2_PACKAGE_PROVIDES_$(2))),)
+ifeq ($$(BR2_PACKAGE_HAS_$(2)),y)
+ifeq ($$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))),)
 $$(error No implementation selected for virtual package $(1). Configuration error)
 endif
 endif
@@ -50,11 +50,13 @@ HOST_$(3)_VERSION = virtual
 
 # This must be repeated from inner-generic-package, otherwise we get an empty
 # _DEPENDENCIES
-$(2)_DEPENDENCIES ?= $(filter-out host-toolchain $(1),\
-       $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES))))
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out host-toolchain $(1),\
+       $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 
 # Add dependency against the provider
-$(2)_DEPENDENCIES += $(call qstrip,$(BR2_PACKAGE_PROVIDES_$(2)))
+$(2)_DEPENDENCIES += $$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2)))
 
 # Call the generic package infrastructure to generate the necessary
 # make targets