]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 30 Nov 2022 08:23:49 +0000 (09:23 +0100)
committerPratyush Yadav <me@yadavpratyush.com>
Wed, 25 Jan 2023 09:54:31 +0000 (10:54 +0100)
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 means that $(MAKEFLAGS) now contains long options like
"--jobserver-auth=fifo:<path>" and we have to adapt to that.

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.

This is a partial backport of 67b36879fc0 (Makefiles: change search
through $(MAKEFLAGS) for GNU make 4.4, 2022-11-30), which had been
applied directly to git/git.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
Makefile

index 56c85a85c1e4930ae1cef3b51be4b4e5bf283773..a0d5a4b28e171542a0bfca2a3e833607aa47d409 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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