[svn-r11095] Purpose:

Configuration feature

Description:
Serial test output is now stored in log files and printed when all tests
in a directory complete, or when a test fails.  This should make test output
more readable and useful.
Also made changes to clean up ii_files directories that are created by some
C++ compilers/linkers.
Also fixed a few minor Makefile bugs.

Solution:
When serial tests run, their output is saved in *.log or *.logsh.  While
running, tests only print when they begin and when they complete; their
more specific output (from the log file) is printed if the test fails or
when all tests have completed.
Comments welcome.

Platforms tested:
mir, modi4 (parallel and serial), copper, shanti
This commit is contained in:
James Laird 2005-07-21 14:28:11 -05:00
parent bb31e94a92
commit 7236935a9d
42 changed files with 1936 additions and 571 deletions

View File

@ -113,12 +113,17 @@ clean-local:
fi; \
done
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
mostlyclean-local:
@@SETX@; for d in examples perform; do \
if test -f $$d/Makefile; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) mostlyclean) || exit 1; \
fi; \
done
done; \
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
# 'make install-all' also installs examples
install-all:
@ -143,9 +148,6 @@ uninstall-doc:
# `make check-install' or `make installcheck' checks that examples can
# be successfully built
check-install:
$(MAKE) $(AM_MAKEFLAGS) installcheck
installcheck-local:
(cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;

View File

@ -311,7 +311,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
@BUILD_PARALLEL_CONDITIONAL_FALSE@TESTPARALLEL_DIR =
# Define subdirectories to build.
@ -758,6 +767,12 @@ uninstall-info: uninstall-info-recursive
uninstall-info-am uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Define rules for lib, progs, check, and tests.
# These simply involve recursing into subdirectories.
test _test: check
@ -793,12 +808,17 @@ clean-local:
fi; \
done
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
mostlyclean-local:
@@SETX@; for d in examples perform; do \
if test -f $$d/Makefile; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) mostlyclean) || exit 1; \
fi; \
done
done; \
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
# 'make install-all' also installs examples
install-all:
@ -823,9 +843,6 @@ uninstall-doc:
# `make check-install' or `make installcheck' checks that examples can
# be successfully built
check-install:
$(MAKE) $(AM_MAKEFLAGS) installcheck
installcheck-local:
(cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;

View File

@ -281,7 +281,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
@BUILD_CXX_CONDITIONAL_TRUE@SUBDIRS = src test
DIST_SUBDIRS = src test examples
@ -615,6 +624,12 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Clean and mostlyclean need to recurse into examples directory
clean-local:
if test -f examples/Makefile; then \
@ -638,14 +653,16 @@ installcheck-local:
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -657,6 +674,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -685,8 +704,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -694,26 +720,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -721,21 +753,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -273,11 +273,19 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# These are the files that 'make clean' (and derivatives) will remove from this
# directory. Since automake doesn't know about the examples, we need to
# tell it to clean the example programs, too.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 $(EXTRA_PROG:=.o)
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 $(EXTRA_PROG:=.o)
# Use h5c++ to build examples, instead of reguar C++ compiler
H5CPP = $(bindir)/h5c++
@ -484,6 +492,12 @@ uninstall-am: uninstall-info-am uninstall-local
uninstall uninstall-am uninstall-info-am uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Some of the examples depend on files created by running other examples
readdata.chkexe_: create.chkexe_
chunks.chkexe_: extend_ds.chkexe_
@ -533,14 +547,16 @@ h5group: $(srcdir)/h5group.cpp
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -552,6 +568,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -580,8 +598,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -589,26 +614,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -616,21 +647,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -53,6 +53,14 @@ include_HEADERS=H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h
# distclean.
DISTCLEANFILES=h5c++ libhdf5.settings
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.
# This entire directory should be cleaned.
mostlyclean-local:
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
# Mark this directory as part of the C++ API
HDF_CXX=yes

View File

@ -315,7 +315,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src directory
INCLUDES = -I$(top_srcdir)/src
@ -685,7 +694,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
mostlyclean-libtool mostlyclean-local
pdf: pdf-am
@ -708,22 +717,38 @@ uninstall-am: uninstall-binSCRIPTS uninstall-includeHEADERS \
install-libLTLIBRARIES install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-binSCRIPTS \
uninstall-includeHEADERS uninstall-info-am \
uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-binSCRIPTS uninstall-includeHEADERS \
uninstall-info-am uninstall-libLTLIBRARIES
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.
# This entire directory should be cleaned.
mostlyclean-local:
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -735,6 +760,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -763,8 +790,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -772,26 +806,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -799,21 +839,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -39,4 +39,12 @@ testhdf5_SOURCES=testhdf5.cpp tattr.cpp tfile.cpp th5s.cpp h5cpputil.cpp
# Tell conclude.am that these are C++ tests.
HDF_CXX=yes
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.
# This entire directory should be cleaned.
mostlyclean-local:
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
include $(top_srcdir)/config/conclude.am

View File

@ -304,7 +304,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src, test, and c++/src directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src
@ -577,7 +586,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
mostlyclean-libtool mostlyclean-local
pdf: pdf-am
@ -598,20 +607,36 @@ uninstall-am: uninstall-info-am
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am
mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.
# This entire directory should be cleaned.
mostlyclean-local:
if test -d ii_files; then \
$(RM) -rf ii_files; \
fi
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -623,6 +648,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -651,8 +678,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -660,26 +694,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -687,21 +727,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -54,4 +54,18 @@ AUTOMAKE=/afs/ncsa/projects/hdf/packages/automake_1.9.5/Linux_2.4/bin/automake
AUTOCONF=/afs/ncsa/projects/hdf/packages/autoconf_2.59/Linux_2.4/bin/autoconf
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES=*.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES=$(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck

View File

@ -16,14 +16,16 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -35,6 +37,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -68,8 +72,16 @@ TEST_SCRIPT_CHKSH=$(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH=$(TEST_SCRIPT_PARA:=.chksh_)
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -77,26 +89,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -104,21 +122,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -273,9 +273,18 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# We need to tell automake what to clean
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 *.raw *.meta *.clog *.o
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 *.raw *.meta *.clog \
*.o
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = ph5example
# Example programs.
@ -489,6 +498,12 @@ uninstall-am: uninstall-info-am uninstall-local
uninstall uninstall-am uninstall-info-am uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Additional dependencies for each program are listed below.
$(EXTRA_PROG): $(LIBHDF5)
@BUILD_PARALLEL_CONDITIONAL_TRUE@ $(H5CC_PP) $(CFLAGS) -o $@ $(srcdir)/$@.c;
@ -547,14 +562,16 @@ h5_dtransform: $(srcdir)/h5_dtransform.c
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -566,6 +583,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -594,8 +613,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -603,26 +629,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -630,21 +662,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -285,7 +285,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
@BUILD_PARALLEL_CONDITIONAL_TRUE@TESTPARALLEL_DIR = testpar
# Subdirectories in build order, not including examples directory
@ -624,6 +633,12 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Clean and mostlyclean need to recurse into examples directory
clean-local:
if test -f examples/Makefile; then \
@ -647,14 +662,16 @@ installcheck-local:
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -666,6 +683,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -694,8 +713,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -703,26 +729,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -730,21 +762,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -273,9 +273,17 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Tell automake which files to clean
MOSTLYCLEANFILES = *.chkexe *.chksh $(EXTRA_PROG:=.o)
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) $(EXTRA_PROG:=.o)
# Compile parallel fortran examples only if parallel is enabled
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = ph5example
@ -490,6 +498,12 @@ uninstall-am: uninstall-info-am uninstall-local
uninstall uninstall-am uninstall-info-am uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Some examples depend on files created by other examples.
grpdsetexample.chkexe_: grpsexample.chkexe_
refregexample.chkexe_: refobjexample.chkexe_
@ -555,14 +569,16 @@ ph5example: ph5example.f90
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -574,6 +590,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -602,8 +620,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -611,26 +636,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -638,21 +669,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -20,9 +20,9 @@
include $(top_srcdir)/config/commence.am
# Include src directory in both Fortran and C flags (C compiler is used
# for linking)
# for linking).
INCLUDES = -I$(top_srcdir)/src
AM_FCFLAGS=-I$(top_srcdir)/src
AM_FCFLAGS=-I$(top_srcdir)/src -I$(top_srcdir)/src/fortran
AM_FCLIBS=$(LIBHDF5)
@ -124,11 +124,6 @@ H5fortran_types.f90 H5f90i_gen.h: H5match_types.c H5fort_type_defines.h
$(MAKE) $(AM_MAKEFLAGS) H5match_types$(EXEEXT)
$(RUNSERIAL) ./H5match_types$(EXEEXT)
# JAMES: does it need to work like this? $(MAKE) $(AM_MAKEFLAGS) H5fort_type_defines.h
# JAMES $(MAKE) $(AM_MAKEFLAGS) H5match_types$(EXEEXT)
# JAMES $(RUNSERIAL) ./H5match_types$(EXEEXT)
# H5fort_type_defines.h is created by running H5fortran_detect.
# Obviously, H5fortran_detect needs to be built first.
H5fort_type_defines.h: H5fortran_detect$(EXEEXT)

View File

@ -340,17 +340,25 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# H5fortran_types.f90 and H5f90i.h are automatically generaed by
# H5match_types, and must be cleaned explicitly. H5fort_type_defines.h
# is generated by H5fortran_detect
MOSTLYCLEANFILES = *.chkexe *.chksh H5fortran_types.f90 H5f90i_gen.h \
H5fort_type_defines.h H5fortran_detect.f90
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) H5fortran_types.f90 \
H5f90i_gen.h H5fort_type_defines.h H5fortran_detect.f90
# Include src directory in both Fortran and C flags (C compiler is used
# for linking)
# for linking).
INCLUDES = -I$(top_srcdir)/src
AM_FCFLAGS = -I$(top_srcdir)/src
AM_FCFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/fortran
AM_FCLIBS = $(LIBHDF5)
# Fortran libraries are linked statically to solve a build problem.
@ -765,6 +773,12 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
uninstall-settingsDATA
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Fortran module files can have different extensions and different names
# (e.g., different capitalizations) on different platforms. Write rules
# for them explicitly rather than trying to teach automake about them.
@ -800,10 +814,6 @@ H5fortran_types.f90 H5f90i_gen.h: H5match_types.c H5fort_type_defines.h
$(MAKE) $(AM_MAKEFLAGS) H5match_types$(EXEEXT)
$(RUNSERIAL) ./H5match_types$(EXEEXT)
# JAMES: does it need to work like this? $(MAKE) $(AM_MAKEFLAGS) H5fort_type_defines.h
# JAMES $(MAKE) $(AM_MAKEFLAGS) H5match_types$(EXEEXT)
# JAMES $(RUNSERIAL) ./H5match_types$(EXEEXT)
# H5fort_type_defines.h is created by running H5fortran_detect.
# Obviously, H5fortran_detect needs to be built first.
H5fort_type_defines.h: H5fortran_detect$(EXEEXT)
@ -844,14 +854,16 @@ HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5Aff.lo \
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -863,6 +875,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -891,8 +905,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -900,26 +921,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -927,21 +954,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -342,9 +342,17 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 *.tmp
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 *.tmp
# Include files
AM_FCFLAGS = -I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/src
@ -807,16 +815,24 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES
uninstall-am uninstall-info-am uninstall-libLTLIBRARIES
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -828,6 +844,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -856,8 +874,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -865,26 +890,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -892,21 +923,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -297,7 +297,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include files
AM_FCFLAGS = -I$(top_srcdir)/fortran/src -I$(top_srcdir)/fortran/test $(F9XMODFLAG)$(top_builddir)/fortran/src
@ -575,16 +584,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -596,6 +613,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -624,8 +643,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -633,26 +659,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -660,21 +692,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -277,7 +277,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
@BUILD_FORTRAN_CONDITIONAL_TRUE@FORTRAN_DIR = fortran
@BUILD_CXX_CONDITIONAL_TRUE@CXX_DIR = c++
@BUILD_HDF5_HL_CONDITIONAL_TRUE@SUBDIRS = src test $(CXX_DIR) $(FORTRAN_DIR)
@ -610,16 +619,24 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -631,6 +648,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -659,8 +678,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -668,26 +694,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -695,21 +727,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -282,7 +282,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
SUBDIRS = src test
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -613,16 +622,24 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -634,6 +651,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -662,8 +681,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -671,26 +697,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -698,21 +730,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -304,7 +304,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src directory
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src
@ -635,16 +644,24 @@ uninstall-am: uninstall-includeHEADERS uninstall-info-am \
uninstall-info-am uninstall-libLTLIBRARIES
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -656,6 +673,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -684,8 +703,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -693,26 +719,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -720,21 +752,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -298,7 +298,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_srcdir)/hl/c++/src -I$(top_srcdir)/test
@ -584,16 +593,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -605,6 +622,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -633,8 +652,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -642,26 +668,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -669,21 +701,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -277,7 +277,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
SUBDIRS = src test
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -608,16 +617,24 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -629,6 +646,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -657,8 +676,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -666,26 +692,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -693,21 +725,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -298,7 +298,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \
-I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src
@ -626,6 +635,12 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
uninstall-libLTLIBRARIES uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
#libhdf5hl_fortran_la_LIBADD=$(LIBH5_HL)
# Fortran module files can have different extensions and different names
@ -661,14 +676,16 @@ H5TBff.lo: $(srcdir)/H5TBff.f90
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -680,6 +697,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -708,8 +727,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -717,26 +743,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -744,21 +776,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -297,9 +297,18 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files.
MOSTLYCLEANFILES = *.chkexe *.chksh dsetf[1-4].h5 f1img.h5 f1tab.h5
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) dsetf[1-4].h5 f1img.h5 \
f1tab.h5
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src -I$(top_srcdir)/hl/src
AM_FCFLAGS = -I$(top_builddir)/fortran/src -I$(top_builddir)/hl/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/hl/fortran/src
@ -575,16 +584,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -596,6 +613,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -624,8 +643,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -633,26 +659,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -660,21 +692,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -295,7 +295,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Add include directories to the C preprocessor flags
AM_CPPFLAGS = -I$(top_srcdir)/src
@ -623,16 +632,24 @@ uninstall-am: uninstall-includeHEADERS uninstall-info-am \
uninstall-info-am uninstall-libLTLIBRARIES
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -644,6 +661,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -672,8 +691,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -681,26 +707,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -708,21 +740,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -307,9 +307,17 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. These files are the ones created by running `make test'.
MOSTLYCLEANFILES = *.chkexe *.chksh combine_tables[1-2].h5 \
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) combine_tables[1-2].h5 \
test_ds[1-6].h5 test_image[1-3].h5 test_lite[1-2].h5 \
test_table.h5 test_packet_table.h5
@ -609,16 +617,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -630,6 +646,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -658,8 +676,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -667,26 +692,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -694,21 +725,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -305,7 +305,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -618,16 +627,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -639,6 +656,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -667,8 +686,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -676,26 +702,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -703,21 +735,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -326,7 +326,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf
@ -677,16 +686,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-binPROGRAMS uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -698,6 +715,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -726,8 +745,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -735,26 +761,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -762,21 +794,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -340,10 +340,18 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files
MOSTLYCLEANFILES = *.chkexe *.chksh H5detect.o H5detect.lo H5detect \
H5Tinit.o H5Tinit.lo H5Tinit.c
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) H5detect.o H5detect.lo \
H5detect H5Tinit.o H5Tinit.lo H5Tinit.c
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
@ -915,6 +923,12 @@ uninstall-am: uninstall-includeHEADERS uninstall-info-am \
uninstall-settingsDATA
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Error header generation
#
# Actually, H5Einit.h, H5Eterm.h, H5Edefin.h and H5Epubgen.h all
@ -937,14 +951,16 @@ H5Tinit.c: H5detect
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -956,6 +972,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -984,8 +1002,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -993,26 +1018,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -1020,21 +1051,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -29,7 +29,9 @@ check_SCRIPTS = $(TEST_SCRIPT)
# These are our main targets. They should be listed in the order to be
# executed, generally most specific tests to least specific tests.
TEST_PROG=testhdf5 lheap ohdr stab gheap cache b+tree btree2 blocktrack sheap \
# As an exception, long-running tests should occur earlier in the list.
# This gives them more time to run when tests are executing in parallel.
TEST_PROG=testhdf5 lheap ohdr stab gheap btree2 cache b+tree blocktrack sheap \
pool hyperslab istore bittests dt_arith \
dtypes dsets cmpd_dset extend external links unlink big mtime \
fillval mount flush1 flush2 enum \

View File

@ -71,8 +71,8 @@ libh5test_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libh5test_la_OBJECTS = h5test.lo testframe.lo
libh5test_la_OBJECTS = $(am_libh5test_la_OBJECTS)
am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \
stab$(EXEEXT) gheap$(EXEEXT) cache$(EXEEXT) b+tree$(EXEEXT) \
btree2$(EXEEXT) blocktrack$(EXEEXT) sheap$(EXEEXT) \
stab$(EXEEXT) gheap$(EXEEXT) btree2$(EXEEXT) cache$(EXEEXT) \
b+tree$(EXEEXT) blocktrack$(EXEEXT) sheap$(EXEEXT) \
pool$(EXEEXT) hyperslab$(EXEEXT) istore$(EXEEXT) \
bittests$(EXEEXT) dt_arith$(EXEEXT) dtypes$(EXEEXT) \
dsets$(EXEEXT) cmpd_dset$(EXEEXT) extend$(EXEEXT) \
@ -493,22 +493,31 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. These files are the ones created by setting the
# HDF5_NOCLEANUP environment variable and running `make test' without
# specifying a file prefix or low-level driver. Changing the file
# prefix or low-level driver with environment variables will influence
# the temporary file name in ways that the makefile is not aware of.
MOSTLYCLEANFILES = *.chkexe *.chksh cmpd_dset.h5 compact_dataset.h5 \
dataset.h5 extend.h5 istore.h5 tfile[1-4].h5 th5s[1-3].h5 \
lheap.h5 ohdr.h5 stab[1-2].h5 extern_[1-3].h5 \
extern_[1-4][ab].raw gheap[0-4].h5 dt_arith[1-2] links.h5 \
links[1-3].h5 big.data big[0-9][0-9][0-9][0-9][0-9].h5 \
dtypes[1-8].h5 dt_arith[1-2].h5 tattr.h5 tselect.h5 mtime.h5 \
unlink.h5 unicode.h5 fillval_[0-9].h5 fillval.raw \
mount_[0-9].h5 testmeta.h5 ttime.h5 trefer[1-3].h5 tvltypes.h5 \
tvlstr.h5 tvlstr2.h5 flush.h5 enum1.h5 titerate.h5 ttsafe.h5 \
tarray1.h5 tgenprop.h5 tmisc[0-9]*.h5 set_extent_read.h5 \
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) cmpd_dset.h5 \
compact_dataset.h5 dataset.h5 extend.h5 istore.h5 \
tfile[1-4].h5 th5s[1-3].h5 lheap.h5 ohdr.h5 stab[1-2].h5 \
extern_[1-3].h5 extern_[1-4][ab].raw gheap[0-4].h5 \
dt_arith[1-2] links.h5 links[1-3].h5 big.data \
big[0-9][0-9][0-9][0-9][0-9].h5 dtypes[1-8].h5 \
dt_arith[1-2].h5 tattr.h5 tselect.h5 mtime.h5 unlink.h5 \
unicode.h5 fillval_[0-9].h5 fillval.raw mount_[0-9].h5 \
testmeta.h5 ttime.h5 trefer[1-3].h5 tvltypes.h5 tvlstr.h5 \
tvlstr2.h5 flush.h5 enum1.h5 titerate.h5 ttsafe.h5 tarray1.h5 \
tgenprop.h5 tmisc[0-9]*.h5 set_extent_read.h5 \
set_extent_create.h5 getname.h5 getname[1-3].h5 sec2_file.h5 \
family_file000[0-3][0-9].h5 multi_file-[rs].h5 core_file \
new_move_[ab].h5 ntypes.h5 dangle.h5 error_test.h5 \
@ -523,7 +532,9 @@ check_SCRIPTS = $(TEST_SCRIPT)
# These are our main targets. They should be listed in the order to be
# executed, generally most specific tests to least specific tests.
TEST_PROG = testhdf5 lheap ohdr stab gheap cache b+tree btree2 blocktrack sheap \
# As an exception, long-running tests should occur earlier in the list.
# This gives them more time to run when tests are executing in parallel.
TEST_PROG = testhdf5 lheap ohdr stab gheap btree2 cache b+tree blocktrack sheap \
pool hyperslab istore bittests dt_arith \
dtypes dsets cmpd_dset extend external links unlink big mtime \
fillval mount flush1 flush2 enum \
@ -1023,6 +1034,12 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# Additional target for running timing test
timings _timings: testmeta
@for timing in $(TIMINGS) dummy; do \
@ -1037,14 +1054,16 @@ flush2.chkexe_: flush1.chkexe_
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -1056,6 +1075,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -1084,8 +1105,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -1093,26 +1121,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -1120,21 +1154,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -306,12 +306,20 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files
# MPItest.h5 is from t_mpi
# Para*.h5 are from testphdf
# *.clog are from MPE option
MOSTLYCLEANFILES = *.chkexe *.chksh MPItest.h5 Para*.h5 *.clog
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) MPItest.h5 Para*.h5 *.clog
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test
# Test programs and scripts. These are our main targets.
@ -614,16 +622,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -635,6 +651,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -663,8 +681,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -672,26 +697,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -699,21 +730,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -282,7 +282,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# All subdirectories
SUBDIRS = lib h5dump h5diff h5ls misc gifconv h5import h5repack h5jam
@ -615,16 +624,24 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -636,6 +653,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -664,8 +683,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -673,26 +699,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -700,21 +732,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -305,7 +305,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -618,16 +627,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -639,6 +656,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -667,8 +686,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -676,26 +702,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -703,21 +735,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -313,10 +313,19 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. *.h5 are generated by h5diff. They should
# be copied to the testfiles/ directory if update is required
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 expect_sorted actual_sorted
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 expect_sorted \
actual_sorted
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -656,16 +665,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-binPROGRAMS uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -677,6 +694,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -705,8 +724,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -714,26 +740,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -741,21 +773,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -306,10 +306,18 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. *.h5 are generated by h5dumpgentest. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5
# Include files in /src directory and /tools/lib directory
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -632,16 +640,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-binPROGRAMS uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -653,6 +669,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -681,8 +699,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -690,26 +715,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -717,21 +748,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -306,7 +306,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -625,16 +634,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-binPROGRAMS uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -646,6 +663,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -674,8 +693,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -683,26 +709,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -710,21 +742,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -301,7 +301,15 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 *.txt
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 *.txt
#
# Copyright by the Board of Trustees of the University of Illinois.
@ -649,16 +657,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-binPROGRAMS uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -670,6 +686,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -698,8 +716,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -707,26 +732,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -734,21 +765,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -299,7 +299,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -605,16 +614,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -626,6 +643,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -654,8 +673,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -663,26 +689,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -690,21 +722,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -321,10 +321,18 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. *.h5 are generated by h5repack. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5
# Include src, test, and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
@ -682,16 +690,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am
uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -703,6 +719,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -731,8 +749,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -740,26 +765,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -767,21 +798,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -303,7 +303,16 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh)
# Include files in /src directory
INCLUDES = -I$(top_srcdir)/src
@ -622,16 +631,24 @@ uninstall-am: uninstall-info-am
tags uninstall uninstall-am uninstall-info-am
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -643,6 +660,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -671,8 +690,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -680,26 +706,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -707,21 +739,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \

View File

@ -326,12 +326,20 @@ H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Serial tests create .log and .logsh files. It's important only to clean log
# files generated by HDF5's tests, because the .log suffix is used for
# other files (e.g., config.log)!
# Temporary files. *.h5 are generated by h5repart_gentest. They should
# copied to the testfiles/ directory if update is required. fst_family*.h5
# and scd_family*.h5 were created by setting the HDF5_NOCLEANUP variable.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 ../testfiles/fst_family*.h5 \
../testfiles/scd_family*.h5
MOSTLYCLEANFILES = $(TEST_PROG_CHKEXE:.chkexe_=.chkexe) \
$(TEST_PROG_PARA_CHKEXE:.chkexe_=.chkexe) \
$(TEST_SCRIPT_CHKSH:.chksh_=.chksh) \
$(TEST_SCRIPT_PARA_CHKSH:.chksh_=.chksh) \
$(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh) *.h5 \
../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
# Include src directory
INCLUDES = -I$(top_srcdir)/src
@ -706,6 +714,12 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-local
# check-install is a synonym for installcheck.
# Add this build rule here (rather than in conclude.am, where build rules
# normally go) because it should be included in the top-level Makefile.am
# as well.
check-install: installcheck
install-exec-local:
$(INSTALL) h5cc $(bindir)/$(H5CC_NAME)
uninstall-local:
@ -717,14 +731,16 @@ h5redeploy: h5redeploy.in
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
# BUILT_SOURCES contain targets that need to be built before anything else
# in the directory (e.g., Fortran type detection)
build-lib: $(BUILT_SOURCES) $(LIB)
build-progs: $(BUILT_SOURCES) $(LIB) $(PROGS)
build-tests: $(BUILT_SOURCES) $(LIB) $(PROGS) $(TESTS)
lib progs tests check-s check-p ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1;
@for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
if test $$d != X && test $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@ -736,6 +752,8 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
# is depreciated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@ -764,8 +782,15 @@ build-check-s: $(LIB) $(PROGS) $(TESTS)
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
@for d in dummy $(TEST_PROG_CHKEXE:.chkexe_=.log) \
$(TEST_SCRIPT_CHKSH:.chksh_=.logsh); do \
if test $$d != dummy && test $$d != .log && \
test $$d != .logsh; then \
cat `basename $$d`; \
fi; \
done
# The .chkexe_ here is the "dummy" that prevents the target from being
# The dummy.chkexe here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
@if test "X$@" != "X.chkexe_" && test "X$@" != "Xdummy.chkexe_"; then \
@ -773,26 +798,32 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
if $(top_srcdir)/bin/newer $(@:.chkexe_=.chkexe) $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
echo "============================" > $(@:.chkexe_=.log); \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "Fortran API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "C++ API: $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log);\
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
echo "$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) Test Log" >> $(@:.chkexe_=.log); \
fi; \
echo "============================"; \
echo "============================" >> $(@:.chkexe_=.log); \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) 2>&1 >> $(@:.chkexe_=.log) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat $(@:.chkexe_=.log) && false) || exit 1; \
echo "" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)" >> $(@:.chkexe_=.log); \
echo "============================" >> $(@:.chkexe_=.log); \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# The dummy.chksh here prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
@if test "X$@" != "X.chksh_" && test "X$@" != "Xdummy.chksh_"; then \
@ -800,21 +831,27 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummy.chksh_:
if $(top_srcdir)/bin/newer `basename $(@:.chksh_=.chksh)` $(@:.chksh_=); then \
echo "No need to test `basename $(@:.chksh_=)` again."; \
else \
echo "============================" > `basename $(@:.chksh_=.logsh)`; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "Fortran API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "C++ API: `basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `baename $(@:.chksh_=.logsh)`; \
else \
echo "Testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
echo "`basename $(@:.chksh_=)` $(TEST_FLAGS) Test Log" >> `basename $(@:.chksh_=.logsh)`; \
fi; \
echo "============================"; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) \
$(SHELL) $(@:.chksh_=) $(TEST_FLAGS) 2>&1 >> `basename $(@:.chksh_=.logsh)` \
&& touch `basename $(@:.chksh_=.chksh)` || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
(cat `basename $(@:.chksh_=.logsh)` && false) || exit 1; \
echo "" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)" >> `basename $(@:.chksh_=.logsh)`; \
echo "============================" >> `basename $(@:.chksh_=.logsh)`; \
echo "Finished testing `basename $(@:.chksh_=)` $(TEST_FLAGS)"; \
fi; \
echo "============================"; \