From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCHv2 19/21] pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code
Date: Wed, 15 Apr 2015 00:27:46 +0200 [thread overview]
Message-ID: <552D9462.1020202@mind.be> (raw)
In-Reply-To: <1428856685-4403-20-git-send-email-thomas.petazzoni@free-electrons.com>
On 12/04/15 18:38, Thomas Petazzoni wrote:
> Now, both the download and source-check code are iterating over
> <pkg>_SOURCE, <pkg>_PATCH and <pkg>_EXTRA_DOWNLOADS elements, figuring
> out whether they contain full URLs or not. Instead of doing this
> repeatdly, this patch introduces an internal <pkg>_ALL_DOWNLOADS
> variable, which contains the list of everything that needs to be
> downloaded, with URLs already expanded to take into account <pkg>_SITE
> if needed.
>
> This allows to simplify quite significantly the .stamp_download and
> source-check implementation.
Nice!
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
with make perl
Regards,
Arnout
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> package/pkg-generic.mk | 26 ++++++++------------------
> 1 file changed, 8 insertions(+), 18 deletions(-)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index d2ed605..7dc1cb8 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -72,25 +72,13 @@ endif
> $(BUILD_DIR)/%/.stamp_downloaded:
> $(foreach hook,$($(PKG)_PRE_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
> # Only show the download message if it isn't already downloaded
> - $(Q)for p in $($(PKG)_SOURCE) $($(PKG)_PATCH) $($(PKG)_EXTRA_DOWNLOADS) ; do \
> + $(Q)for p in $($(PKG)_ALL_DOWNLOADS); do \
> if test ! -e $(DL_DIR)/`basename $$p` ; then \
> $(call MESSAGE,"Downloading") ; \
> break ; \
> fi ; \
> done
> - $(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$($(PKG)_SOURCE)))
> - $(foreach p,$($(PKG)_EXTRA_DOWNLOADS),\
> - $(if $(findstring ://,$(p)),\
> - $(call DOWNLOAD,$(p)),\
> - $(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))\
> - )\
> - $(sep))
> - $(foreach p,$($(PKG)_PATCH),\
> - $(if $(findstring ://,$(p)),\
> - $(call DOWNLOAD,$(p)),\
> - $(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))\
> - )\
> - $(sep))
> + $(foreach p,$($(PKG)_ALL_DOWNLOADS),$(call DOWNLOAD,$(p))$(sep))
> $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
> $(Q)mkdir -p $(@D)
> $(Q)touch $@
> @@ -359,6 +347,11 @@ ifndef $(2)_EXTRA_DOWNLOADS
> endif
> endif
>
> +$(2)_ALL_DOWNLOADS = \
> + $$(foreach p,$$($(2)_SOURCE) $$($(2)_PATCH) $$($(2)_EXTRA_DOWNLOADS),\
> + $$(if $$(findstring ://,$$(p)),$$(p),\
> + $$($(2)_SITE:/=)/$$(p)))
> +
> ifndef $(2)_SITE
> ifdef $(3)_SITE
> $(2)_SITE = $$($(3)_SITE)
> @@ -572,10 +565,7 @@ $(1)-show-version:
>
> $(1)-source-check:
> ifeq ($$($(2)_OVERRIDE_SRCDIR),)
> - $$(foreach p,$$($(2)_SOURCE) $$($(2)_EXTRA_DOWNLOADS) $$($(2)_PATCH),\
> - $$(if $$(findstring ://,$$(p)),\
> - $$(call SOURCE_CHECK,$$(p)),\
> - $$(call SOURCE_CHECK,$$($(2)_SITE:/=)/$$(p))))
> + $$(foreach p,$$($(2)_ALL_DOWNLOADS),$$(call SOURCE_CHECK,$$(p))$$(sep))
> else
> test -d $$($(2)_OVERRIDE_SRCDIR)
> endif
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2015-04-14 22:27 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-12 16:37 [Buildroot] [PATCHv2 00/21] Package based 'source', 'legal-info', 'source-check' and 'external-deps' Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 01/21] pkg-kconfig: declare phony targets as such Thomas Petazzoni
2015-04-13 19:32 ` Yann E. MORIN
2015-04-12 16:37 ` [Buildroot] [PATCHv2 02/21] fs: " Thomas Petazzoni
2015-04-13 19:37 ` Yann E. MORIN
2015-04-14 8:13 ` Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 03/21] Makefile: targets are now declared phony by the appropriate infrastructures Thomas Petazzoni
2015-04-13 19:44 ` Yann E. MORIN
2015-04-14 8:17 ` Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 04/21] Makefile: rename TARGETS to PACKAGES Thomas Petazzoni
2015-04-13 20:01 ` Yann E. MORIN
2015-04-14 8:18 ` Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 05/21] fs: add rootfs dependencies " Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 06/21] Makefile: use <pkg>-all-legal-info to implement the legal-info target Thomas Petazzoni
2015-04-13 20:14 ` Yann E. MORIN
2015-04-12 16:37 ` [Buildroot] [PATCHv2 07/21] Makefile: simplify show-targets Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 08/21] Makefile: use the package infra based external-deps Thomas Petazzoni
2015-04-14 0:10 ` Arnout Vandecappelle
2015-04-14 7:52 ` Thomas Petazzoni
2015-04-14 11:22 ` Arnout Vandecappelle
2015-04-14 12:05 ` Thomas Petazzoni
2015-04-14 19:14 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 09/21] pkg-download: remove support for the SHOW_EXTERNAL_DEPS DL_MODE Thomas Petazzoni
2015-04-13 20:31 ` Yann E. MORIN
2015-04-13 20:33 ` Thomas Petazzoni
2015-04-13 20:40 ` Yann E. MORIN
2015-04-13 22:29 ` Arnout Vandecappelle
2015-04-13 20:38 ` Yann E. MORIN
2015-04-14 19:34 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 10/21] Makefile: move source-check outside of noconfig_targets Thomas Petazzoni
2015-04-13 20:49 ` Yann E. MORIN
2015-04-13 21:06 ` Thomas Petazzoni
2015-04-13 21:58 ` Yann E. MORIN
2015-04-13 22:18 ` Ryan Barnett
2015-04-14 19:42 ` Arnout Vandecappelle
2015-04-14 21:38 ` Yann E. MORIN
2015-04-17 15:49 ` Thomas Petazzoni
2015-04-12 16:37 ` [Buildroot] [PATCHv2 11/21] pkg-download: extend DOWNLOAD_INNER, add a SOURCE_CHECK macro Thomas Petazzoni
2015-04-13 21:00 ` Yann E. MORIN
2015-04-14 20:06 ` Arnout Vandecappelle
2015-04-14 22:25 ` Yann E. MORIN
2015-04-14 22:41 ` Arnout Vandecappelle
2015-04-17 10:38 ` Nicolas Cavallari
2015-04-17 14:00 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 12/21] pkg-generic: implement source-check targets Thomas Petazzoni
2015-04-13 21:05 ` Yann E. MORIN
2015-04-13 21:25 ` Yann E. MORIN
2015-04-13 21:36 ` Yann E. MORIN
2015-04-14 20:22 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 13/21] Makefile: implement a package based source-check target Thomas Petazzoni
2015-04-13 21:07 ` Yann E. MORIN
2015-04-14 20:30 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 14/21] pkg-generic: remove the .stamp_rsync_sourced fake stamp file Thomas Petazzoni
2015-04-14 20:55 ` Arnout Vandecappelle
2015-04-12 16:37 ` [Buildroot] [PATCHv2 15/21] pkg-generic: don't use DL_MODE in .stamp_downloaded Thomas Petazzoni
2015-04-14 21:36 ` Arnout Vandecappelle
2015-04-12 16:38 ` [Buildroot] [PATCHv2 16/21] pkg-download: get rid of DL_MODE Thomas Petazzoni
2015-04-14 21:46 ` Arnout Vandecappelle
2015-04-12 16:38 ` [Buildroot] [PATCHv2 17/21] pkg-download: fix indentation for SOURCE_CHECK_* macros Thomas Petazzoni
2015-04-14 21:41 ` Arnout Vandecappelle
2015-04-12 16:38 ` [Buildroot] [PATCHv2 18/21] pkg-generic: propagate <pkg>_EXTRA_DOWNLOADS from target to host package Thomas Petazzoni
2015-04-14 21:50 ` Arnout Vandecappelle
2015-04-17 15:27 ` Thomas Petazzoni
2015-04-12 16:38 ` [Buildroot] [PATCHv2 19/21] pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code Thomas Petazzoni
2015-04-14 22:27 ` Arnout Vandecappelle [this message]
2015-04-12 16:38 ` [Buildroot] [PATCHv2 20/21] Makefile: implement the 'source' target using the package infrastructure Thomas Petazzoni
2015-04-14 22:31 ` Arnout Vandecappelle
2015-04-12 16:38 ` [Buildroot] [PATCHv2 21/21] Makefile: remove unneeded variables Thomas Petazzoni
2015-04-14 22:31 ` Arnout Vandecappelle
2015-04-12 17:16 ` [Buildroot] [PATCHv2 00/21] Package based 'source', 'legal-info', 'source-check' and 'external-deps' Thomas Petazzoni
2015-04-13 21:46 ` Yann E. MORIN
2015-04-14 8:20 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=552D9462.1020202@mind.be \
--to=arnout@mind.be \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.