xref: /freebsd/contrib/bmake/unit-tests/directive-for-empty.exp (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
1make: "directive-for-empty.mk" line 22: 2
2make: "directive-for-empty.mk" line 38: Missing argument for ".error"
3make: "directive-for-empty.mk" line 38: Missing argument for ".error"
4make: "directive-for-empty.mk" line 38: Missing argument for ".error"
5For: end for 1
6For: loop body with i = value:
7# The identifier 'empty' can only be used in conditions such as .if, .ifdef or
8# .elif.  In other lines the string 'empty(' must be preserved.
9CPPFLAGS+=	-Dmessage="empty(i)"
10# There may be whitespace between 'empty' and '('.
11.if ! empty (i)
12.  error
13.endif
14# Even in conditions, the string 'empty(' is not always a function call, it
15# can occur in a string literal as well.
16.if "empty\(i)" != "empty(i)"
17.  error
18.endif
19# In comments like 'empty(i)', the text must be preserved as well.
20#
21# Conditions, including function calls to 'empty', can not only occur in
22# condition directives, they can also occur in the modifier ':?', see
23# varmod-ifelse.mk.
24CPPFLAGS+=	-Dmacro="${empty(i):?empty:not-empty}"
25make: Fatal errors encountered -- cannot continue
26make: stopped in unit-tests
27exit status 1
28