summaryrefslogtreecommitdiff
path: root/unit-tests/recursive.mk
blob: 6e5d8a2ca8b5b4a76f5690a78704d1507050461d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# $NetBSD: recursive.mk,v 1.3 2020/10/24 08:50:17 rillig Exp $
#
# In -dL mode, a variable may get expanded before it makes sense.
# This would stop make from doing anything since the "recursive" error
# is fatal and exits immediately.
#
# The purpose of evaluating that variable early was just to detect
# whether there are unclosed variables.  It might be enough to parse the
# variable value without VARE_WANTRES for that purpose.
#
# Seen in pkgsrc/x11/libXfixes, and probably many more package that use
# GNU Automake.

AM_V_lt=	${am__v_lt_${V}}
am__v_lt_=	${am__v_lt_${AM_DEFAULT_VERBOSITY}}
am__v_lt_0=	--silent
am__v_lt_1=

# On 2020-08-06, make reported: "Variable am__v_lt_ is recursive."
libXfixes_la_LINK=	... ${AM_V_lt} ...

# somewhere later ...
AM_DEFAULT_VERBOSITY=	1


# The purpose of the -dL flag is to detect unclosed variables.  This
# can be achieved by just parsing the variable and not evaluating it.
#
# When the variable is only parsed but not evaluated, bugs in nested
# variables are not discovered.  But these are hard to produce anyway,
# therefore that's acceptable.  In most practical cases, the missing
# brace would be detected directly in the line where it is produced.
MISSING_BRACE_INDIRECT:=	${:U\${MISSING_BRACE}
UNCLOSED=	$(MISSING_PAREN
UNCLOSED=	${MISSING_BRACE
UNCLOSED=	${MISSING_BRACE_INDIRECT}