]> Git Repo - qemu.git/commitdiff
Makefile: ignore long options
authorAlexey Neyman <[email protected]>
Thu, 22 Jul 2021 02:08:46 +0000 (19:08 -0700)
committerPaolo Bonzini <[email protected]>
Thu, 29 Jul 2021 08:15:51 +0000 (10:15 +0200)
When searching for options like -n in MAKEFLAGS, current code may result
in a false positive match when make is invoked with long options like
--no-print-directory. This has been observed with certain versions of
host make (e.g. 3.82) while building the Qemu package in buildroot.

Filter out such long options before searching for one-character options.

Signed-off-by: Alexey Neyman <[email protected]>
Message-Id: <20210722020846.3678817[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Makefile

index 6c36330eef80f052fd8c421c1c1c9cf6cf89f30c..401c623a65f84e07ffdf5dc263bff120996de8e6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -129,9 +129,11 @@ endif
 # 4. Rules to bridge to other makefiles
 
 ifneq ($(NINJA),)
-MAKE.n = $(findstring n,$(firstword $(MAKEFLAGS)))
-MAKE.k = $(findstring k,$(firstword $(MAKEFLAGS)))
-MAKE.q = $(findstring q,$(firstword $(MAKEFLAGS)))
+# Filter out long options to avoid flags like --no-print-directory which
+# may result in false positive match for MAKE.n
+MAKE.n = $(findstring n,$(firstword $(filter-out --%,$(MAKEFLAGS))))
+MAKE.k = $(findstring k,$(firstword $(filter-out --%,$(MAKEFLAGS))))
+MAKE.q = $(findstring q,$(firstword $(filter-out --%,$(MAKEFLAGS))))
 MAKE.nq = $(if $(word 2, $(MAKE.n) $(MAKE.q)),nq)
 NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if $(MAKE.k), -k0) \
         $(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \
This page took 0.024653 seconds and 4 git commands to generate.