[Buildroot] [PATCHv3 16/18] Makefile: add BR_BUILDING variable

Yann E. MORIN yann.morin.1998 at free.fr
Sat Apr 25 20:26:49 UTC 2015


Thomas, All,

On 2015-04-25 16:43 +0200, Thomas Petazzoni spake thusly:
> Some packages do some sanity checks on their configuration, for
> example linux checks that the defconfig string is not empty when a
> defconfig is used. Such checks are currently always performed, except
> when the 'source' target is part of make goals.
> 
> This is problematic for two reasons:
> 
>  - Other targets such as 'source-check', 'external-deps' or
>    'legal-info', that do not consist in doing a build, cannot be
>    executed in such situations.
> 
>  - The current code removes the check as soon as one of the targets is
>    source. But if there are other non-source targets called at the
>    same time, the checks are ignored.
> 
> This commit therefore introduces an internal variable called
> BR_BUILDING, which tells packages if we are actually building or
> not. A variable nobuild_targets indicates the targets that we do not
> consider as being build targets.
> 
> For the moment, nobuild_targets only contains 'source', to be
> completely iso-functional.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>

I'm not too fond of the variable name, but I can't find a better one...

Acked-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Not tested, there's virtually nothing new to test (except that it is
valid make synbtax, obviously, and that's OK).

Regards,
Yann E. MORIN.

> ---
>  Makefile | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 0ba341b..e0be636 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -77,6 +77,22 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
>  	randpackageconfig allyespackageconfig allnopackageconfig \
>  	print-version olddefconfig
>  
> +# Some global targets do not trigger a build, but are used to collect
> +# metadata, or do various checks. When such targets are triggered,
> +# some packages should not do their configuration sanity
> +# checks. Provide them a BR_BUILDING variable set to 'y' when we're
> +# actually building and they should do their sanity checks.
> +#
> +# We're building in two situations: when MAKECMDGOALS is empty
> +# (default target is to build), or when MAKECMDGOALS contains
> +# something else than one of the nobuild_targets.
> +nobuild_targets := source
> +ifeq ($(MAKECMDGOALS),)
> +BR_BUILDING = y
> +else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
> +BR_BUILDING = y
> +endif
> +
>  # Strip quotes and then whitespaces
>  qstrip = $(strip $(subst ",,$(1)))
>  #"))
> -- 
> 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.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list