%/obj.g.$(OBJEXT) : %.cc
@echo =====debug========= $<
+ @echo Compiling > $*/status
@$(CXX) $(flags) -c $< -o $@
%/obj.$(OBJEXT) : %.cc
@echo =====optimized===== $<
+ @echo Compiling > $*/status
@$(CXX) $(CXXFLAGS.o) -c $< -o $@
######################################################################
######################################################################
%/exe : %/obj.g.$(OBJEXT)
@echo =====linking======= $@
+ @echo Linking > $*/status
@$(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
%/output : %/exe
@echo =====Running======= $<
+ @echo Running > $*/status
@ulimit -t 2400 ; ./$< ; \
if test ! $$? = 0 ; then rm $@ ; false ; fi
@perl -pi $(normalize) $@
%/OK : %/output
@echo '=====Checking======' $<
+ @echo Checking > $*/status
@$(PERL) -pi $(normalize) $<
@for i in $(PLATFORM-HIERARCHY) ; do \
testname=$(<:%/output=%) ; \
fi ; \
if eval $$cmd ; then \
echo '=====OK============' $@ ; \
- touch $@ ; \
+ echo 'diff ok' > $*/status ; \
+ echo $$i > $@ ; \
else \
if test "x$(verbose)" = "xon" ; then \
echo '+++++Error+++++++++' $@ " ($$testname/cmp/$$i)" ; \
report:
@-$(MAKE) -k run-tests
@for test in $(sort $(tests)) ; do \
- if $(MAKE) -q $$test/OK ; then \
- echo `date -u +"%Y-%m-%d %H:%M"` " + $(WORKDIR)/$$test" ; \
- else \
- echo `date -u +"%Y-%m-%d %H:%M"` " 0 $(WORKDIR)/$$test" ; \
- fi ; \
+ echo `date -u +"%Y-%m-%d %H:%M"` "`perl $D/common/scripts/status_to_report.pl $$test/status`" "$(WORKDIR)/$$test" ; \
done
phony.h:
touch phony.h
-### Make sure even numbers are are always recompiled
+############################################################
+# Make sure even numbers are are always recompiled
+############################################################
no_*_?[02468]/obj.g.o: phony.h
+############################################################
+# Another odd target that sets al OK files to the OK status
+# Try 'make report' after doing this
+############################################################
+
+all-ok:
+ @for test in $(tests); do echo 'diff ok' > $$test/OK ; done
+
include ../Makefile.rules
include Makefile.depend
-This directory tests the testsuite, not the deal.II library!
+This directory tests the testsuite, not the deal.II library! It should
+not be included in the regular regression test runs!
Things that should be checked for when changing the implementation of
the test suite:
The file phony.h is used to make sure compilation is started in EVERY
run of make for targets with even numbers.
+
+The current use of phony.h makes 'make report' report a wrong result
+for ok_02. While this is not a problem as long as we know it, we must
+be aware of it when changing the implementation.
+