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>
This commit is contained in:
Yann E. MORIN 2015-10-24 14:48:53 +02:00 committed by Thomas Petazzoni
parent cc0c66510c
commit 07e5641339
2 changed files with 8 additions and 1 deletions

View File

@ -314,6 +314,10 @@ information is (assuming the package name is +libfoo+) :
that have more than one leading component to strip, set this that have more than one leading component to strip, set this
variable with the value to be passed to tar. Default: 1. 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 * +LIBFOO_DEPENDENCIES+ lists the dependencies (in terms of package
name) that are required for the current target package to name) that are required for the current target package to
compile. These dependencies are guaranteed to be compiled and compile. These dependencies are guaranteed to be compiled and

View File

@ -508,7 +508,10 @@ $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned
# default extract command # default extract command
$(2)_EXTRACT_CMDS ?= \ $(2)_EXTRACT_CMDS ?= \
$$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $$(DL_DIR)/$$($(2)_SOURCE) | \ $$(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 # pre/post-steps hooks
$(2)_PRE_DOWNLOAD_HOOKS ?= $(2)_PRE_DOWNLOAD_HOOKS ?=