varname-dot-make-level.mk revision 1.3 1 # $NetBSD: varname-dot-make-level.mk,v 1.3 2024/06/01 18:44:05 rillig Exp $
2 #
3 # Tests for the special .MAKE.LEVEL variable, which informs about the
4 # recursion level. It is related to the environment variable MAKELEVEL,
5 # even though they don't have the same value.
6
7 level_1: .PHONY
8 @printf 'level 1: variable %s, env %s\n' ${.MAKE.LEVEL} "$$${.MAKE.LEVEL.ENV}"
9 @${MAKE} -f ${MAKEFILE} level_2
10
11 level_2: .PHONY
12 @printf 'level 2: variable %s, env %s\n' ${.MAKE.LEVEL} "$$${.MAKE.LEVEL.ENV}"
13 @${MAKE} -f ${MAKEFILE} level_3
14
15 level_3: .PHONY
16 @printf 'level 3: variable %s, env %s\n' ${.MAKE.LEVEL} "$$${.MAKE.LEVEL.ENV}"
17
18 # The .unexport-env directive clears the environment, except for the
19 # MAKE_LEVEL variable.
20 .if make(level_2)
21 .unexport-env
22 .endif
23