diff options
author | Yann E. MORIN <yann.morin.1998@free.fr> | 2015-10-24 14:48:53 +0200 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-11-03 22:20:30 +0100 |
commit | 07e5641339800b75109cbc72f8e13a7b4f16d039 (patch) | |
tree | 206388e64580c6711731dc8945a6f56201eb9844 | |
parent | cc0c66510c1a2290804230c90765bc0d8281dd7e (diff) | |
download | buildroot-07e5641339800b75109cbc72f8e13a7b4f16d039.tar.gz buildroot-07e5641339800b75109cbc72f8e13a7b4f16d039.zip |
core/pkg-generic: allow packages to exclude files when extracting
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@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Romain Naour <romain.naour@openwide.fr>
Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r-- | docs/manual/adding-packages-generic.txt | 4 | ||||
-rw-r--r-- | package/pkg-generic.mk | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt index 9d6401ff02..a7143e4284 100644 --- a/docs/manual/adding-packages-generic.txt +++ b/docs/manual/adding-packages-generic.txt @@ -314,6 +314,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 ffef4d3de1..8b189fed2c 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -508,7 +508,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 ?= |