1# $NetBSD: recursive.mk,v 1.2 2020/08/06 05:52:45 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 14AM_V_lt = $(am__v_lt_$(V)) 15am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 16am__v_lt_0 = --silent 17am__v_lt_1 = 18 19# On 2020-08-06, make reported: "Variable am__v_lt_ is recursive." 20libXfixes_la_LINK = ... $(AM_V_lt) ... 21 22# somewhere later ... 23AM_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. 33MISSING_BRACE_INDIRECT:= ${:U\${MISSING_BRACE} 34UNCLOSED = $(MISSING_PAREN 35UNCLOSED = ${MISSING_BRACE 36UNCLOSED = ${MISSING_BRACE_INDIRECT} 37 38