summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regress/make-quoting/Makefile6
-rw-r--r--regress/make-quoting/files/bug2.mk22
-rw-r--r--regress/make-quoting/files/bug2.out4
3 files changed, 29 insertions, 3 deletions
diff --git a/regress/make-quoting/Makefile b/regress/make-quoting/Makefile
index 022f676b5dd..53a7cc0e37c 100644
--- a/regress/make-quoting/Makefile
+++ b/regress/make-quoting/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2005/05/19 10:59:10 rillig Exp $
+# $NetBSD: Makefile,v 1.4 2005/08/01 00:40:30 rillig Exp $
#
DISTNAME= regress-make-1.0
@@ -6,10 +6,10 @@ CATEGORIES= regress
DISTFILES= # empty
MAINTAINER= rillig@NetBSD.org
-COMMENT= Test Makefile quoting
+COMMENT= Test Makefile quoting and make(1) bugs
REGRESS_TESTS= continue dblquote for ltarget nestfor quoting sglquote \
- vtarget bug1
+ vtarget bug1 bug2
do-regress:
.for t in ${REGRESS_TESTS}
diff --git a/regress/make-quoting/files/bug2.mk b/regress/make-quoting/files/bug2.mk
new file mode 100644
index 00000000000..851af9c5a3f
--- /dev/null
+++ b/regress/make-quoting/files/bug2.mk
@@ -0,0 +1,22 @@
+# $NetBSD: bug2.mk,v 1.1 2005/08/01 00:40:30 rillig Exp $
+#
+# This file demonstrates a subtle inconsistency that only occurs when an
+# undefined variable is used in another, which is then quoted and copied
+# by using the := assignment operator.
+
+.undef UNDEFINED
+
+# this variable references the undefined variable
+UNDEF_REF= ${UNDEFINED}
+
+# here the reference is quoted
+VARS+= ${UNDEF_REF:Q}
+
+# and the current value is assigned to another variable
+VARS_VALUE:= ${VARS}
+
+all:
+ @echo UNDEFINED=${UNDEFINED:Q}""
+ @echo UNDEF_REF=${UNDEF_REF:Q}""
+ @echo VARS=${VARS:Q}""
+ @echo VARS_VALUE=${VARS_VALUE:Q}""
diff --git a/regress/make-quoting/files/bug2.out b/regress/make-quoting/files/bug2.out
new file mode 100644
index 00000000000..2ca7f0a8115
--- /dev/null
+++ b/regress/make-quoting/files/bug2.out
@@ -0,0 +1,4 @@
+UNDEFINED=
+UNDEF_REF=
+VARS=
+VARS_VALUE=\{UNDEFINED\}