Home | History | Annotate | Line # | Download | only in unit-tests
meta-cmd-cmp.mk revision 1.4
      1  1.4  sjg # $NetBSD: meta-cmd-cmp.mk,v 1.4 2022/01/27 06:02:59 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.4  sjg all: prep one two change1 change2 filter0 filter1 filter2 filter3 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.4  sjg COMPILER_WRAPPERS+= ccache distcc icecc
     40  1.4  sjg WRAPPER?= ccache
     41  1.3  sjg .ifdef WITH_CMP_FILTER
     42  1.4  sjg .MAKE.META.CMP_FILTER+= ${COMPILER_WRAPPERS:S,^,N,}
     43  1.4  sjg .endif
     44  1.4  sjg .ifdef WITH_LOCAL_CMP_FILTER
     45  1.4  sjg # local variable
     46  1.4  sjg ${tf}.filter: .MAKE.META.CMP_FILTER= ${COMPILER_WRAPPERS:S,^,N,}
     47  1.3  sjg .endif
     48  1.3  sjg 
     49  1.3  sjg ${tf}.filter:
     50  1.4  sjg 	@echo ${WRAPPER} cc -c foo.c > $@
     51  1.3  sjg 
     52  1.1  sjg # these do the same 
     53  1.1  sjg one two: .PHONY
     54  1.1  sjg 	@echo $@:
     55  1.1  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${tests}
     56  1.1  sjg 
     57  1.1  sjg change1: .PHONY
     58  1.1  sjg 	@echo $@:
     59  1.1  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS=changed ${tests}
     60  1.1  sjg 
     61  1.1  sjg change2: .PHONY
     62  1.1  sjg 	@echo $@:
     63  1.1  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} FLAGS2=changed ${tests}
     64  1.2  sjg 
     65  1.3  sjg filter0: .PHONY
     66  1.3  sjg 	@echo $@:
     67  1.3  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} ${filter_tests}
     68  1.3  sjg 
     69  1.3  sjg filter1: .PHONY
     70  1.3  sjg 	@echo $@:
     71  1.4  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} WRAPPER= ${filter_tests}
     72  1.3  sjg 
     73  1.3  sjg filter2: .PHONY
     74  1.3  sjg 	@echo $@:
     75  1.3  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_CMP_FILTER \
     76  1.4  sjg 		WRAPPER=distcc ${filter_tests}
     77  1.4  sjg 
     78  1.4  sjg filter3: .PHONY
     79  1.4  sjg 	@echo $@:
     80  1.4  sjg 	@${.MAKE} -dM -r -C ${.CURDIR} -f ${MAKEFILE} -DWITH_LOCAL_CMP_FILTER \
     81  1.4  sjg 		WRAPPER=icecc ${filter_tests}
     82  1.3  sjg 
     83  1.2  sjg # don't let gcov mess up the results
     84  1.2  sjg .MAKE.META.IGNORE_PATTERNS+= *.gcda
     85