diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/Makefile.am | 5 | ||||
-rw-r--r-- | examples/Makefile.in | 32 | ||||
-rwxr-xr-x | examples/run-all-ex.sh | 40 | ||||
-rwxr-xr-x | examples/run-c-ex.sh.in | 108 |
4 files changed, 181 insertions, 4 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am index 9143baa..92830df 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -41,6 +41,10 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \ h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \ h5_ref2reg.c h5_shared_mesg.c ph5example.c +INSTALL_SCRIPT_FILES = run-c-ex.sh + +INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh + # How to build examples, using installed version of h5cc if BUILD_PARALLEL_CONDITIONAL $(EXTRA_PROG): $(H5CC_PP) @@ -66,6 +70,7 @@ CHECK_CLEANFILES+=$(EXTLINK_DIRS) # Example directory EXAMPLEDIR=${DESTDIR}/$(exec_prefix)/share/hdf5_examples/c +EXAMPLETOPDIR=${DESTDIR}/$(exec_prefix)/share/hdf5_examples # List dependencies for each program. Normally, automake would take # care of this for us, but if we tell automake about the programs it diff --git a/examples/Makefile.in b/examples/Makefile.in index 8e556e9..fee596a 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -55,7 +55,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/testh5cc.sh.in $(top_srcdir)/config/commence.am \ + $(srcdir)/run-c-ex.sh.in $(srcdir)/testh5cc.sh.in \ + $(top_srcdir)/config/commence.am \ $(top_srcdir)/config/conclude.am \ $(top_srcdir)/config/examples.am TESTS = @@ -66,7 +67,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/H5config.h -CONFIG_CLEAN_FILES = testh5cc.sh +CONFIG_CLEAN_FILES = run-c-ex.sh testh5cc.sh CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = @@ -350,6 +351,8 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \ h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \ h5_ref2reg.c h5_shared_mesg.c ph5example.c +INSTALL_SCRIPT_FILES = run-c-ex.sh +INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh # The external link examples demonstrate how to use paths; they need # directories to be created to do this. @@ -357,6 +360,7 @@ EXTLINK_DIRS = red blue u2w # Example directory EXAMPLEDIR = ${DESTDIR}/$(exec_prefix)/share/hdf5_examples/c +EXAMPLETOPDIR = ${DESTDIR}/$(exec_prefix)/share/hdf5_examples # Assume that all tests in this directory are examples, and tell # conclude.am when to build them. @@ -415,6 +419,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +run-c-ex.sh: $(top_builddir)/config.status $(srcdir)/run-c-ex.sh.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ testh5cc.sh: $(top_builddir)/config.status $(srcdir)/testh5cc.sh.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ @@ -629,6 +635,8 @@ h5_shared_mesg: $(srcdir)/h5_shared_mesg.c # How to create EXAMPLEDIR if it doesn't already exist $(EXAMPLEDIR): -$(top_srcdir)/bin/mkdirs $@ +$(EXAMPLETOPDIR): + -$(top_srcdir)/bin/mkdirs $@ # Install and uninstall rules. We install the source files, not the # example programs themselves. @@ -643,10 +651,26 @@ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES) (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\ fi; \ done + @for f in X $(INSTALL_SCRIPT_FILES); do \ + if test $$f != X; then \ + (set -x; $(INSTALL) $$f $(EXAMPLEDIR)/. || exit 1);\ + fi; \ + done + @for f in X $(INSTALL_TOP_SCRIPT_FILES); do \ + if test $$f != X; then \ + (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \ + fi; \ + done uninstall-examples: - @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \ - set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \ + @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \ + set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \ + fi + @if test -n "$(INSTALL_SCRIPT_FILES)" -a -d $(EXAMPLEDIR); then \ + set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_SCRIPT_FILES); \ + fi + @if test -n "$(INSTALL_TOP_SCRIPT_FILES)" -a -d $(EXAMPLETOPDIR); then \ + set -x; cd $(EXAMPLETOPDIR) && $(RM) $(INSTALL_TOP_SCRIPT_FILES); \ fi installcheck-local: diff --git a/examples/run-all-ex.sh b/examples/run-all-ex.sh new file mode 100755 index 0000000..e96b86f --- /dev/null +++ b/examples/run-all-ex.sh @@ -0,0 +1,40 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. + +# +# This file: run-hl-ex.sh +# Written by: Larry Knox +# Date: May 11, 2010 +# +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # +# This script will run the scripts to compile and run the installed hdf5 # +# examples. # +# # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +if (echo "Run c examples" && \ + (cd c; sh ./run-c-ex.sh) && \ + echo "Run fortran examples" && \ + (cd fortran; sh ./run-fortran-ex.sh) && \ + echo "Run c++ examples" && \ + (cd c++; sh ./run-c++-ex.sh) && \ + echo "Run hl examples." && \ + (cd hl; sh ./run-hl-ex.sh)); then + echo "Done" + exit 0 +else + exit 1 +fi + diff --git a/examples/run-c-ex.sh.in b/examples/run-c-ex.sh.in new file mode 100755 index 0000000..09ff2fc --- /dev/null +++ b/examples/run-c-ex.sh.in @@ -0,0 +1,108 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. + +# +# This file: run-c-ex.sh +# Written by: Larry Knox +# Date: May 11, 2010 +# +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # +# This script will compile and run the c examples from source files installed # +# in .../share/hdf5_examples/c using h5cc or h5pc. The order for running # +# programs with RunTest in the MAIN section below is taken from the Makefile. # +# The order is important since some of the test programs use data files created # +# by earlier test programs. Any future additions should be placed accordingly. # +# # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +# Initializations +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# Where the tool is installed. +prefix="${prefix:-${DESTDIR}/@prefix@}" +PARALLEL=@PARALLEL@ # Am I in parallel mode? +AR="@AR@" +RANLIB="@RANLIB@" +if [ "$PARALLEL" = no ]; then + H5TOOL="h5cc" # The tool name +else + H5TOOL="h5pcc" # The tool name +fi +H5TOOL_BIN="${prefix}/bin/${H5TOOL}" # The path of the tool binary + +#### Run test #### +RunTest() +{ + Test=$1".c" + + echo + echo "################# $1 #################" + ${H5TOOL_BIN} $Test + if [ $? -ne 0 ] + then + echo "messed up compiling $Test" + exit 1 + fi + ./a.out +} + + + +################## MAIN ################## + +if ! test -d red; then + mkdir red +fi +if ! test -d blue; then + mkdir blue +fi +if ! test -d u2w; then + mkdir u2w +fi + +# Run tests +if [ $? -eq 0 ] +then + if (RunTest h5_write &&\ + RunTest h5_read &&\ + RunTest h5_extend_write &&\ + RunTest h5_chunk_read &&\ + RunTest h5_compound &&\ + RunTest h5_group &&\ + RunTest h5_select &&\ + RunTest h5_attribute &&\ + RunTest h5_mount &&\ + RunTest h5_reference &&\ + RunTest h5_drivers &&\ + RunTest h5_ref2reg &&\ + RunTest h5_extlink &&\ + RunTest h5_elink_unix2win &&\ + RunTest h5_shared_mesg); then + EXIT_VALUE=${EXIT_SUCCESS} + else + EXIT_VALUE=${EXIT_FAILURE} + fi +fi + +# Cleanup +rm a.out +rm *.o +rm *.h5 +rm -rf red blue u2w +echo + +exit $EXIT_VALUE + |