diff options
Diffstat (limited to 'package/Makefile.autotools.in')
-rw-r--r-- | package/Makefile.autotools.in | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/package/Makefile.autotools.in b/package/Makefile.autotools.in index 944a5824d..4205b2dfe 100644 --- a/package/Makefile.autotools.in +++ b/package/Makefile.autotools.in @@ -58,6 +58,8 @@ # FOO_SUBDIR [default empty] # relative path in the package source from which to run configure and # make +# FOO_DIR_PREFIX [default empty] +# toplevel relative path to package *.mk file and corresponding patches # ## The following variables contain hook target names ## by default they do nothing, they can be overriden in package makefiles @@ -151,23 +153,13 @@ $(BUILD_DIR)/%/.stamp_patched: $(call MESSAGE,"Patching") $(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH)) $(Q)(\ - if test -d package/$($(PKG)_NAME) ; then \ - if test "$(wildcard package/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \ - toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \ + if test -d $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) ; then \ + if test "$(wildcard $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \ + toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \ else \ - toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \ - if test -d package/$($(PKG)_NAME)/$(NAMEVER) ; then \ - toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \ - fi; \ - fi; \ - else \ - echo "This must be wrong. Why do you need to special-case _any_ package here? Skipping until this is resolved properly."; \ - if false && test "$(wildcard package/x11r7/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \ - toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \ - else \ - toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \ - if test -d package/x11r7/$($(PKG)_NAME)/$(NAMEVER) ; then \ - toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \ + toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \ + if test -d package/$($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) ; then \ + toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \ fi; \ fi; \ fi; \ @@ -258,15 +250,17 @@ $(BUILD_DIR)/%/.stamp_dircleaned: ################################################################################ # AUTOTARGETS -- the target generator macro; define a set of human-readable # make targets, stamps, and default per-package variables. -# Argument 1 is the (lowercase) package name. +# Argument 1 is the package directory prefix. +# Argument 2 is the (lowercase) package name. ################################################################################ define AUTOTARGETS -$(call AUTOTARGETS_INNER,$(1),$(call UPPERCASE,$(1))) +$(call AUTOTARGETS_INNER,$(2),$(call UPPERCASE,$(2)),$(1)) endef # AUTOTARGETS_INNER -- does the job for AUTOTARGETS; argument 1 is the -# lowercase package name, argument 2 the uppercase package name +# lowercase package name, argument 2 the uppercase package name, +# argument 3 the package directory prefix define AUTOTARGETS_INNER # define package-specific variables to default values @@ -290,6 +284,7 @@ $(2)_CLEAN_OPT ?= clean $(2)_UNINSTALL_STAGING_OPT ?= DESTDIR=$$(STAGING_DIR) uninstall $(2)_UNINSTALL_TARGET_OPT ?= DESTDIR=$$(TARGET_DIR) uninstall $(2)_SUBDIR ?= +$(2)_DIR_PREFIX = $(if $(3),$(3),$(TOP_SRCDIR)/package) # define sub-target stamps |