CFA ?= ../driver/cfa-cpp CFAOPT ?= -a OUTPUT ?= Output EXPECT ?= Expect OUTPUTDIR ?= ${OUTPUT}${CFAOPT} EXPECTDIR ?= ${EXPECT}${CFAOPT} EXAMPLES = ${wildcard *.c} OUTPUTS = ${addprefix ${OUTPUTDIR}/,${EXAMPLES:.c=.txt}} #.SILENT : all : +for opt in -a -e -f -r -s -v ; do \ make test CFAOPT=$${opt} ; \ done ; \ rm -f core test : ${OUTPUTS} ${OUTPUTDIR}/report ${OUTPUTDIR}/%.txt : %.c ${CFA} Makefile -${CFA} -n ${CFAOPT} $< > $@ 2>&1 ${OUTPUTDIR}/report : ${OUTPUTS} ${EXPECTDIR} rm -f $@ echo "===== regression test using cfa-cpp flag ${CFAOPT} =====" @for i in ${OUTPUTS} ; do \ echo "---"`basename $$i`"---" | tee -a $@; \ diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \ done ${OUTPUTS} : | ${OUTPUTDIR} # order only prerequisite ${OUTPUTDIR} : mkdir -p $@ # remove the expected results directories to generate new ones from the current output ${EXPECTDIR} : | ${OUTPUTS} # new Expected results ? cp -pr ${OUTPUTDIR} $@ clean : rm -rf ${OUTPUT}-* core