diff options
author | James Laird <jlaird@hdfgroup.org> | 2005-10-31 21:35:49 (GMT) |
---|---|---|
committer | James Laird <jlaird@hdfgroup.org> | 2005-10-31 21:35:49 (GMT) |
commit | 617522e467c817811d80d60ce7e97212c9df4059 (patch) | |
tree | 15df31a9336fd427e7cba038852aa033699fe00b /c++/examples | |
parent | 6a53f457cfcbfcd3309dbb6fcbab03095302290e (diff) | |
download | hdf5-617522e467c817811d80d60ce7e97212c9df4059.zip hdf5-617522e467c817811d80d60ce7e97212c9df4059.tar.gz hdf5-617522e467c817811d80d60ce7e97212c9df4059.tar.bz2 |
[svn-r11646] Purpose:
Bug fix/feature
Description:
Added support for -shlib in h5fc and h5c++.
Made check-install use -shlib when only shared libraries have been installed.
Solution:
h5fc and h5c++ didn't recognize -shlib. Stole code from h5cc to link against
shared libraries.
When static libraries are disabled, the examples Makefiles will automatically
use the -shlib option to link against shared libraries. Thus,
--disable-static and make check-install should work together.
Platforms tested:
heping(disable-static, enable-static, fortran, c++), modi4 (disable-static, fortran, c++, parallel, enable-static)
Diffstat (limited to 'c++/examples')
-rw-r--r-- | c++/examples/Makefile.am | 5 | ||||
-rw-r--r-- | c++/examples/Makefile.in | 23 |
2 files changed, 16 insertions, 12 deletions
diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am index d79faea..e82c3cd 100644 --- a/c++/examples/Makefile.am +++ b/c++/examples/Makefile.am @@ -20,9 +20,6 @@ include $(top_srcdir)/config/commence.am -# Use h5c++ to build examples, instead of reguar C++ compiler -H5CPP=$(bindir)/h5c++ - # These are the programs that 'make all' or 'make prog' will build and # which 'make check' will run. List them in the order they should be run. TEST_PROG=create readdata writedata compound extend_ds chunks h5group @@ -88,7 +85,7 @@ installcheck-local: @$(MAKE) $(AM_MAKEFLAGS) check # How to build programs using h5c++ -$(EXTRA_PROG): $(H5CPP) $(LIBHDF5) $(LIBH5CPP) +$(EXTRA_PROG): $(LIBHDF5) $(LIBH5CPP) $(H5CPP) $(CPPFLAGS) -o $@ $(srcdir)/$@.cpp # List dependencies for each program. Normally, automake would take diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index db940ce..f27e4bd 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -91,6 +91,8 @@ BUILD_PABLO_CONDITIONAL_FALSE = @BUILD_PABLO_CONDITIONAL_FALSE@ BUILD_PABLO_CONDITIONAL_TRUE = @BUILD_PABLO_CONDITIONAL_TRUE@ BUILD_PARALLEL_CONDITIONAL_FALSE = @BUILD_PARALLEL_CONDITIONAL_FALSE@ BUILD_PARALLEL_CONDITIONAL_TRUE = @BUILD_PARALLEL_CONDITIONAL_TRUE@ +BUILD_SHARED_ONLY_CONDITIONAL_FALSE = @BUILD_SHARED_ONLY_CONDITIONAL_FALSE@ +BUILD_SHARED_ONLY_CONDITIONAL_TRUE = @BUILD_SHARED_ONLY_CONDITIONAL_TRUE@ BYTESEX = @BYTESEX@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -277,12 +279,20 @@ LIBH5_HL = $(top_builddir)/hl/src/libhdf5_hl.la LIBH5F_HL = $(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la LIBH5CPP_HL = $(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la docdir = $(exec_prefix)/doc +@BUILD_SHARED_ONLY_CONDITIONAL_FALSE@H5CC = $(bindir)/h5cc # Scripts used to build examples -H5CC = $(bindir)/h5cc -H5CC_PP = $(bindir)/h5pcc -H5FC = $(bindir)/h5fc -H5FC_PP = $(bindir)/h5pfc +# If only shared libraries have been installed, have h5cc build examples with +# shared libraries instead of static libraries +@BUILD_SHARED_ONLY_CONDITIONAL_TRUE@H5CC = $(bindir)/h5cc -shlib +@BUILD_SHARED_ONLY_CONDITIONAL_FALSE@H5CC_PP = $(bindir)/h5pcc +@BUILD_SHARED_ONLY_CONDITIONAL_TRUE@H5CC_PP = $(bindir)/h5pcc -shlib +@BUILD_SHARED_ONLY_CONDITIONAL_FALSE@H5FC = $(bindir)/h5fc +@BUILD_SHARED_ONLY_CONDITIONAL_TRUE@H5FC = $(bindir)/h5fc -shlib +@BUILD_SHARED_ONLY_CONDITIONAL_FALSE@H5FC_PP = $(bindir)/h5pfc +@BUILD_SHARED_ONLY_CONDITIONAL_TRUE@H5FC_PP = $(bindir)/h5pfc -shlib +@BUILD_SHARED_ONLY_CONDITIONAL_FALSE@H5CPP = $(bindir)/h5c++ +@BUILD_SHARED_ONLY_CONDITIONAL_TRUE@H5CPP = $(bindir)/h5c++ -shlib # .chkexe files are used to mark tests that have run successfully. # .chklog files are output from those tests. @@ -293,9 +303,6 @@ H5FC_PP = $(bindir)/h5pfc # tell it to clean the example programs, too. CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 -# Use h5c++ to build examples, instead of reguar C++ compiler -H5CPP = $(bindir)/h5c++ - # These are the programs that 'make all' or 'make prog' will build and # which 'make check' will run. List them in the order they should be run. TEST_PROG = create readdata writedata compound extend_ds chunks h5group @@ -546,7 +553,7 @@ installcheck-local: @$(MAKE) $(AM_MAKEFLAGS) check # How to build programs using h5c++ -$(EXTRA_PROG): $(H5CPP) $(LIBHDF5) $(LIBH5CPP) +$(EXTRA_PROG): $(LIBHDF5) $(LIBH5CPP) $(H5CPP) $(CPPFLAGS) -o $@ $(srcdir)/$@.cpp # List dependencies for each program. Normally, automake would take |