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