festival/config/test_make_rules

114 lines
4.6 KiB
Makefile

########################################################-*-mode:Makefile-*-
## ##
## Centre for Speech Technology Research ##
## University of Edinburgh, UK ##
## Copyright (c) 1996,1997 ##
## All Rights Reserved. ##
## ##
## Permission is hereby granted, free of charge, to use and distribute ##
## this software and its documentation without restriction, including ##
## without limitation the rights to use, copy, modify, merge, publish, ##
## distribute, sublicense, and/or sell copies of this work, and to ##
## permit persons to whom this work is furnished to do so, subject to ##
## the following conditions: ##
## 1. The code must retain the above copyright notice, this list of ##
## conditions and the following disclaimer. ##
## 2. Any modifications must be clearly marked as such. ##
## 3. Original authors' names are not deleted. ##
## 4. The authors' names are not used to endorse or promote products ##
## derived from this software without specific prior written ##
## permission. ##
## ##
## THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK ##
## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
## SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE ##
## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
## THIS SOFTWARE. ##
## ##
###########################################################################
# Makefile rules for testing things #
###########################################################################
TEST_PROGRAMS = $(TEST_MODULES:%=%_example) $(TEST_MODULES:%=%_regression)
#TSRCS = $(TEST_PROGRAMS:%=%.C)
#SRCS = $(TSRCS)
#OBJS = $(SRCS:%.C=%.o)
include $(TOP)/config/common_make_rules
test_scripts: $(TEST_SCRIPTS:%=%_script_test)
test_modules: $(TEST_MODULES:%=%_module_build_and_test)
$(TEST_MODULES:%=%_module_build_and_test) : %_module_build_and_test : %_module_rebuild %_module_test
$(TEST_MODULES:%=%_module_rebuild) : %_module_rebuild :
@echo 'build $* (module)'
@/bin/rm -f $(OBJS)
@if $(MAKE) --no-print-directory OPTIMISE=$(TEST_OPTIMISE) WARN=1 $*_example $*_regression ;\
then \
: ;\
else \
echo $* example status: FAILED ; exit 1 ;\
fi
$(TEST_MODULES:%=%_module_test) : %_module_test : correct/%_example.out correct/%_regression.out
@echo 'test $* (module)'
@if ./$*_example $($(*:=_example_args)) > $*_example.out ;\
then \
echo $*_example completed ;\
if [ ! -f $*_example.out ] || diff $*_example.out correct/$*_example.out ;\
then \
echo $* example status: CORRECT ;\
else \
echo $* example status: INCORRECT ;\
fi ;\
else \
echo $* example status: FAILED ;\
fi
@if ./$*_regression $($(*:=_regression_args)) > $*_regression.out ;\
then \
echo $*_regression completed ;\
if [ ! -f $*_regression.out ] || diff $*_regression.out correct/$*_regression.out ;\
then \
echo $* regression status: CORRECT ;\
else \
echo $* regression status: INCORRECT ;\
fi ;\
else \
echo $* regression status: FAILED ;\
fi
@echo
@echo
$(TEST_SCRIPTS:%=%_script_test) : %_script_test : %.sh correct/%_script.out
@echo 'test $* (script)'
@OUTPUT='$*_script.out' ;\
TOP='$(TOP)' ;\
export TOP OUTPUT ;\
if /bin/sh $*.sh $($(*:=_script_args)) ;\
then \
echo $* script completed ;\
if [ ! -f $*_script.out ] || diff $*_script.out correct/$*_script.out ;\
then \
echo $* script status: CORRECT ;\
else \
echo $* script status: INCORRECT ;\
fi ;\
else \
echo $* script status: FAILED ;\
fi
@echo
@echo
$(SRCS:%.C=%.o) : %.o : %.C
% : %.o
$(CXX) $(CXXFLAGS) $(TEMPLATES) -o $@ $@.o $(ESTLIB) $($(@:=_LIBS)) $(LIBS)