[Buildroot] [PATCH 1/6 RFC] core/pkg-generic: allow packages to exclude files when extracting
Yann E. MORIN
yann.morin.1998 at free.fr
Wed Sep 2 22:51:55 UTC 2015
Currently, packages that need to exclude parts of the archives when
extracting (e.g. to gain space), like gcc or toolchain-external, have to
provide custom extract commands, just for the sake of adding a bunch of
--exclude directives when calling tar.
Add a new variable that packages may set, to provide a space-separated
list of patterns to exclude.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
---
docs/manual/adding-packages-generic.txt | 4 ++++
package/pkg-generic.mk | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
index 4c12b42..e7a473c 100644
--- a/docs/manual/adding-packages-generic.txt
+++ b/docs/manual/adding-packages-generic.txt
@@ -312,6 +312,10 @@ information is (assuming the package name is +libfoo+) :
that have more than one leading component to strip, set this
variable with the value to be passed to tar. Default: 1.
+* +LIBFOO_EXCLUDES+ is a space-separated list of patterns to exclude
+ when extracting the archive. Each item from that list is passed as
+ a tar's +--exclude+ option. By default, empty.
+
* +LIBFOO_DEPENDENCIES+ lists the dependencies (in terms of package
name) that are required for the current target package to
compile. These dependencies are guaranteed to be compiled and
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 6a7d97e..d1877a7 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -476,7 +476,10 @@ $(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) --strip-components=$$($(2)_STRIP_COMPONENTS) -C $$($(2)_DIR) $$(TAR_OPTIONS) -)
+ $$(TAR) --strip-components=$$($(2)_STRIP_COMPONENTS) \
+ -C $$($(2)_DIR) \
+ $$(foreach x,$$($(2)_EXCLUDES),--exclude='$$(x)' ) \
+ $$(TAR_OPTIONS) -)
# pre/post-steps hooks
$(2)_PRE_DOWNLOAD_HOOKS ?=
--
1.9.1
More information about the buildroot
mailing list