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