package: add a <pkg>_EXTRA_DOWNLOADS variable

Converting the external toolchain logic into a package raises a very
special use case that wasn't handled by the package infrastructure:
the Blackfin toolchain is delivered as two tarballs instead of
one. Unfortunately <pkg>_SOURCE only allows to pass one tarball name.

However, we really want both tarballs to be known by the package
infrastructure, so that the normal 'source' and 'external-deps'
mechanism work fine.

In order to achieve this, we add a <pkg>_EXTRA_DOWNLOADS variable,
which allows a package to list other stuff it would like to see
downloaded, but that are otherwise not used by the package
infrastructure itself: it is up to the package to do it by itself.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015.08.x
Thomas Petazzoni 2013-10-08 20:17:00 +02:00 committed by Peter Korsgaard
parent 03b05402df
commit 2c13d5bc60
2 changed files with 7 additions and 0 deletions

View File

@ -248,6 +248,12 @@ information is (assuming the package name is +libfoo+) :
+LIBFOO_SITE=/opt/software/libfoo.tar.gz+ +
+LIBFOO_SITE=$(TOPDIR)/../src/libfoo/+
* +LIBFOO_EXTRA_DOWNLOADS+ lists a number of additional files that
Buildroot should download from +LIBFOO_SITE+ in addition to the main
+LIBFOO_SOURCE+ (which usually is a tarball). Buildroot will not do
anything with those additional files, except download files: it will
be up to the package recipe to use them from +$(DL_DIR)+.
* +LIBFOO_SITE_METHOD+ determines the method used to fetch or copy the
package source code. In many cases, Buildroot guesses the method
from the contents of +LIBFOO_SITE+ and setting +LIBFOO_SITE_METHOD+

View File

@ -40,6 +40,7 @@ ifeq ($(DL_MODE),DOWNLOAD)
fi
endif
$(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$($(PKG)_SOURCE)))
$(foreach p,$($(PKG)_EXTRA_DOWNLOADS),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))$(sep))
$(foreach p,$($(PKG)_PATCH),\
$(if $(findstring ://,$(p)),\
$(call DOWNLOAD,$(p)),\