[svn-r11008] Purpose:

Feature: tests now use parallel make and only run once

Description:
When make is invoked in parallel (using the -j option), several tests will
now be run simultaneously.  This should speed up testing on a number of
systems.
When a test passes, it creates a foo.chkexe or foo.chksh file, which prevents
the test from running again unless the test or library changes.

Solution:
Most of the changes live in config/conclude.am.  Added *.chkexe and *.chksh
files to the list of files to be cleaned at "make mostlyclean" time.
Parallel tests still run one at a time, but use the same make instructions
as serial tests.

Platforms tested:
mir, eirene, sleipnir, pommier, copper, modi4 (some errors occurred, probably
due to the test being run before updating hdf5.  Will re-run tests after
checkin.)
This commit is contained in:
James Laird 2005-06-30 18:35:32 -05:00
parent afcd1ddb39
commit 43f091f462
65 changed files with 2957 additions and 3130 deletions

View File

@ -309,6 +309,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
@BUILD_PARALLEL_CONDITIONAL_FALSE@TESTPARALLEL_DIR =
# Define subdirectories to build.
@ -675,6 +678,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -279,6 +279,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
@BUILD_CXX_CONDITIONAL_TRUE@SUBDIRS = src test
DIST_SUBDIRS = src test examples
@ -294,6 +297,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -533,6 +540,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -634,9 +642,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -663,71 +671,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -740,40 +760,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -39,7 +39,7 @@ INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \
# 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=*.h5
MOSTLYCLEANFILES+=*.h5
CLEANFILES=$(EXTRA_PROG)
# Tell conclude.am that these are C++ tests.

View File

@ -272,6 +272,13 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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
# Use h5c++ to build examples, instead of reguar C++ compiler
H5CPP = $(bindir)/h5c++
@ -287,11 +294,6 @@ EXTRA_PROG = $(TEST_PROG)
INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
extend_ds.cpp chunks.cpp h5group.cpp
# 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 = *.h5
CLEANFILES = $(EXTRA_PROG)
# Tell conclude.am that these are C++ tests.
@ -312,6 +314,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -527,9 +533,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -556,71 +562,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -633,40 +651,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -314,6 +314,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src directory
INCLUDES = -I$(top_srcdir)/src
@ -364,6 +367,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -628,6 +635,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -712,9 +720,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -741,71 +749,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -818,40 +838,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -303,6 +303,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src, test, and c++/src directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src
@ -333,6 +336,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -521,6 +528,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -600,9 +608,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -629,71 +637,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -706,40 +726,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -53,3 +53,5 @@ AUTOHEADER=/afs/ncsa/projects/hdf/packages/autoconf_2.59/Linux_2.4/bin/autoheade
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

View File

@ -20,9 +20,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -49,71 +49,88 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
TEST_PROG_CHKEXE=$(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE=$(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH=$(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH=$(TEST_SCRIPT_PARA:=.chksh_)
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -126,40 +143,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -277,6 +277,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Add doc-specific include
# Subdirectories in build-order
@ -519,6 +522,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/ADGuide
# Public doc files (to be installed)...
@ -395,6 +398,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/Graphics
# Public doc files (to be installed)...
@ -393,6 +396,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/Intro
# Public doc files (to be installed)...
@ -393,6 +396,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -286,6 +286,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5
# Subdirectories in build-order
@ -572,6 +575,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -263,6 +263,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdirc)/hdf5/PSandPDF
all: all-am
@ -360,6 +363,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/TechNotes
# Public doc files (to be installed)...
@ -402,6 +405,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/Tutor/Graphics
# Public doc files (to be installed)...
@ -401,6 +404,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -282,6 +282,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
SUBDIRS = Graphics examples
localdocdir = $(docdir)/hdf5/Tutor
@ -553,6 +556,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -275,6 +275,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/Tutor/examples
# Public doc files (to be installed)...
@ -436,6 +439,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/cpplus
# Public doc files (to be installed)...
@ -393,6 +396,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/ed_libs
# Public doc files (to be installed)...
@ -397,6 +400,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/ed_styles
# Public doc files (to be installed)...
@ -396,6 +399,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -273,6 +273,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
localdocdir = $(docdir)/hdf5/fortran
# Public doc files (to be installed)...
@ -393,6 +396,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:

View File

@ -271,6 +271,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
@BUILD_PARALLEL_CONDITIONAL_FALSE@TEST_PROG_PARA =
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = ph5example
@ -317,6 +320,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -414,6 +421,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@ -540,9 +548,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -569,71 +577,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -646,40 +666,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -283,6 +283,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
@BUILD_PARALLEL_CONDITIONAL_TRUE@TESTPARALLEL_DIR = testpar
# Subdirectories in build order, not including examples directory
@ -303,6 +306,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -542,6 +549,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -643,9 +651,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -672,71 +680,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -749,40 +769,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -272,6 +272,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Compile parallel fortran examples only if parallel is enabled
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = ph5example
@ -317,6 +320,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -414,6 +421,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@ -543,9 +551,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -572,71 +580,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -649,40 +669,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -55,7 +55,7 @@ DISTCLEANFILES=h5fc libhdf5_fortran.settings
# 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=H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
MOSTLYCLEANFILES+=H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
H5fortran_detect.f90
# Fortran module files can have different extensions and different names

View File

@ -339,6 +339,14 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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
# Include src directory in both Fortran and C flags (C compiler is used
# for linking)
INCLUDES = -I$(top_srcdir)/src
@ -369,13 +377,6 @@ libhdf5_fortran_la_SOURCES = H5fortran_flags.f90 H5f90global.f90 \
# Remove them only when distclean.
DISTCLEANFILES = h5fc libhdf5_fortran.settings
# 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 = H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
H5fortran_detect.f90
# Install libhdf5_fortran.settings in lib directory
settingsdir = $(libdir)
settings_DATA = libhdf5_fortran.settings
@ -413,6 +414,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
@ -843,9 +848,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -872,71 +877,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -949,40 +966,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -55,7 +55,7 @@ LIBADD=$(LIBH5TEST) $(LIBHDF5) $(LIBH5F)
LDADD=libh5test_fortran.la $(LIBH5TEST) $(LIBH5F) $(LIBHDF5)
# Temporary files
MOSTLYCLEANFILES=*.h5 *.tmp
MOSTLYCLEANFILES+=*.h5 *.tmp
# Mark this directory as part of the Fortran API (this affects output
# from tests in conclude.am)

View File

@ -341,6 +341,11 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 *.tmp
# Include files
AM_FCFLAGS = -I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/src
INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/fortran/src
@ -375,9 +380,6 @@ fflush2_SOURCES = fflush2.f90
LIBADD = $(LIBH5TEST) $(LIBHDF5) $(LIBH5F)
LDADD = libh5test_fortran.la $(LIBH5TEST) $(LIBH5F) $(LIBHDF5)
# Temporary files
MOSTLYCLEANFILES = *.h5 *.tmp
# Mark this directory as part of the Fortran API (this affects output
# from tests in conclude.am)
HDF_FORTRAN = yes
@ -394,6 +396,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -807,9 +813,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -836,71 +842,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -913,40 +931,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -296,6 +296,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include files
AM_FCFLAGS = -I$(top_srcdir)/fortran/src -I$(top_srcdir)/fortran/test $(F9XMODFLAG)$(top_builddir)/fortran/src
@ -330,6 +333,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -496,6 +503,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -573,9 +581,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -602,71 +610,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -679,40 +699,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -275,6 +275,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
@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)
@ -291,6 +294,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -530,6 +537,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -608,9 +616,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -637,71 +645,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -714,40 +734,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -280,6 +280,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
SUBDIRS = src test
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -294,6 +297,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -533,6 +540,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -611,9 +619,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -640,71 +648,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -717,40 +737,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -303,6 +303,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src directory
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src
@ -333,6 +336,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -551,6 +558,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -633,9 +641,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -662,71 +670,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -739,40 +759,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -297,6 +297,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_srcdir)/hl/c++/src -I$(top_srcdir)/test
@ -323,6 +326,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -503,6 +510,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -582,9 +590,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -611,71 +619,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -688,40 +708,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -275,6 +275,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
SUBDIRS = src test
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -289,6 +292,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -528,6 +535,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -606,9 +614,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -635,71 +643,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -712,40 +732,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -296,6 +296,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
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
@ -327,6 +330,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -540,6 +547,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -657,9 +665,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -686,71 +694,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -763,40 +783,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -29,6 +29,6 @@ tstimage_SOURCES=tstimage.f90
tsttable_SOURCES=tsttable.f90
# Temporary files.
MOSTLYCLEANFILES=dsetf[1-4].h5 f1img.h5 f1tab.h5
MOSTLYCLEANFILES+=dsetf[1-4].h5 f1img.h5 f1tab.h5
include $(top_srcdir)/config/conclude.am

View File

@ -295,6 +295,11 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files.
MOSTLYCLEANFILES = *.chkexe *.chksh 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
@ -310,9 +315,6 @@ tstlite_SOURCES = tstlite.f90
tstimage_SOURCES = tstimage.f90
tsttable_SOURCES = tsttable.f90
# Temporary files.
MOSTLYCLEANFILES = dsetf[1-4].h5 f1img.h5 f1tab.h5
# Automake needs to be taught how to build lib, progs, and tests targets.
# These will be filled in automatically for the most part (e.g.,
# lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and
@ -325,6 +327,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -575,9 +581,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -604,71 +610,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -681,40 +699,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -294,6 +294,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Add include directories to the C preprocessor flags
AM_CPPFLAGS = -I$(top_srcdir)/src
@ -316,6 +319,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -539,6 +546,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -621,9 +629,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -650,71 +658,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -727,40 +747,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -22,7 +22,7 @@ TEST_PROG=test_lite test_image test_table test_ds test_packet
check_PROGRAMS=$(TEST_PROG)
# Temporary files. These files are the ones created by running `make test'.
MOSTLYCLEANFILES=combine_tables[1-2].h5 test_ds[1-6].h5 test_image[1-3].h5 \
MOSTLYCLEANFILES+=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
include $(top_srcdir)/config/conclude.am

View File

@ -306,6 +306,13 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files. These files are the ones created by running `make test'.
MOSTLYCLEANFILES = *.chkexe *.chksh 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
# Add include directories to C preprocessor flags
AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_builddir)/src -I$(top_srcdir)/src -I$(top_srcdir)/hl/src
@ -316,11 +323,6 @@ LDADD = $(LIBH5_HL) $(LIBHDF5)
# order to be executed, generally most specific tests to least specific tests.
TEST_PROG = test_lite test_image test_table test_ds test_packet
# Temporary files. These files are the ones created by running `make test'.
MOSTLYCLEANFILES = 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
# Automake needs to be taught how to build lib, progs, and tests targets.
# These will be filled in automatically for the most part (e.g.,
# lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and
@ -333,6 +335,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -609,9 +615,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -638,71 +644,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -715,40 +733,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -304,6 +304,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
gif2h5_SOURCES = gif2hdf.c gif2mem.c decompress.c gifread.c writehdf.c
@ -324,6 +327,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -537,6 +544,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -616,9 +624,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -645,71 +653,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -722,40 +742,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -324,6 +324,9 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf
@ -357,6 +360,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -594,6 +601,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@ -675,9 +683,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -704,71 +712,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -781,40 +801,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -34,7 +34,7 @@ lib_LTLIBRARIES=libhdf5.la
libhdf5_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE)
# Temporary files
MOSTLYCLEANFILES=H5detect.o H5detect.lo H5detect H5Tinit.o H5Tinit.lo H5Tinit.c
MOSTLYCLEANFILES+=H5detect.o H5detect.lo H5detect H5Tinit.o H5Tinit.lo H5Tinit.c
# libhdf5.settings is generated during configure. Remove it when distclean.
DISTCLEAN=libhdf5.settings

View File

@ -338,6 +338,12 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files
MOSTLYCLEANFILES = *.chkexe *.chksh 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.
LT_VERS_INTERFACE = 2
@ -351,9 +357,6 @@ lib_LTLIBRARIES = libhdf5.la
# Add libtool numbers to the HDF5 library (from config/lt_vers.am)
libhdf5_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE)
# Temporary files
MOSTLYCLEANFILES = H5detect.o H5detect.lo H5detect H5Tinit.o H5Tinit.lo H5Tinit.c
# libhdf5.settings is generated during configure. Remove it when distclean.
DISTCLEAN = libhdf5.settings
@ -415,6 +418,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: H5config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
@ -926,9 +933,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -955,71 +962,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -1032,40 +1051,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -29,6 +29,7 @@ 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.
# JAMES debug: removed btree2 and cache tests since they take so long.
TEST_PROG=testhdf5 lheap ohdr stab gheap cache btree2 blocktrack sheap \
pool hyperslab istore bittests dt_arith \
dtypes dsets cmpd_dset extend external links unlink big mtime \
@ -76,7 +77,7 @@ timings _timings: testmeta
# 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=cmpd_dset.h5 compact_dataset.h5 dataset.h5 extend.h5 istore.h5\
MOSTLYCLEANFILES+=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 \

View File

@ -491,6 +491,30 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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 \
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 \
err_compat.h5 dtransform.h5 test_filters.h5 get_file_name.h5 \
tstint[1-2].h5 unlink_chunked.h5 btree2.h5 blocktrack.h5 \
sheap.h5
INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src
# Test script for error_test and err_compat
@ -499,6 +523,7 @@ 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.
# JAMES debug: removed btree2 and cache tests since they take so long.
TEST_PROG = testhdf5 lheap ohdr stab gheap cache btree2 blocktrack sheap \
pool hyperslab istore bittests dt_arith \
dtypes dsets cmpd_dset extend external links unlink big mtime \
@ -525,28 +550,6 @@ ttsafe_SOURCES = ttsafe.c ttsafe_dcreate.c ttsafe_error.c ttsafe_cancel.c
ttsafe_acreate.c
# 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 = 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 err_compat.h5 \
dtransform.h5 test_filters.h5 get_file_name.h5 tstint[1-2].h5 \
unlink_chunked.h5 btree2.h5 blocktrack.h5 sheap.h5
# Sources for testhdf5 executable
testhdf5_SOURCES = testhdf5.c tarray.c tattr.c tconfig.c tfile.c tgenprop.c \
th5s.c theap.c tid.c titerate.c tmeta.c tmisc.c ttime.c trefer.c trefstr.c \
@ -565,6 +568,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -1032,9 +1039,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -1061,71 +1068,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -1138,40 +1157,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -65,6 +65,7 @@ main(void)
h5_reset();
fapl = h5_fileaccess();
/*
* Test writing to the heap...
*/

View File

@ -40,7 +40,7 @@ LDADD = $(LIBHDF5) $(LIBH5TEST)
# MPItest.h5 is from t_mpi
# Para*.h5 are from testphdf
# *.clog are from MPE option
MOSTLYCLEANFILES=MPItest.h5 Para*.h5 *.clog
MOSTLYCLEANFILES+=MPItest.h5 Para*.h5 *.clog
DISTCLEANFILES=go Makefile testph5.sh
include $(top_srcdir)/config/conclude.am

View File

@ -304,6 +304,14 @@ H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test
# Test programs and scripts. These are our main targets.
@ -317,12 +325,6 @@ testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_mdset.c t_ph5basic.c \
# The tests all depend on the hdf5 library and the test library
LDADD = $(LIBHDF5) $(LIBH5TEST)
# Temporary files
# MPItest.h5 is from t_mpi
# Para*.h5 are from testphdf
# *.clog are from MPE option
MOSTLYCLEANFILES = MPItest.h5 Para*.h5 *.clog
DISTCLEANFILES = go Makefile testph5.sh
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -337,6 +339,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -614,9 +620,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -643,71 +649,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -720,40 +738,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -281,6 +281,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# All subdirectories
SUBDIRS = lib h5dump h5diff h5ls misc gifconv h5import h5repack h5jam
@ -296,6 +299,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-recursive
.SUFFIXES:
@ -535,6 +542,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -613,9 +621,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -642,71 +650,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -719,40 +739,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -304,6 +304,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
gif2h5_SOURCES = gif2hdf.c gif2mem.c decompress.c gifread.c writehdf.c
@ -324,6 +327,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -537,6 +544,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -616,9 +624,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -645,71 +653,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -722,40 +742,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -50,7 +50,7 @@ LDADD=$(LIBH5TOOLS) $(LIBHDF5)
# Temporary files. *.h5 are generated by h5diff. They should
# be copied to the testfiles/ directory if update is required
MOSTLYCLEANFILES=*.h5 expect_sorted actual_sorted
MOSTLYCLEANFILES+=*.h5 expect_sorted actual_sorted
include $(top_srcdir)/config/conclude.am

View File

@ -312,6 +312,12 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -335,10 +341,6 @@ h5difftst_SOURCES = testh5diff_main.c testh5diff_attr.c \
# Programs depend on the main HDF5 library and tools library
LDADD = $(LIBH5TOOLS) $(LIBHDF5)
# Temporary files. *.h5 are generated by h5diff. They should
# be copied to the testfiles/ directory if update is required
MOSTLYCLEANFILES = *.h5 expect_sorted actual_sorted
# Automake needs to be taught how to build lib, progs, and tests targets.
# These will be filled in automatically for the most part (e.g.,
# lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and
@ -351,6 +353,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -656,9 +662,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -685,71 +691,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -762,40 +780,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -37,7 +37,7 @@ LDADD=$(LIBH5TOOLS) $(LIBHDF5)
# Temporary files. *.h5 are generated by h5dumpgentest. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES=*.h5
MOSTLYCLEANFILES+=*.h5
DISTCLEANFILES=testh5dump.sh
include $(top_srcdir)/config/conclude.am

View File

@ -305,6 +305,12 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files. *.h5 are generated by h5dumpgentest. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5
# Include files in /src directory and /tools/lib directory
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -315,10 +321,6 @@ check_SCRIPTS = $(TEST_SCRIPT)
# All the programs depend on the hdf5 and h5tools libraries
LDADD = $(LIBH5TOOLS) $(LIBHDF5)
# Temporary files. *.h5 are generated by h5dumpgentest. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.h5
DISTCLEANFILES = testh5dump.sh
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -333,6 +335,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -632,9 +638,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -661,71 +667,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -738,40 +756,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -305,6 +305,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -328,6 +331,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -543,6 +550,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -623,9 +631,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -652,71 +660,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -729,40 +749,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -32,7 +32,7 @@ LDADD=$(LIBH5TOOLS) $(LIBHDF5)
## Temporary files. *.h5 are generated by jamgentest. They should
## copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES=*.h5 *.txt
MOSTLYCLEANFILES+=*.h5 *.txt
DISTCLEANFILES=testh5jam.sh
include $(top_srcdir)/config/conclude.am

View File

@ -300,6 +300,9 @@ H5CC_PP = $(bindir)/h5pcc
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
#
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
@ -323,7 +326,6 @@ check_SCRIPTS = $(TEST_SCRIPT)
# Link against the main HDF5 library and tools library
LDADD = $(LIBH5TOOLS) $(LIBHDF5)
MOSTLYCLEANFILES = *.h5 *.txt
DISTCLEANFILES = testh5jam.sh
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -338,6 +340,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -649,9 +655,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -678,71 +684,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -755,40 +773,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -298,6 +298,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
@ -320,6 +323,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -524,6 +531,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -603,9 +611,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -632,71 +640,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -709,40 +729,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -50,7 +50,7 @@ testh5repack_detect_szip_SOURCES=testh5repack_detect_szip.c
# Temporary files. *.h5 are generated by h5repack. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES=*.h5
MOSTLYCLEANFILES+=*.h5
DISTCLEANFILES=h5repack.sh
include $(top_srcdir)/config/conclude.am

View File

@ -320,6 +320,12 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# Temporary files. *.h5 are generated by h5repack. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.chkexe *.chksh *.h5
# Include src, test, and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
@ -341,10 +347,6 @@ h5repacktst_SOURCES = $(COMMON_SOURCES) testh5repack_attr.c testh5repack_dset.c
testh5repack_main.c testh5repack_make.c testh5repack_util.c
testh5repack_detect_szip_SOURCES = testh5repack_detect_szip.c
# Temporary files. *.h5 are generated by h5repack. They should
# copied to the testfiles/ directory if update is required.
MOSTLYCLEANFILES = *.h5
DISTCLEANFILES = h5repack.sh
# Automake needs to be taught how to build lib, progs, and tests targets.
@ -359,6 +361,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -682,9 +688,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -711,71 +717,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -788,40 +806,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -302,6 +302,9 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
MOSTLYCLEANFILES = *.chkexe *.chksh
# Include files in /src directory
INCLUDES = -I$(top_srcdir)/src
@ -337,6 +340,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -541,6 +548,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@ -620,9 +628,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -649,71 +657,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -726,40 +746,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false

View File

@ -44,7 +44,7 @@ CLEANFILES=h5redeploy
# 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=*.h5 ../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
MOSTLYCLEANFILES+=*.h5 ../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
# These were generated by configure. Remove them only when distclean.
DISTCLEANFILES=h5cc testh5repart.sh

View File

@ -325,6 +325,14 @@ H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
# .chkexe and .chksh files are used to mark tests that have run successfully.
# 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
# Include src directory
INCLUDES = -I$(top_srcdir)/src
@ -340,11 +348,6 @@ bin_SCRIPTS = h5redeploy
# Tell automake to clean h5redeploy script
CLEANFILES = h5redeploy
# 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 = *.h5 ../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
# These were generated by configure. Remove them only when distclean.
DISTCLEANFILES = h5cc testh5repart.sh
@ -368,6 +371,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_)
TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_)
all: all-am
.SUFFIXES:
@ -714,9 +721,9 @@ build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
lib progs tests ::
@$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \
for d in X $(SUBDIRS); do \
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 \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@ -743,71 +750,83 @@ install-doc uninstall-doc:
check-TESTS: test
test _test:
$(MAKE) _check-s
$(MAKE) _check-p
# Run check-s/check-p recursively down SUBDIRS
check-s check-p:
@$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \
for d in X $(SUBDIRS); do \
if test $$d != X -a $$d != .; then \
(set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
@$(MAKE) build-check-s
@$(MAKE) build-check-p
# Actual execution of check-s.
_check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@for test in $(TEST_PROG) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
fi; \
done; \
test $$test = dummy || false
fi
@$(MAKE) $(AM_MAKEFLAGS) _exec_check-s
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
fi
_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH)
# The .chkexe_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_:
@if test "X$@" != "X.chkexe_"; then \
echo "============================"; \
if test -e $(@:.chkexe_=.chkexe) && \
test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \
echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# The .chksh_ here is the "dummy" that prevents the target from being
# empty if there are no tests in the current directory.
$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_:
@if test "X$@" != "X.chksh_"; then \
echo "============================"; \
if test -e $(@:.chksh_=.chksh) && \
test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \
echo "No need to test $(@:.chksh_=) again."; \
else \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
else \
echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
$(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \
&& touch $(@:.chksh_=.chksh) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
exit 1; \
echo ""; \
echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
fi
# Actual execution of check-p.
_check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
fi
@if test -n "$(TEST_PROG_PARA)"; then \
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
@ -820,40 +839,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS)
fi
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
srcdir="$(srcdir)" \
$(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)"; \
fi; \
done; \
test $$test = dummy || false
@for test in $(TEST_SCRIPT_PARA) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
else \
echo "Testing $$test $(TEST_FLAGS)"; \
fi; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir="$(srcdir)" \
/bin/sh $$test $(TEST_FLAGS) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
break; \
echo ""; \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \
fi; \
done; \
test $$test = dummy || false