1 # $NetBSD: counter-append.mk,v 1.4 2020/10/17 16:57:17 rillig Exp $
3 # Demonstrates how to let make count the number of times a variable
4 # is actually accessed, using the ::+= variable modifier.
6 # This works since 2020-09-23. Before that, the counter ended up at having
7 # 6 words, even though the NEXT variable was only accessed 3 times.
8 # The cause for this surprising behavior was that the ::= variable modifiers
9 # returned an error marker instead of a simple empty string.
11 RELEVANT= yes (load-time part) # just to filter the output
15 NEXT= ${COUNTER::+=a}${COUNTER:[#]}
17 # This variable is first set to empty and then expanded.
18 # See parse.c, function Parse_DoVar, keyword "!Var_Exists".
26 @: ${RELEVANT::=yes (run-time part)}
27 @echo A=${A:Q} B=${B:Q} C=${C:Q} COUNTER=${COUNTER:[#]:Q}