1 # $NetBSD: recursive.mk,v 1.3 2020/10/24 08:50:17 rillig Exp $
3 # In -dL mode, a variable may get expanded before it makes sense.
4 # This would stop make from doing anything since the "recursive" error
5 # is fatal and exits immediately.
7 # The purpose of evaluating that variable early was just to detect
8 # whether there are unclosed variables. It might be enough to parse the
9 # variable value without VARE_WANTRES for that purpose.
11 # Seen in pkgsrc/x11/libXfixes, and probably many more package that use
14 AM_V_lt= ${am__v_lt_${V}}
15 am__v_lt_= ${am__v_lt_${AM_DEFAULT_VERBOSITY}}
19 # On 2020-08-06, make reported: "Variable am__v_lt_ is recursive."
20 libXfixes_la_LINK= ... ${AM_V_lt} ...
23 AM_DEFAULT_VERBOSITY= 1
26 # The purpose of the -dL flag is to detect unclosed variables. This
27 # can be achieved by just parsing the variable and not evaluating it.
29 # When the variable is only parsed but not evaluated, bugs in nested
30 # variables are not discovered. But these are hard to produce anyway,
31 # therefore that's acceptable. In most practical cases, the missing
32 # brace would be detected directly in the line where it is produced.
33 MISSING_BRACE_INDIRECT:= ${:U\${MISSING_BRACE}
34 UNCLOSED= $(MISSING_PAREN
35 UNCLOSED= ${MISSING_BRACE
36 UNCLOSED= ${MISSING_BRACE_INDIRECT}