From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/7] pkg-infra: assign BR_NO_CHECK_HASH_FOR so it is recursively-expanded
Date: Fri, 01 May 2015 15:07:30 +0200 [thread overview]
Message-ID: <55437A92.3060007@mind.be> (raw)
In-Reply-To: <e8cce5d9bbb1b75dbf02c0f9ee44ee23a0314d38.1430260630.git.yann.morin.1998@free.fr>
On 29/04/15 00:39, Yann E. MORIN wrote:
> Currently, assigning to BR_NO_CHECK_HASH_FOR in conditionals, but
> referencing vairaible assigned to later, fails. Here's a failing
variable
> test-case, which is the reduced test-case of how we handle
> BR_NO_CHECK_HASH_FOR for now:
>
> export FOO
>
> ifeq ($(BAR_V),)
> BAR_V=1
> else
> FOO += $(BAR_S)
> endif
I think the test case is too complicated - in fact the conditional construct
has nothing to do with it. The culprit is appending to it, which means we never
explicitly set it to recursively expanded. Exported variables that are not
defined explicitly for some reason default to be immediately expanded rather
than recursively.
export FOO
FOO += $(BAR)
$(warning FOO='$(FOO)' BAR='$(BAR)')
BAR = BAR
$(warning FOO='$(FOO)' BAR='$(BAR)')
default:
Will give
/tmp/Makefile:3: FOO=' ' BAR=''
/tmp/Makefile:5: FOO=' ' BAR='BAR'
while explicitly setting FOO to be recursively expanded:
export FOO =
will give
/tmp/Makefile:3: FOO=' ' BAR=''
/tmp/Makefile:5: FOO=' BAR' BAR='BAR'
>
> BAR_S = bar-$(BAR_V).tar
>
> all:
> @echo "BAR_S=\"$(BAR_S)\""
> @$(SHELL) -c 'echo "FOO=\"$${FOO}\""'
>
> Run it with:
>
> $ make
> BAR_S="bar-1.tar"
> FOO=""
> $ make BAR_V=2
> BAR_S="bar-2.tar"
> FOO=" "
>
> Now, change the firstline to read:
>
> export FOO =
>
> And we now get:
>
> $ make
> BAR_S="bar-1.tar"
> FOO=""
> $ make BAR_V=2
> BAR_S="bar-2.tar"
> FOO=" bar-2.tar"
>
> This new behaviour will be needed later for Xenomai, which handles the
> version string in an unusual way.
>
> (Note how there's a leading space in both cases? In Buildroot, we do not
> care that extra space, it is simply ignored).
The leading space is there because += always inserts a space, even if the
variable was empty before.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> package/pkg-download.mk | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/package/pkg-download.mk b/package/pkg-download.mk
> index a38062e..f0651db 100644
> --- a/package/pkg-download.mk
> +++ b/package/pkg-download.mk
> @@ -56,7 +56,9 @@ domainseparator = $(if $(1),$(1),/)
> github = https://github.com/$(1)/$(2)/archive/$(3)
>
> # Expressly do not check hashes for those files
> -export BR_NO_CHECK_HASH_FOR
> +# It needs to be assigned so as to be a recursively-expanded variable, and
> +# so that it can be assigned inside conditionals.
# Exported variables default to immediately expanded, but we need it to be
# recursively-epxanded, so explicitly define it.
With all that,
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Regards,
Arnout
> +export BR_NO_CHECK_HASH_FOR =
>
> ################################################################################
> # The DOWNLOAD_* helpers are in charge of getting a working copy
>
--
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-05-01 13:07 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-28 22:39 [Buildroot] [PATCH 0/7] hashes: add more custom versions to the exclusion list (branch yem/no-hash-custom) Yann E. MORIN
2015-04-28 22:39 ` [Buildroot] [PATCH 1/7] boot/gummiboot: switch to http for git clone Yann E. MORIN
2015-05-01 8:32 ` Thomas Petazzoni
2015-04-28 22:39 ` [Buildroot] [PATCH 2/7] pkg-infra: assign BR_NO_CHECK_HASH_FOR so it is recursively-expanded Yann E. MORIN
2015-05-01 13:07 ` Arnout Vandecappelle [this message]
2015-05-01 15:26 ` Yann E. MORIN
2015-05-01 15:45 ` Arnout Vandecappelle
2015-05-01 16:22 ` Yann E. MORIN
2015-04-28 22:40 ` [Buildroot] [PATCH 3/7] boot/uboot: do not check hash for custom versions Yann E. MORIN
2015-04-29 5:49 ` Vincent Stehlé
2015-05-01 13:14 ` Arnout Vandecappelle
2015-05-01 15:31 ` Yann E. MORIN
2015-05-01 15:48 ` Arnout Vandecappelle
2015-05-01 16:21 ` Yann E. MORIN
2015-04-28 22:40 ` [Buildroot] [PATCH 4/7] boot/barebox: " Yann E. MORIN
2015-05-01 13:15 ` Arnout Vandecappelle
2015-05-01 15:32 ` Yann E. MORIN
2015-05-01 15:52 ` Arnout Vandecappelle
2015-04-28 22:40 ` [Buildroot] [PATCH 5/7] boot/mxs-bootlets: do not check hash of custom tarball Yann E. MORIN
2015-05-01 13:25 ` Arnout Vandecappelle
2015-04-28 22:40 ` [Buildroot] [PATCH 6/7] linux: do not check hashes for custom versions and tarballs Yann E. MORIN
2015-05-01 13:34 ` Arnout Vandecappelle
2015-05-01 15:38 ` Yann E. MORIN
2015-05-01 15:50 ` Arnout Vandecappelle
2015-05-01 21:35 ` Yann E. MORIN
2015-04-28 22:40 ` [Buildroot] [PATCH 7/7] package/xenomai: ignore custom versions Yann E. MORIN
2015-05-01 13:37 ` Arnout Vandecappelle
2015-04-28 22:46 ` [Buildroot] [PATCH 8/7] package/xenomai: add hash file Yann E. MORIN
2015-04-29 4:16 ` Baruch Siach
2015-04-29 6:33 ` Yann E. MORIN
2015-05-01 13:54 ` Arnout Vandecappelle
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=55437A92.3060007@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox