1# $NetBSD: forloop.mk,v 1.7 2020/11/03 17:37:57 rillig Exp $
2
3all: for-loop
4
5LIST=	one "two and three" four "five"
6
7.if make(for-fail)
8for-fail:
9
10XTRA_LIST=	xtra
11.else
12
13.  for x in ${LIST}
14.    info x=$x
15.  endfor
16
17CFL=	-I/this -I"This or that" -Ithat "-DTHIS=\"this and that\""
18cfl=
19.  for x in ${CFL}
20.    info x=$x
21.    if empty(cfl)
22cfl=	$x
23.    else
24cfl+=	$x
25.    endif
26.  endfor
27.  info cfl=${cfl}
28
29.  if ${cfl} != ${CFL}
30.    error ${.newline}${cfl} != ${.newline}${CFL}
31.  endif
32
33.  for a b in ${EMPTY}
34.    info a=$a b=$b
35.  endfor
36
37# Since at least 1993, iteration stops at the first newline.
38# Back then, the .newline variable didn't exist, therefore it was unlikely
39# that a newline ever occurred.
40.  for var in a${.newline}b${.newline}c
41.    info newline-item=(${var})
42.  endfor
43
44.endif	# for-fail
45
46.for a b in ${LIST} ${LIST:tu} ${XTRA_LIST}
47.  info a=$a b=$b
48.endfor
49
50for-loop:
51	@echo We expect an error next:
52	@(cd ${.CURDIR} && ${.MAKE} -f ${MAKEFILE} for-fail) && \
53	{ echo "Oops that should have failed!"; exit 1; } || echo OK
54