aboutsummaryrefslogtreecommitdiff
path: root/contrib/bmake/unit-tests/dep-double-colon-indep.mk
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bmake/unit-tests/dep-double-colon-indep.mk')
-rw-r--r--contrib/bmake/unit-tests/dep-double-colon-indep.mk32
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/bmake/unit-tests/dep-double-colon-indep.mk b/contrib/bmake/unit-tests/dep-double-colon-indep.mk
new file mode 100644
index 000000000000..9f004cf88ba2
--- /dev/null
+++ b/contrib/bmake/unit-tests/dep-double-colon-indep.mk
@@ -0,0 +1,32 @@
+# $NetBSD: dep-double-colon-indep.mk,v 1.1 2020/10/23 19:11:30 rillig Exp $
+#
+# Tests for the :: operator in dependency declarations, which allows multiple
+# dependency groups with the same target. Each group is evaluated on its own,
+# independent of the other groups.
+#
+# This is useful for targets that are updatable, such as a database or a log
+# file. Be careful with parallel mode though, to avoid lost updates and
+# other inconsistencies.
+#
+# The target 1300 depends on 1200, 1400 and 1500. The target 1200 is older
+# than 1300, therefore nothing is done for it. The other targets are newer
+# than 1300, therefore each of them is made, independently from the other.
+
+.END:
+ @rm -f dep-double-colon-1???
+
+_!= touch -t 202001011200 dep-double-colon-1200
+_!= touch -t 202001011300 dep-double-colon-1300
+_!= touch -t 202001011400 dep-double-colon-1400
+_!= touch -t 202001011500 dep-double-colon-1500
+
+all: dep-double-colon-1300
+
+dep-double-colon-1300:: dep-double-colon-1200
+ : 'Making 1200 ${.TARGET} from ${.ALLSRC} oodate ${.OODATE}'
+
+dep-double-colon-1300:: dep-double-colon-1400
+ : 'Making 1400 ${.TARGET} from ${.ALLSRC} oodate ${.OODATE}'
+
+dep-double-colon-1300:: dep-double-colon-1500
+ : 'Making 1500 ${.TARGET} from ${.ALLSRC} oodate ${.OODATE}'