Module Name: src
Committed By: sjg
Date: Fri Jan 14 19:31:44 UTC 2022
Modified Files:
src/usr.bin/make/unit-tests: meta-cmd-cmp.exp meta-cmd-cmp.mk
Log Message:
Add unit-test for .MAKE.META.CMP_FILTER
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/meta-cmd-cmp.exp
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/meta-cmd-cmp.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/unit-tests/meta-cmd-cmp.exp
diff -u src/usr.bin/make/unit-tests/meta-cmd-cmp.exp:1.1 src/usr.bin/make/unit-tests/meta-cmd-cmp.exp:1.2
--- src/usr.bin/make/unit-tests/meta-cmd-cmp.exp:1.1 Mon Nov 30 18:32:49 2020
+++ src/usr.bin/make/unit-tests/meta-cmd-cmp.exp Fri Jan 14 19:31:44 2022
@@ -34,4 +34,17 @@ vs
Building .meta-cmd-cmp.cmp2
This line not compared FLAGS=
Skipping meta for .END: .SPECIAL
+filter0:
+Building .meta-cmd-cmp.filter
+Skipping meta for .END: .SPECIAL
+filter1:
+.meta-cmd-cmp.filter.meta: 2: a build command has changed
+@echo ccache cc -c foo.c > .meta-cmd-cmp.filter
+vs
+@echo cc -c foo.c > .meta-cmd-cmp.filter
+Building .meta-cmd-cmp.filter
+Skipping meta for .END: .SPECIAL
+filter2:
+`.meta-cmd-cmp.filter' is up to date.
+Skipping meta for .END: .SPECIAL
exit status 0
Index: src/usr.bin/make/unit-tests/meta-cmd-cmp.mk
diff -u src/usr.bin/make/unit-tests/meta-cmd-cmp.mk:1.2 src/usr.bin/make/unit-tests/meta-cmd-cmp.mk:1.3
--- src/usr.bin/make/unit-tests/meta-cmd-cmp.mk:1.2 Sat Dec 5 22:51:34 2020
+++ src/usr.bin/make/unit-tests/meta-cmd-cmp.mk Fri Jan 14 19:31:44 2022
@@ -1,4 +1,4 @@
-# $NetBSD: meta-cmd-cmp.mk,v 1.2 2020/12/05 22:51:34 sjg Exp $
+# $NetBSD: meta-cmd-cmp.mk,v 1.3 2022/01/14 19:31:44 sjg Exp $
#
# Tests META_MODE command line comparison
#
@@ -9,7 +9,7 @@
tf:= .${.PARSEFILE:R}
.if ${.TARGETS:Nall} == ""
-all: prep one two change1 change2 post
+all: prep one two change1 change2 filter0 filter1 filter2 post
CLEANFILES= ${tf}*
@@ -22,6 +22,7 @@ FLAGS?=
FLAGS2?=
tests= ${tf}.cmp ${tf}.nocmp ${tf}.cmp2
+filter_tests= ${tf}.filter
${tf}.cmp:
@echo FLAGS=${FLAGS:Uempty} > $@
@@ -35,6 +36,14 @@ ${tf}.cmp2:
@echo FLAGS2=${FLAGS2:Uempty} > $@
@echo This line not compared FLAGS=${FLAGS:Uempty} ${.OODATE:MNOMETA_CMP}
+CCACHE= ccache
+.ifdef WITH_CMP_FILTER
+.MAKE.META.CMP_FILTER += Nccache Ndistcc
+.endif
+
+${tf}.filter:
+ @echo ${CCACHE} cc -c foo.c > $@
+
# these do the same
one two: .PHONY
@echo $@:
@@ -48,5 +57,18 @@ change2: .PHONY
@echo $@:
@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS2=changed ${tests}
+filter0: .PHONY
+ @echo $@:
+ @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${filter_tests}
+
+filter1: .PHONY
+ @echo $@:
+ @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} CCACHE= ${filter_tests}
+
+filter2: .PHONY
+ @echo $@:
+ @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_CMP_FILTER \
+ CCACHE=distcc ${filter_tests}
+
# don't let gcov mess up the results
.MAKE.META.IGNORE_PATTERNS+= *.gcda