All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCHv3 13/18] pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code
Date: Sat, 25 Apr 2015 19:58:42 +0200	[thread overview]
Message-ID: <20150425175842.GP4275@free.fr> (raw)
In-Reply-To: <1429972982-25495-14-git-send-email-thomas.petazzoni@free-electrons.com>

Thomas, All,

On 2015-04-25 16:42 +0200, Thomas Petazzoni spake thusly:
> 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.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Note that adding $(2)_FINAL_ALL_DEPENDENCIES would not be much more
intrusive than this one patch.

Regards,
Yann E. MORIN.

> ---
>  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 cb901ae..517c02f 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 $@
> @@ -355,6 +343,11 @@ ifndef $(2)_PATCH
>   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)
> @@ -568,10 +561,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)))$$(sep))
> +	$$(foreach p,$$($(2)_ALL_DOWNLOADS),$$(call SOURCE_CHECK,$$(p))$$(sep))
>  else
>  	test -d $$($(2)_OVERRIDE_SRCDIR)
>  endif
> -- 
> 2.1.0
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2015-04-25 17:58 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-25 14:42 [Buildroot] [PATCHv3 00/18] Package based 'source', 'legal-info', 'source-check' and 'external-deps' Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 01/18] fs: only add non rootfs- targets to PACKAGES Thomas Petazzoni
2015-04-25 16:36   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 02/18] pkg-generic: take into account patch dependencies in source, external-deps and legal-info Thomas Petazzoni
2015-04-25 16:41   ` Yann E. MORIN
2015-04-26  9:38     ` Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 03/18] Makefile: use the package infra based external-deps Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 04/18] pkg-download: remove support for the SHOW_EXTERNAL_DEPS DL_MODE Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 05/18] Makefile: move source-check outside of noconfig_targets Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 06/18] pkg-download: extend DOWNLOAD_INNER, add a SOURCE_CHECK macro Thomas Petazzoni
2015-04-25 17:15   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 07/18] pkg-generic: implement source-check targets Thomas Petazzoni
2015-04-25 17:28   ` Yann E. MORIN
2015-04-26  9:39     ` Thomas Petazzoni
2015-04-26 14:12       ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 08/18] Makefile: implement a package based source-check target Thomas Petazzoni
2015-04-25 14:42 ` [Buildroot] [PATCHv3 09/18] pkg-generic: remove the .stamp_rsync_sourced fake stamp file Thomas Petazzoni
2015-04-25 17:33   ` Yann E. MORIN
2015-04-25 17:49     ` Thomas Petazzoni
2015-04-25 17:52       ` Yann E. MORIN
2015-04-28 20:13       ` Arnout Vandecappelle
2015-04-25 17:53   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 10/18] pkg-generic: don't use DL_MODE in .stamp_downloaded Thomas Petazzoni
2015-04-25 17:34   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 11/18] pkg-download: get rid of DL_MODE Thomas Petazzoni
2015-04-25 17:35   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 12/18] pkg-download: fix indentation for SOURCE_CHECK_* macros Thomas Petazzoni
2015-04-25 17:37   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 13/18] pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code Thomas Petazzoni
2015-04-25 17:58   ` Yann E. MORIN [this message]
2015-04-25 14:42 ` [Buildroot] [PATCHv3 14/18] Makefile: implement the 'source' target using the package infrastructure Thomas Petazzoni
2015-04-25 18:51   ` Yann E. MORIN
2015-04-25 14:42 ` [Buildroot] [PATCHv3 15/18] Makefile: remove unneeded variables Thomas Petazzoni
2015-04-25 18:58   ` Yann E. MORIN
2015-04-25 14:43 ` [Buildroot] [PATCHv3 16/18] Makefile: add BR_BUILDING variable Thomas Petazzoni
2015-04-25 20:26   ` Yann E. MORIN
2015-04-25 21:14     ` Yann E. MORIN
2015-04-26  9:40       ` Thomas Petazzoni
2015-04-26 14:13         ` Yann E. MORIN
2015-04-25 14:43 ` [Buildroot] [PATCHv3 17/18] packages: refactor checks using BR_BUILDING Thomas Petazzoni
2015-04-25 20:52   ` Yann E. MORIN
2015-04-25 21:59     ` Yann E. MORIN
2015-04-26  9:42     ` Thomas Petazzoni
2015-04-26 14:18       ` Yann E. MORIN
2015-04-25 14:43 ` [Buildroot] [PATCHv3 18/18] Makefile: add a few more targets to nobuild_targets Thomas Petazzoni
2015-04-25 14:45 ` [Buildroot] [PATCHv3 00/18] Package based 'source', 'legal-info', 'source-check' and 'external-deps' 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=20150425175842.GP4275@free.fr \
    --to=yann.morin.1998@free.fr \
    --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.