mirror of
https://github.com/mirror/make.git
synced 2026-08-27 04:13:27 +08:00
[SV 46013] Allow recursive variable overrides from Makefiles
Ensure that variable overrides are passed to recursive make instances even if no overrides were provided on the command line. Fix suggested by Rici Lake <ricilake@gmail.com> * src/main.c (define_makeflags): Add overrides without respect to the value of command_variables. * tests/scripts/features/recursion: Add a test.
This commit is contained in:
@@ -5,16 +5,17 @@ $details = "DETAILS";
|
||||
|
||||
# Test some basic recursion.
|
||||
run_make_test('
|
||||
.RECIPEPREFIX := |
|
||||
all:
|
||||
$(MAKE) -f #MAKEFILE# foo
|
||||
| $(MAKE) -f #MAKEFILE# foo
|
||||
foo:
|
||||
@echo $(MAKE)
|
||||
@echo MAKELEVEL = $(MAKELEVEL)
|
||||
$(MAKE) -f #MAKEFILE# last
|
||||
| @echo $(MAKE)
|
||||
| @echo MAKELEVEL = $(MAKELEVEL)
|
||||
| $(MAKE) -f #MAKEFILE# last
|
||||
last:
|
||||
@echo $(MAKE)
|
||||
@echo MAKELEVEL = $(MAKELEVEL)
|
||||
@echo THE END
|
||||
| @echo $(MAKE)
|
||||
| @echo MAKELEVEL = $(MAKELEVEL)
|
||||
| @echo THE END
|
||||
',
|
||||
('CFLAGS=-O -w' . ($parallel_jobs ? ' -j 2' : '')),
|
||||
($vos
|
||||
@@ -52,4 +53,15 @@ all: ; @echo "MAKEOVERRIDES = $(MAKEOVERRIDES)"
|
||||
MAKEOVERRIDES = a=AA
|
||||
');
|
||||
|
||||
# SV 46013: Ensure that MAKEOVERRIDES is passed even if set in the makefile
|
||||
run_make_test(q!
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
MAKEOVERRIDES += FOO+=bar
|
||||
endif
|
||||
.PHONY: M R
|
||||
M: ; @$(MAKE) --no-print-directory -f #MAKEFILE# R
|
||||
R: ; @echo '$(FOO)'
|
||||
!,
|
||||
'', 'bar');
|
||||
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user