summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Barnett <rjbarnet@rockwellcollins.com>2013-12-18 04:25:01 -0600
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-12-25 17:31:10 +0100
commitbc4f79d665d00d6ab5aac7fc442fbf1a67b7a82b (patch)
treeee7020be66d1abe4e9471a9e88f47a3ce8f7174a
parent87815fc695bcb4ef5a48c09ab1ffcd0c134da43a (diff)
downloadbuildroot-bc4f79d665d00d6ab5aac7fc442fbf1a67b7a82b.tar.gz
buildroot-bc4f79d665d00d6ab5aac7fc442fbf1a67b7a82b.zip
Support for multiple BR2_GLOBAL_PATCH_DIR
Adding support for specifying multiple directories in BR2_GLOBAL_PATCH_DIR. This will allow for a layered approach for the patching of a package. Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--Config.in20
-rw-r--r--package/pkg-generic.mk5
2 files changed, 16 insertions, 9 deletions
diff --git a/Config.in b/Config.in
index 2b401cb8a2..d55e57ca0b 100644
--- a/Config.in
+++ b/Config.in
@@ -461,18 +461,22 @@ config BR2_PACKAGE_OVERRIDE_FILE
Buildroot documentation for more details on this feature.
config BR2_GLOBAL_PATCH_DIR
- string "global patch directory"
+ string "global patch directories"
help
- You may specify a directory containing global package patches.
- For a specific version <packageversion> of a specific package
- <packagename>, patches are applied as follows.
+ You may specify a space separated list of one or more directories
+ containing global package patches. For a specific version
+ <packageversion> of a specific package <packagename>, patches are
+ applied as follows:
- First, the default Buildroot patch set for the package is applied.
+ First, the default Buildroot patch set for the package is applied
+ from the package's directory in Buildroot.
- If the directory $(BR2_GLOBAL_PATCH_DIR)/<packagename>/<packageversion>
- exists, then all *.patch files in the directory will be applied.
+ Then for every directory - <global-patch-dir> - that exists in
+ BR2_GLOBAL_PATCH_DIR, if the directory
+ <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
+ *.patch files in this directory will be applied.
- Otherwise, if the directory $(BR2_GLOBAL_PATCH_DIR)/<packagename> exists,
+ Otherwise, if the directory <global-patch-dir>/<packagename> exists,
then all *.patch files in the directory will be applied.
endmenu
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 45b808a695..66034bac6b 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -134,8 +134,11 @@ endif
# The RAWNAME variable is the lowercased package name, which allows to
# find the package directory (typically package/<pkgname>) and the
# prefix of the patches
+#
+# For BR2_GLOBAL_PATCH_DIR, only generate if it is defined
$(BUILD_DIR)/%/.stamp_patched: NAMEVER = $(RAWNAME)-$($(PKG)_VERSION)
-$(BUILD_DIR)/%/.stamp_patched: PATCH_BASE_DIRS = $($(PKG)_DIR_PREFIX)/$(RAWNAME) $(call qstrip,$(BR2_GLOBAL_PATCH_DIR))/$(RAWNAME)
+$(BUILD_DIR)/%/.stamp_patched: PATCH_BASE_DIRS = $($(PKG)_DIR_PREFIX)/$(RAWNAME)
+$(BUILD_DIR)/%/.stamp_patched: PATCH_BASE_DIRS += $(addsuffix /$(RAWNAME),$(call qstrip,$(BR2_GLOBAL_PATCH_DIR)))
$(BUILD_DIR)/%/.stamp_patched:
@$(call step_start,patch)
@$(call MESSAGE,"Patching")
OpenPOWER on IntegriCloud