Home | History | Annotate | Line # | Download | only in unit-tests
      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