| # -*-perl-*- | |
| $description = "Test recursion."; | |
| $details = "DETAILS"; | |
| # Test some basic recursion. | |
| run_make_test(' | |
| .RECIPEPREFIX := | | |
| all: | |
| | $(MAKE) -f #MAKEFILE# foo | |
| foo: | |
| | @echo $(MAKE) | |
| | @echo MAKELEVEL = $(MAKELEVEL) | |
| | $(MAKE) -f #MAKEFILE# last | |
| last: | |
| | @echo $(MAKE) | |
| | @echo MAKELEVEL = $(MAKELEVEL) | |
| | @echo THE END | |
| ', | |
| ('CFLAGS=-O -w' . ($parallel_jobs ? ' -j 2' : '')), | |
| ($vos | |
| ? "#MAKE#: Entering directory '#PWD#' | |
| make 'CFLAGS=-O' -f #MAKEFILE# foo | |
| make CFLAGS=-O | |
| MAKELEVEL = 0 | |
| make 'CFLAGS=-O' -f #MAKEFILE# last | |
| make CFLAGS=-O | |
| MAKELEVEL = 0 | |
| THE END | |
| #MAKE#: Leaving directory '#PWD#'" | |
| : "#MAKE#: Entering directory '#PWD#' | |
| #MAKEPATH# -f #MAKEFILE# foo | |
| #MAKE#[1]: Entering directory '#PWD#' | |
| #MAKEPATH# | |
| MAKELEVEL = 1 | |
| #MAKEPATH# -f #MAKEFILE# last | |
| #MAKE#[2]: Entering directory '#PWD#' | |
| #MAKEPATH# | |
| MAKELEVEL = 2 | |
| THE END | |
| #MAKE#[2]: Leaving directory '#PWD#' | |
| #MAKE#[1]: Leaving directory '#PWD#' | |
| #MAKE#: Leaving directory '#PWD#'")); | |
| # Test command line overrides. | |
| run_make_test(' | |
| recur: all ; @$(MAKE) --no-print-directory -f #MAKEFILE# a=AA all | |
| all: ; @echo "MAKEOVERRIDES = $(MAKEOVERRIDES)" | |
| ', | |
| 'a=ZZ', | |
| 'MAKEOVERRIDES = a=ZZ | |
| 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; |