diff options
author | rillig <rillig@pkgsrc.org> | 2005-05-15 23:37:13 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2005-05-15 23:37:13 +0000 |
commit | a03d851b64f339a27c6f6bca28afcf2c7be3c753 (patch) | |
tree | 3127721e1db5115054641a934ba08c63eccd545c /regress/make-quoting/files | |
parent | bff1867aa9612da6d126269c0128e72096b99eea (diff) | |
download | pkgsrc-a03d851b64f339a27c6f6bca28afcf2c7be3c753.tar.gz |
Added an example workaround to bug1.mk.
Diffstat (limited to 'regress/make-quoting/files')
-rw-r--r-- | regress/make-quoting/files/bug1.mk | 37 | ||||
-rw-r--r-- | regress/make-quoting/files/bug1.out | 3 |
2 files changed, 30 insertions, 10 deletions
diff --git a/regress/make-quoting/files/bug1.mk b/regress/make-quoting/files/bug1.mk index a1bdf7e8a23..1117cddcf00 100644 --- a/regress/make-quoting/files/bug1.mk +++ b/regress/make-quoting/files/bug1.mk @@ -1,4 +1,4 @@ -# $NetBSD: bug1.mk,v 1.1 2005/05/15 22:50:13 rillig Exp $ +# $NetBSD: bug1.mk,v 1.2 2005/05/15 23:37:13 rillig Exp $ # # This file demonstrates a parsing bug in make(1) from NetBSD-1.6.2 and # the current pkgsrc bmake. The make from NetBSD-2.99.15 has been fixed. @@ -7,30 +7,49 @@ # terminator for a variable and once as literal character, which is # appended to PKG_OPTIONS. -PKG_OPTIONS= a b c -.for _o_ in -b -c -_opt_:= ${_o_} # .for variables cannot be used in modifiers +OPTIONS= a b c d +MYOPTIONS= -b -c + +OPTIONS_1:= ${OPTIONS} +.for _o_ in ${MYOPTIONS} +_opt_:= ${_o_} . if !empty(_opt_:M-*) -PKG_OPTIONS:= ${PKG_OPTIONS:N${_opt_:C/-//}} # <-- the bug +OPTIONS_1:= ${OPTIONS_1:N${_opt_:C/-//}} # <-- the bug +. endif +.endfor + +# This is a possible workaround for this bug. It defines an intermediate +# variable that reduces the complexity of the modifier expression. + +OPTIONS_2:= ${OPTIONS} +.for _o_ in ${MYOPTIONS} +_opt_:= ${_o_} +_popt_:= ${_o_:C/-//} # <-- workaround, part 1 +. if !empty(_opt_:M-*) +OPTIONS_2:= ${OPTIONS_2:N${_popt_}} # <-- workaround, part 2 . endif .endfor PASSED?= no # /usr/bin/make from NetBSD 2.99.15 or similar -.if !empty(MAKE_VERSION:Mnetbsd-2005*) && ${PKG_OPTIONS} == "a" +.if !empty(MAKE_VERSION:Mnetbsd-2005*) && ${OPTIONS_1} == "a" PASSED= yes # /usr/bin/make from NetBSD 1.6.2 -.elif !empty(MAKE_VERSION:Mnetbsd-20040210) && ${PKG_OPTIONS} == "a b c}}" +.elif !empty(MAKE_VERSION:Mnetbsd-20040210) && ${OPTIONS_1} == "a b c d}}" PASSED= yes # bmake from pkgsrc -.elif !empty(MAKE_VERSION:Mbmake-3.1.12*) && ${PKG_OPTIONS} == "a b c}}" +.elif !empty(MAKE_VERSION:Mbmake-3.1.12*) && ${OPTIONS_1} == "a b c d}}" PASSED= yes .endif .PHONY: all all: - @echo ${PASSED} + @echo "PASSED="${PASSED:Q}"" +.if ${PASSED} != "yes" + @echo "OPTIONS_1="${OPTIONS_1:Q}"" +.endif + @echo "OPTIONS_2="${OPTIONS_2:Q}"" diff --git a/regress/make-quoting/files/bug1.out b/regress/make-quoting/files/bug1.out index 7cfab5b05d6..45e2d5d314a 100644 --- a/regress/make-quoting/files/bug1.out +++ b/regress/make-quoting/files/bug1.out @@ -1 +1,2 @@ -yes +PASSED=yes +OPTIONS_2=a d |