diff mbox

Makefile: improve detection of make "-s" flag

Message ID 1414422891-7269-1-git-send-email-fabio.porcedda@gmail.com
State Superseded
Headers show

Commit Message

Fabio Porcedda Oct. 27, 2014, 3:14 p.m. UTC
Because it's just checked the presence of the "s" character even a
  make --warn-undefined-variables
is detected as a silent build so fix this by filtering out long options.
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Arnout Vandecappelle Oct. 28, 2014, 9:06 p.m. UTC | #1
On 27/10/14 16:14, Fabio Porcedda wrote:
> Because it's just checked the presence of the "s" character even a
>   make --warn-undefined-variables
> is detected as a silent build so fix this by filtering out long options.
> ---
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index 907a0fc..4fd6b64 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -303,7 +303,7 @@ GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
>  TARGETS :=
>  
>  # silent mode requested?
> -QUIET := $(if $(findstring s,$(MAKEFLAGS)),-q)
> +QUIET := $(if $(findstring s, $(filter-out --%, $(MAKEFLAGS))), -q)

 This add a spurious space to the QUIET variable. Not really important, but we
normally avoid that.

 Also, maybe an easier solution is:

# Search for s only in the short options
QUIET := $(if $(findstring s,$(firstword $(MAKEFLAGS))),-q)

(Note that GNU make converts something like --silent into an s in MAKEFLAGS, and
that all the short options are collected to the beginning of MAKEFLAGS.)


 Regards,
 Arnout

>  
>  # Strip off the annoying quoting
>  ARCH := $(call qstrip,$(BR2_ARCH))
>
Fabio Porcedda Oct. 29, 2014, 7:59 a.m. UTC | #2
Hi Arnout,
thanks for reviewing it.

On Tue, Oct 28, 2014 at 10:06 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 27/10/14 16:14, Fabio Porcedda wrote:
>> Because it's just checked the presence of the "s" character even a
>>   make --warn-undefined-variables
>> is detected as a silent build so fix this by filtering out long options.
>> ---
>>  Makefile | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 907a0fc..4fd6b64 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -303,7 +303,7 @@ GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
>>  TARGETS :=
>>
>>  # silent mode requested?
>> -QUIET := $(if $(findstring s,$(MAKEFLAGS)),-q)
>> +QUIET := $(if $(findstring s, $(filter-out --%, $(MAKEFLAGS))), -q)
>
>  This add a spurious space to the QUIET variable. Not really important, but we
> normally avoid that.
Ok, I will fix it.

>  Also, maybe an easier solution is:
>
> # Search for s only in the short options
> QUIET := $(if $(findstring s,$(firstword $(MAKEFLAGS))),-q)

I tried it but it does not work because with "make
--warn-undefined-variables" the MAKEFLAGS variable contains just the
single word "--warn-undefined-variables" so it triggers a false
positive.

> (Note that GNU make converts something like --silent into an s in MAKEFLAGS, and
> that all the short options are collected to the beginning of MAKEFLAGS.)

Thanks & BR
Fabio Porcedda Oct. 29, 2014, 4:39 p.m. UTC | #3
I've sent a new revision:
http://patchwork.ozlabs.org/patch/404484/

BR
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 907a0fc..4fd6b64 100644
--- a/Makefile
+++ b/Makefile
@@ -303,7 +303,7 @@  GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
 TARGETS :=
 
 # silent mode requested?
-QUIET := $(if $(findstring s,$(MAKEFLAGS)),-q)
+QUIET := $(if $(findstring s, $(filter-out --%, $(MAKEFLAGS))), -q)
 
 # Strip off the annoying quoting
 ARCH := $(call qstrip,$(BR2_ARCH))