summaryrefslogtreecommitdiff
path: root/package/Makefile.autotools.in
diff options
context:
space:
mode:
Diffstat (limited to 'package/Makefile.autotools.in')
-rw-r--r--package/Makefile.autotools.in33
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