freebsd-nq/contrib/bmake/unit-tests/varmod-l-name-to-value.mk
Simon J. Gerraty 2c3632d14f Update to bmake-20200902
Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o variable parsing detects more errors.

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.
2020-09-05 19:29:42 +00:00

32 lines
785 B
Makefile

# $NetBSD: varmod-l-name-to-value.mk,v 1.3 2020/08/25 22:25:05 rillig Exp $
#
# 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} != ""
.error
.endif
# The variable name is converted into an expression with the variable name
# "VARNAME" and the value "VARNAME".
.if ${VARNAME:L} != "VARNAME"
.error
.endif
# The value of the expression can be modified afterwards.
.if ${VARNAME:L:S,VAR,,} != "NAME"
.error
.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"
.error
.endif
all:
@:;