"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "unit-tests/cond-token-var.mk" between
bmake-20201101.tar.gz and bmake-20201117.tar.gz

About: bmake a BSD make tool (derived from NetBSD’s make).

cond-token-var.mk  (bmake-20201101):cond-token-var.mk  (bmake-20201117)
# $NetBSD: cond-token-var.mk,v 1.4 2020/10/24 08:46:08 rillig Exp $ # $NetBSD: cond-token-var.mk,v 1.5 2020/11/15 14:58:14 rillig Exp $
# #
# Tests for variables in .if conditions. # Tests for variable expressions in .if conditions.
#
# Note the fine distinction between a variable and a variable expression.
# A variable has a name and a value. To access the value, one writes a
# variable expression of the form ${VAR}. This is a simple variable
# expression. Variable expressions can get more complicated by adding
# variable modifiers such as in ${VAR:Mpattern}.
#
# XXX: Strictly speaking, variable modifiers should be called expression
# modifiers instead since they only modify the expression, not the variable.
# Well, except for the assignment modifiers, these do indeed change the value
# of the variable.
DEF= defined DEF= defined
# A defined variable may appear on either side of the comparison. # A defined variable may appear on either side of the comparison.
.if ${DEF} == ${DEF} .if ${DEF} == ${DEF}
. info ok . info ok
.else .else
. error . error
.endif .endif
# A variable that appears on the left-hand side must be defined. # A variable that appears on the left-hand side must be defined.
# The following line thus generates a parse error.
.if ${UNDEF} == ${DEF} .if ${UNDEF} == ${DEF}
. error . error
.endif .endif
# A variable that appears on the right-hand side must be defined. # A variable that appears on the right-hand side must be defined.
# The following line thus generates a parse error.
.if ${DEF} == ${UNDEF} .if ${DEF} == ${UNDEF}
. error . error
.endif .endif
# A defined variable may appear as an expression of its own. # A defined variable may appear as an expression of its own.
.if ${DEF} .if ${DEF}
.endif .endif
# An undefined variable generates a warning. # An undefined variable on its own generates a parse error.
.if ${UNDEF} .if ${UNDEF}
.endif .endif
# The :U modifier turns an undefined variable into an ordinary expression. # The :U modifier turns an undefined expression into a defined expression.
# Since the expression is defined now, it doesn't generate any parse error.
.if ${UNDEF:U} .if ${UNDEF:U}
.endif .endif
 End of changes. 6 change blocks. 
4 lines changed or deleted 18 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)