]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/recursive.mk
Update to bmake-20201101
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / recursive.mk
1 # $NetBSD: recursive.mk,v 1.3 2020/10/24 08:50:17 rillig Exp $
2 #
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.
6 #
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.
10 #
11 # Seen in pkgsrc/x11/libXfixes, and probably many more package that use
12 # GNU Automake.
13
14 AM_V_lt=        ${am__v_lt_${V}}
15 am__v_lt_=      ${am__v_lt_${AM_DEFAULT_VERBOSITY}}
16 am__v_lt_0=     --silent
17 am__v_lt_1=
18
19 # On 2020-08-06, make reported: "Variable am__v_lt_ is recursive."
20 libXfixes_la_LINK=      ... ${AM_V_lt} ...
21
22 # somewhere later ...
23 AM_DEFAULT_VERBOSITY=   1
24
25
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.
28 #
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}
37