| @@ -1,84 +1,84 @@ | | | @@ -1,84 +1,84 @@ |
1 | # $NetBSD: meta-cmd-cmp.mk,v 1.5 2022/02/09 21:09:24 rillig Exp $ | | 1 | # $NetBSD: meta-cmd-cmp.mk,v 1.6 2022/03/02 19:32:15 sjg Exp $ |
2 | # | | 2 | # |
3 | # Tests META_MODE command line comparison | | 3 | # Tests META_MODE command line comparison |
4 | # | | 4 | # |
5 | | | 5 | |
6 | .MAIN: all | | 6 | .MAIN: all |
7 | | | 7 | |
8 | .MAKE.MODE= meta verbose silent=yes curdirok=yes | | 8 | .MAKE.MODE= meta verbose silent=yes curdirok=yes nofilemon |
9 | tf:= .${.PARSEFILE:R} | | 9 | tf:= .${.PARSEFILE:R} |
10 | | | 10 | |
11 | .if ${.TARGETS:Nall} == "" | | 11 | .if ${.TARGETS:Nall} == "" |
12 | all: prep one two change1 change2 filter0 filter1 filter2 filter3 post | | 12 | all: prep one two change1 change2 filter0 filter1 filter2 filter3 post |
13 | | | 13 | |
14 | CLEANFILES= ${tf}* | | 14 | CLEANFILES= ${tf}* |
15 | | | 15 | |
16 | prep post: .PHONY | | 16 | prep post: .PHONY |
17 | @rm -f ${CLEANFILES} | | 17 | @rm -f ${CLEANFILES} |
18 | | | 18 | |
19 | .endif | | 19 | .endif |
20 | | | 20 | |
21 | FLAGS?= | | 21 | FLAGS?= |
22 | FLAGS2?= | | 22 | FLAGS2?= |
23 | | | 23 | |
24 | tests= ${tf}.cmp ${tf}.nocmp ${tf}.cmp2 | | 24 | tests= ${tf}.cmp ${tf}.nocmp ${tf}.cmp2 |
25 | filter_tests= ${tf}.filter | | 25 | filter_tests= ${tf}.filter |
26 | | | 26 | |
27 | ${tf}.cmp: | | 27 | ${tf}.cmp: |
28 | @echo FLAGS=${FLAGS:Uempty} > $@ | | 28 | @echo FLAGS=${FLAGS:Uempty} > $@ |
29 | | | 29 | |
30 | ${tf}.nocmp: .NOMETA_CMP | | 30 | ${tf}.nocmp: .NOMETA_CMP |
31 | @echo FLAGS=${FLAGS:Uempty} > $@ | | 31 | @echo FLAGS=${FLAGS:Uempty} > $@ |
32 | | | 32 | |
33 | # a line containing ${.OODATE} will not be compared | | 33 | # a line containing ${.OODATE} will not be compared |
34 | # this allows the trick below | | 34 | # this allows the trick below |
35 | ${tf}.cmp2: | | 35 | ${tf}.cmp2: |
36 | @echo FLAGS2=${FLAGS2:Uempty} > $@ | | 36 | @echo FLAGS2=${FLAGS2:Uempty} > $@ |
37 | @echo This line not compared FLAGS=${FLAGS:Uempty} ${.OODATE:MNOMETA_CMP} | | 37 | @echo This line not compared FLAGS=${FLAGS:Uempty} ${.OODATE:MNOMETA_CMP} |
38 | | | 38 | |
39 | COMPILER_WRAPPERS= ccache distcc icecc | | 39 | COMPILER_WRAPPERS= ccache distcc icecc |
40 | WRAPPER?= ccache | | 40 | WRAPPER?= ccache |
41 | .ifdef WITH_CMP_FILTER | | 41 | .ifdef WITH_CMP_FILTER |
42 | .MAKE.META.CMP_FILTER+= ${COMPILER_WRAPPERS:S,^,N,} | | 42 | .MAKE.META.CMP_FILTER+= ${COMPILER_WRAPPERS:S,^,N,} |
43 | .endif | | 43 | .endif |
44 | .ifdef WITH_LOCAL_CMP_FILTER | | 44 | .ifdef WITH_LOCAL_CMP_FILTER |
45 | # local variable | | 45 | # local variable |
46 | ${tf}.filter: .MAKE.META.CMP_FILTER= ${COMPILER_WRAPPERS:S,^,N,} | | 46 | ${tf}.filter: .MAKE.META.CMP_FILTER= ${COMPILER_WRAPPERS:S,^,N,} |
47 | .endif | | 47 | .endif |
48 | | | 48 | |
49 | ${tf}.filter: | | 49 | ${tf}.filter: |
50 | @echo ${WRAPPER} cc -c foo.c > $@ | | 50 | @echo ${WRAPPER} cc -c foo.c > $@ |
51 | | | 51 | |
52 | # these do the same | | 52 | # these do the same |
53 | one two: .PHONY | | 53 | one two: .PHONY |
54 | @echo $@: | | 54 | @echo $@: |
55 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${tests} | | 55 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${tests} |
56 | | | 56 | |
57 | change1: .PHONY | | 57 | change1: .PHONY |
58 | @echo $@: | | 58 | @echo $@: |
59 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS=changed ${tests} | | 59 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS=changed ${tests} |
60 | | | 60 | |
61 | change2: .PHONY | | 61 | change2: .PHONY |
62 | @echo $@: | | 62 | @echo $@: |
63 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS2=changed ${tests} | | 63 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS2=changed ${tests} |
64 | | | 64 | |
65 | filter0: .PHONY | | 65 | filter0: .PHONY |
66 | @echo $@: | | 66 | @echo $@: |
67 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${filter_tests} | | 67 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${filter_tests} |
68 | | | 68 | |
69 | filter1: .PHONY | | 69 | filter1: .PHONY |
70 | @echo $@: | | 70 | @echo $@: |
71 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} WRAPPER= ${filter_tests} | | 71 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} WRAPPER= ${filter_tests} |
72 | | | 72 | |
73 | filter2: .PHONY | | 73 | filter2: .PHONY |
74 | @echo $@: | | 74 | @echo $@: |
75 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_CMP_FILTER \ | | 75 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_CMP_FILTER \ |
76 | WRAPPER=distcc ${filter_tests} | | 76 | WRAPPER=distcc ${filter_tests} |
77 | | | 77 | |
78 | filter3: .PHONY | | 78 | filter3: .PHONY |
79 | @echo $@: | | 79 | @echo $@: |
80 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_LOCAL_CMP_FILTER \ | | 80 | @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_LOCAL_CMP_FILTER \ |
81 | WRAPPER=icecc ${filter_tests} | | 81 | WRAPPER=icecc ${filter_tests} |
82 | | | 82 | |
83 | # don't let gcov mess up the results | | 83 | # don't let gcov mess up the results |
84 | .MAKE.META.IGNORE_PATTERNS+= *.gcda | | 84 | .MAKE.META.IGNORE_PATTERNS+= *.gcda |