#--------------------------------------------------------------------- # Makefile for $(TTPP_HOME)/tests # # Simply write "make" to compile all .cpp files. Executables with the # extension .run are created for each of the .cpp files. Make then # checks if a .ref file is availiable for each executable file. If # the .ref file is missing make runs the corresponding program and # directs the standard output to the .ref file # # To test the programs you can write "make test". Make will then create # .tmp files and compare the .tmp files with the .ref files. If the # .tmp file differs from the .ref file the difference is written to # standard output. Not that several of these examples will produce # non empty diffs between .ref and .tmp. For examples, the number of # errors or the execution time will differ each time a certain # program is run. #--------------------------------------------------------------------- # NOTE: The flags below assume that you use the Gnu g++ compiler # and that you have compiled an optimized it++ library. You may # need to manually change some of these flags. ITPP_HOME = .. FLAGS = `./../bin/it-config --flags --debug` LIBS = `./../bin/it-config --libs --debug` CC = g++ AR = ar # Don't edit below this line #---------------------------------------------------------------------- #CPP files are tested automatically by "make test" CPP_SOURCES := $(wildcard *.cpp) #All----------------- all: $(CPP_SOURCES:.cpp=.run) $(CPP_SOURCES:.cpp=.ref) check: test test: $(CPP_SOURCES:.cpp=.tmp) #Pattern rules %.run: %.cpp -$(CC) $(FLAGS) $< -o $@ $(LIBS) %.ref: ./$(subst .ref,.run,$@) > $@ %.tmp: %.run %.ref ./$< > $@ @echo --------------------------------------------------------------------------- @echo Testing: $(word 1,$^) -diff $@ $(word 2,$^) @echo Test completed @echo --------------------------------------------------------------------------- @echo # Build archives $(TARGET): $(SOURCES:.cpp=.o) $(AR) cr $(TARGET) $? clean: -rm *.run *.tmp