summaryrefslogtreecommitdiff
path: root/unit-tests/varcmd
diff options
context:
space:
mode:
Diffstat (limited to 'unit-tests/varcmd')
-rw-r--r--unit-tests/varcmd49
1 files changed, 49 insertions, 0 deletions
diff --git a/unit-tests/varcmd b/unit-tests/varcmd
new file mode 100644
index 0000000..a58e014
--- /dev/null
+++ b/unit-tests/varcmd
@@ -0,0 +1,49 @@
+# $Id: varcmd,v 1.3 2008/05/15 04:30:47 sjg Exp $
+#
+# Test behaviour of recursive make and vars set on command line.
+
+FU=fu
+FOO?=foo
+.if !empty(.TARGETS)
+TAG=${.TARGETS}
+.endif
+TAG?=default
+
+all: one
+
+show:
+ @echo "${TAG} FU=<v>${FU}</v> FOO=<v>${FOO}</v> VAR=<v>${VAR}</v>"
+
+one: show
+ @${.MAKE} -f ${MAKEFILE} FU=bar FOO=goo two
+
+two: show
+ @${.MAKE} -f ${MAKEFILE} three
+
+three: show
+ @${.MAKE} -f ${MAKEFILE} four
+
+
+.ifmake four
+VAR=Internal
+.MAKEOVERRIDES+= VAR
+.endif
+
+four: show
+ @${.MAKE} -f ${MAKEFILE} five
+
+M = x
+V.y = is y
+V.x = is x
+V := ${V.$M}
+K := ${V}
+
+show-v:
+ @echo '${TAG} v=${V} k=${K}'
+
+five: show show-v
+ @${.MAKE} -f ${MAKEFILE} M=y six
+
+six: show-v
+ @${.MAKE} -f ${MAKEFILE} V=override show-v
+