# -*-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;