1 1.8 rillig # $NetBSD: directive-export-literal.mk,v 1.8 2024/06/01 18:44:05 rillig Exp $ 2 1.1 rillig # 3 1.5 rillig # Tests for the .export-literal directive, which exports a variable value 4 1.5 rillig # without expanding it. 5 1.1 rillig 6 1.5 rillig UT_VAR= value with ${UNEXPANDED} expression 7 1.5 rillig 8 1.5 rillig .export-literal UT_VAR 9 1.1 rillig 10 1.6 rillig .export-literal # oops: missing argument 11 1.6 rillig 12 1.8 rillig # After a variable whose value does not contain a '$' is exported, a following 13 1.8 rillig # .export-literal can be skipped, to avoid a setenv call, which may leak 14 1.8 rillig # memory on some platforms. 15 1.8 rillig UT_TWICE_LITERAL= value literal 16 1.8 rillig .export UT_TWICE_LITERAL 17 1.8 rillig .export-literal UT_TWICE_LITERAL 18 1.8 rillig 19 1.8 rillig # XXX: After an .export, an .export-literal has no effect, even when the 20 1.8 rillig # variable value contains a '$'. 21 1.8 rillig UT_TWICE_EXPR= value ${indirect:L} 22 1.8 rillig .export UT_TWICE_EXPR 23 1.8 rillig .export-literal UT_TWICE_EXPR 24 1.8 rillig 25 1.8 rillig # After an .export, an .unexport resets the variable's exported state, 26 1.8 rillig # re-enabling a later .export-literal. 27 1.8 rillig UT_TWICE_EXPR_UNEXPORT= value ${indirect:L} 28 1.8 rillig .export UT_TWICE_EXPR_UNEXPORT 29 1.8 rillig .unexport UT_TWICE_EXPR_UNEXPORT 30 1.8 rillig .export-literal UT_TWICE_EXPR_UNEXPORT 31 1.8 rillig 32 1.1 rillig all: 33 1.5 rillig @echo "$$UT_VAR" 34 1.8 rillig @echo "$$UT_TWICE_LITERAL" 35 1.8 rillig @echo "$$UT_TWICE_EXPR" 36 1.8 rillig @echo "$$UT_TWICE_EXPR_UNEXPORT" 37