Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4
Since GNU make 4.4 the semantics of the $(MAKEFLAGS) variable has changed in a backward-incompatible way, as its "NEWS" file notes: Previously only simple (one-letter) options were added to the MAKEFLAGS variable that was visible while parsing makefiles. Now, all options are available in MAKEFLAGS. If you want to check MAKEFLAGS for a one-letter option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return the set of one-letter options which can be examined via findstring, etc. This upstream change meant that e.g.: make man Would become very noisy, because in shared.mak we rely on extracting "s" from the $(MAKEFLAGS), which now contains long options like "--jobserver-auth=fifo:<path>", which we'll conflate with the "-s" option. So, let's change this idiom we've been carrying since [1], [2] and [3] as the "NEWS" suggests. Note that the "-" in "-$(MAKEFLAGS)" is critical here, as the variable will always contain leading whitespace if there are no short options, but long options are present. Without it e.g. "make --debug=all" would yield "--debug=all" as the first word, but with it we'll get "-" as intended. Then "-s" for "-s", "-Bs" for "-s -B" etc. 1.maint0c3b4aac8e(git-gui: Support of "make -s" in: do not output anything of the build itself, 2007-03-07) 2.b777434383(Support of "make -s": do not output anything of the build itself, 2007-03-07) 3.bb2300976b(Documentation/Makefile: make most operations "quiet", 2009-03-27) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
							parent
							
								
									9f95c7aefa
								
							
						
					
					
						commit
						67b36879fc
					
				|  | @ -116,7 +116,7 @@ ifeq ($(uname_S),Darwin) | |||
| 	TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app) | ||||
| endif | ||||
|  | ||||
| ifeq ($(findstring $(MAKEFLAGS),s),s) | ||||
| ifeq ($(findstring $(firstword -$(MAKEFLAGS)),s),s) | ||||
| QUIET_GEN = | ||||
| endif | ||||
|  | ||||
|  |  | |||
|  | @ -37,13 +37,13 @@ space := $(empty) $(empty) | |||
| QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir | ||||
| QUIET_SUBDIR1  = | ||||
|  | ||||
| ifneq ($(findstring w,$(MAKEFLAGS)),w) | ||||
| ifneq ($(findstring w,$(firstword -$(MAKEFLAGS))),w) | ||||
| PRINT_DIR = --no-print-directory | ||||
| else # "make -w" | ||||
| NO_SUBDIR = : | ||||
| endif | ||||
|  | ||||
| ifneq ($(findstring s,$(MAKEFLAGS)),s) | ||||
| ifneq ($(findstring s,$(firstword -$(MAKEFLAGS))),s) | ||||
| ifndef V | ||||
| ## common | ||||
| 	QUIET_SUBDIR0  = +@subdir= | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Ævar Arnfjörð Bjarmason
						Ævar Arnfjörð Bjarmason