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