2020-11-07 19:39:21 +00:00
|
|
|
# $NetBSD: varmod-l-name-to-value.mk,v 1.7 2020/10/24 08:46:08 rillig Exp $
|
2020-09-05 16:11:04 +00:00
|
|
|
#
|
|
|
|
# Tests for the :L modifier, which returns the variable name as the new value.
|
|
|
|
|
|
|
|
# The empty variable name leads to an empty string.
|
|
|
|
.if ${:L} != ""
|
2020-11-07 19:39:21 +00:00
|
|
|
. error
|
2020-09-05 16:11:04 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# The variable name is converted into an expression with the variable name
|
|
|
|
# "VARNAME" and the value "VARNAME".
|
|
|
|
.if ${VARNAME:L} != "VARNAME"
|
2020-11-07 19:39:21 +00:00
|
|
|
. error
|
2020-09-05 16:11:04 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# The value of the expression can be modified afterwards.
|
|
|
|
.if ${VARNAME:L:S,VAR,,} != "NAME"
|
2020-11-07 19:39:21 +00:00
|
|
|
. error
|
2020-09-05 16:11:04 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# The name of the expression is still the same as before. Using the :L
|
|
|
|
# modifier, it can be restored.
|
|
|
|
#
|
|
|
|
# Hmmm, this can be used as a double storage or a backup mechanism.
|
|
|
|
# Probably unintended, but maybe useful.
|
|
|
|
.if ${VARNAME:L:S,VAR,,:L} != "VARNAME"
|
2020-11-07 19:39:21 +00:00
|
|
|
. error
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Between 2020-09-22 (var.c 1.527) and 2020-09-30 (var.c 1.553), there was
|
|
|
|
# a bug in the evaluation of variable expressions. Indirect modifiers like
|
|
|
|
# the below :L did not update the definedness of the enclosing expression.
|
|
|
|
# This resulted in a wrong "Malformed conditional".
|
|
|
|
.if ${value:${:UL}} == ""
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# As of 2020-10-02, the :L modifier does not ensure that it is followed by
|
|
|
|
# a delimiter, that is, a ':' or endc. Neither does the :P modifier.
|
|
|
|
.if ${value:LLLLLLPL} != "value"
|
|
|
|
. error
|
2020-09-05 16:11:04 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
all:
|
|
|
|
@:;
|