From bfbfda0cae28482357408b1020dfeebd4d0ba217 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 4 Nov 2003 13:10:59 -0500 Subject: [svn-r7816] Purpose: Improvement Description: If the library is built in parallel mode, then name the "h5cc" and "h5fc" programs "h5pcc" and "h5pfc" resp. This saves the user from worrying about mixing serial and parallel builds of the library and having to specify the pathnames and so-forth. Platforms tested: Linux (w/ parallel & Fortran) Modi4 (w/ parallel & Fortran) Sol (Serial & Fortran & C++) Misc. update: Updated release/docs/RELEASE --- config/commence.in | 1 + config/conclude.in | 12 +++- examples/Makefile.in | 105 +++++++++++++++++++++++++++++------ fortran/examples/Makefile.in | 127 ++++++++++++++++++++++++++++++++++++------- release_docs/RELEASE.txt | 15 +++-- tools/misc/h5redeploy.in | 2 +- 6 files changed, 217 insertions(+), 45 deletions(-) diff --git a/config/commence.in b/config/commence.in index ad1ff45..4d6b0c7 100644 --- a/config/commence.in +++ b/config/commence.in @@ -35,6 +35,7 @@ CP=cp INSTALL=@INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA=@INSTALL_DATA@ +PARALLEL=@PARALLEL@ RUNSERIAL=@RUNSERIAL@ RUNPARALLEL=@RUNPARALLEL@ RUNTEST=$(RUNSERIAL) diff --git a/config/conclude.in b/config/conclude.in index 5ab9a1b..50f0de4 100644 --- a/config/conclude.in +++ b/config/conclude.in @@ -180,7 +180,17 @@ install: $(AUX_LIB) $(PUB_LIB) $(PUB_HDR) $(PUB_PROGS) $(libdir) $(includedir) $ done @for f in X $(PUB_PROGS); do \ if test $$f != X; then \ - ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ + if test "X$(PARALLEL)" != "Xno"; then \ + if test $$f = "h5cc"; then \ + ($(LT_INSTALL_PROG) $$f $(bindir)/h5pcc || exit 1); \ + elif test $$f = "h5fc"; then \ + ($(LT_INSTALL_PROG) $$f $(bindir)/h5pfc || exit 1); \ + else \ + ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ + fi; \ + else \ + ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ + fi; \ fi; \ done @for d in X $(SUBDIRS); do \ diff --git a/examples/Makefile.in b/examples/Makefile.in index ad94970..f8ff2be 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -19,7 +19,8 @@ srcdir=@srcdir@ @COMMENCE@ ## Replace building CC with the just installed h5cc -CC=$(bindir)/h5cc +H5CC=$(bindir)/h5cc +H5CC_PP=$(bindir)/h5pcc CPPFLAGS=-I. -I$(srcdir) CFLAGS= @@ -27,7 +28,7 @@ CFLAGS= ## `make check' will run. List them in the order they should be run. TEST_PROGS_PARA=ph5example TEST_PROGS=h5_write h5_read h5_extend_write h5_chunk_read h5_compound \ - h5_group h5_select h5_attribute h5_mount h5_reference h5_drivers + h5_group h5_select h5_attribute h5_mount h5_reference h5_drivers ## These are the files that `make clean' (and derivatives) will remove from ## this directory. @@ -38,8 +39,8 @@ CLEAN=*.h5 *.raw *.meta ## for building automatic dependencies. TEST_SRC_PARA=ph5example.c TEST_SRC=h5_chunk_read.c h5_compound.c h5_extend_write.c h5_group.c \ - h5_read.c h5_write.c h5_select.c h5_attribute.c h5_mount.c \ - h5_reference.c h5_drivers.c $(TEST_SRC_PARA) + h5_read.c h5_write.c h5_select.c h5_attribute.c h5_mount.c \ + h5_reference.c h5_drivers.c $(TEST_SRC_PARA) TEST_OBJ=$(TEST_SRC:.c=.lo) EXAMPLE_PROGS=$(TEST_SRC) @@ -47,39 +48,111 @@ EXAMPLE_PROGS=$(TEST_SRC) ## How to build the programs... they all depend on the hdf5 library $(TEST_PROGS) $(TEST_PROGS_PARA): $(LIBHDF5) h5_chunk_read: $(srcdir)/h5_chunk_read.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_chunk_read.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_compound: $(srcdir)/h5_compound.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_compound.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_extend_write: $(srcdir)/h5_extend_write.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_extend_write.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_group: $(srcdir)/h5_group.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_group.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_write: $(srcdir)/h5_write.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_write.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_read: $(srcdir)/h5_read.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_read.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_select: $(srcdir)/h5_select.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_select.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_attribute: $(srcdir)/h5_attribute.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_attribute.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_mount: $(srcdir)/h5_mount.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_mount.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_reference: $(srcdir)/h5_reference.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_reference.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi h5_drivers: $(srcdir)/h5_drivers.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/h5_drivers.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi ph5example: $(srcdir)/ph5example.c - $(CC) $(CPPFLAGS) -o $@ $(srcdir)/$@.c + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(H5CC) $(CPPFLAGS) -o $@ $<; \ + $(H5CC) $(CPPFLAGS) -o $@ $<; \ + else \ + echo $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + $(H5CC_PP) $(CPPFLAGS) -o $@ $<; \ + fi @CONCLUDE@ diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index 745c15d..e074539 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -24,12 +24,13 @@ hdf5_builddir=$(top_builddir)/src ## Replace building FC with the just installed h5fc FC=$(bindir)/h5fc +FC_PP=$(bindir)/h5pfc ## These are the programs that `make all' or `make tests' will build and which ## `make check' will run. List them in the order they should be run. -TEST_PROGS=dsetexample fileexample rwdsetexample attrexample groupexample \ - grpsexample grpdsetexample hyperslab selectele grpit refobjexample \ - refregexample mountexample compound +TEST_PROGS=dsetexample fileexample rwdsetexample attrexample groupexample \ + grpsexample grpdsetexample hyperslab selectele grpit refobjexample \ + refregexample mountexample compound ## These are the files that `make clean' (and derivatives) will remove from ## this directory. @@ -38,10 +39,10 @@ CLEAN=*.h5 ## List all source files here. The list of object files will be ## created by replacing the `.f90' with a `.o'. This list is necessary ## for building automatic dependencies. -TEST_SRC=dsetexample.f90 fileexample.f90 rwdsetexample.f90 attrexample.f90 \ - groupexample.f90 grpsexample.f90 grpdsetexample.f90 hyperslab.f90 \ - selectele.f90 grpit.f90 refobjexample.f90 refregexample.f90 \ - mountexample.f90 compound.f90 +TEST_SRC=dsetexample.f90 fileexample.f90 rwdsetexample.f90 attrexample.f90 \ + groupexample.f90 grpsexample.f90 grpdsetexample.f90 hyperslab.f90 \ + selectele.f90 grpit.f90 refobjexample.f90 refregexample.f90 \ + mountexample.f90 compound.f90 TEST_OBJ=$(TEST_SRC:.f90=.lo) EXAMPLE_PROGS=$(TEST_SRC) @@ -49,45 +50,129 @@ EXAMPLE_PROGS=$(TEST_SRC) ## How to build the programs... they all depend on the Fortran & C hdf5 libraries $(TEST_PROGS): $(LIBHDF5) dsetexample: $(srcdir)/dsetexample.f90 - $(FC) -o $@ $(srcdir)/dsetexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi fileexample: $(srcdir)/fileexample.f90 - $(FC) -o $@ $(srcdir)/fileexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi rwdsetexample: $(srcdir)/rwdsetexample.f90 - $(FC) -o $@ $(srcdir)/rwdsetexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi attrexample: $(srcdir)/attrexample.f90 - $(FC) -o $@ $(srcdir)/attrexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi groupexample: $(srcdir)/groupexample.f90 - $(FC) -o $@ $(srcdir)/groupexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi grpsexample: $(srcdir)/grpsexample.f90 - $(FC) -o $@ $(srcdir)/grpsexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi grpdsetexample: $(srcdir)/grpdsetexample.f90 - $(FC) -o $@ $(srcdir)/grpdsetexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi hyperslab: $(srcdir)/hyperslab.f90 - $(FC) -o $@ $(srcdir)/hyperslab.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi selectele: $(srcdir)/selectele.f90 - $(FC) -o $@ $(srcdir)/selectele.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi grpit: $(srcdir)/grpit.f90 - $(FC) -o $@ $(srcdir)/grpit.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi refobjexample: $(srcdir)/refobjexample.f90 - $(FC) -o $@ $(srcdir)/refobjexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi refregexample: $(srcdir)/refregexample.f90 - $(FC) -o $@ $(srcdir)/refregexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi mountexample: $(srcdir)/mountexample.f90 - $(FC) -o $@ $(srcdir)/mountexample.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi compound: $(srcdir)/compound.f90 - $(FC) -o $@ $(srcdir)/compound.f90 + @if test "X$(PARALLEL)" = "Xno"; then \ + echo $(FC) -o $@ $<; \ + $(FC) -o $@ $<; \ + else \ + echo $(FC_PP) -o $@ $<; \ + $(FC_PP) -o $@ $<; \ + fi @CONCLUDE@ diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 39746ca..6cc21c8 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -65,6 +65,9 @@ New Features Tools: ------ + - Install the "h5cc" and "h5fc" tools as "h5pcc" and "h5pfc" + respectively if library is built in parallel mode. + WCW - 2003/11/04 - Changed output of "OID"s from h5dump from "-" to "