1 1.2 sjg # $NetBSD: meta-cmd-cmp.mk,v 1.2 2020/12/05 22:51:34 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.1 sjg all: prep one two change1 change2 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.1 sjg 26 1.1 sjg ${tf}.cmp: 27 1.1 sjg @echo FLAGS=${FLAGS:Uempty} > $@ 28 1.1 sjg 29 1.1 sjg ${tf}.nocmp: .NOMETA_CMP 30 1.1 sjg @echo FLAGS=${FLAGS:Uempty} > $@ 31 1.1 sjg 32 1.1 sjg # a line containing ${.OODATE} will not be compared 33 1.1 sjg # this allows the trick below 34 1.1 sjg ${tf}.cmp2: 35 1.1 sjg @echo FLAGS2=${FLAGS2:Uempty} > $@ 36 1.1 sjg @echo This line not compared FLAGS=${FLAGS:Uempty} ${.OODATE:MNOMETA_CMP} 37 1.1 sjg 38 1.1 sjg # these do the same 39 1.1 sjg one two: .PHONY 40 1.1 sjg @echo $@: 41 1.1 sjg @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${tests} 42 1.1 sjg 43 1.1 sjg change1: .PHONY 44 1.1 sjg @echo $@: 45 1.1 sjg @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS=changed ${tests} 46 1.1 sjg 47 1.1 sjg change2: .PHONY 48 1.1 sjg @echo $@: 49 1.1 sjg @${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS2=changed ${tests} 50 1.2 sjg 51 1.2 sjg # don't let gcov mess up the results 52 1.2 sjg .MAKE.META.IGNORE_PATTERNS+= *.gcda 53