varmod-l-name-to-value.mk revision 1.3 1 1.3 rillig # $NetBSD: varmod-l-name-to-value.mk,v 1.3 2020/08/25 22:25:05 rillig Exp $
2 1.1 rillig #
3 1.2 rillig # Tests for the :L modifier, which returns the variable name as the new value.
4 1.1 rillig
5 1.3 rillig # The empty variable name leads to an empty string.
6 1.3 rillig .if ${:L} != ""
7 1.3 rillig .error
8 1.3 rillig .endif
9 1.3 rillig
10 1.3 rillig # The variable name is converted into an expression with the variable name
11 1.3 rillig # "VARNAME" and the value "VARNAME".
12 1.3 rillig .if ${VARNAME:L} != "VARNAME"
13 1.3 rillig .error
14 1.3 rillig .endif
15 1.3 rillig
16 1.3 rillig # The value of the expression can be modified afterwards.
17 1.3 rillig .if ${VARNAME:L:S,VAR,,} != "NAME"
18 1.3 rillig .error
19 1.3 rillig .endif
20 1.3 rillig
21 1.3 rillig # The name of the expression is still the same as before. Using the :L
22 1.3 rillig # modifier, it can be restored.
23 1.3 rillig #
24 1.3 rillig # Hmmm, this can be used as a double storage or a backup mechanism.
25 1.3 rillig # Probably unintended, but maybe useful.
26 1.3 rillig .if ${VARNAME:L:S,VAR,,:L} != "VARNAME"
27 1.3 rillig .error
28 1.3 rillig .endif
29 1.1 rillig
30 1.1 rillig all:
31 1.1 rillig @:;
32