summaryrefslogtreecommitdiffstats
path: root/hl/fortran
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2005-09-15 21:30:06 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2005-09-15 21:30:06 (GMT)
commitcc8f7d98bf0a373e397faecd14e3480cf5c0777d (patch)
tree293f1fe8128713c4e30c5ac068a0a3d7077e8521 /hl/fortran
parent7c3f0740877f30683d9492b97fee97a780d9dd7f (diff)
downloadhdf5-cc8f7d98bf0a373e397faecd14e3480cf5c0777d.zip
hdf5-cc8f7d98bf0a373e397faecd14e3480cf5c0777d.tar.gz
hdf5-cc8f7d98bf0a373e397faecd14e3480cf5c0777d.tar.bz2
[svn-r11418] Purpose:
Bug fix/feature Description: Disabled shared libraries for a number of Fortran compilers that don't support them. This allows other compilers to support shared Fortran libraries. Solution: Added a conditional, SHARED_FORTRAN_CONDITIONAL, which is true if Fortran supports shared libraries. It is set in configure.in. Platforms tested: mir, sleipnir, colonelk, heping
Diffstat (limited to 'hl/fortran')
-rw-r--r--hl/fortran/Makefile.in2
-rw-r--r--hl/fortran/src/Makefile.am8
-rw-r--r--hl/fortran/src/Makefile.in7
-rw-r--r--hl/fortran/test/Makefile.am8
-rw-r--r--hl/fortran/test/Makefile.in7
5 files changed, 32 insertions, 0 deletions
diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in
index 33a7aa2..4c8a289 100644
--- a/hl/fortran/Makefile.in
+++ b/hl/fortran/Makefile.in
@@ -132,6 +132,8 @@ FCFLAGS = @FCFLAGS@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FILTERS = @FILTERS@
+FORTRAN_SHARED_CONDITIONAL_FALSE = @FORTRAN_SHARED_CONDITIONAL_FALSE@
+FORTRAN_SHARED_CONDITIONAL_TRUE = @FORTRAN_SHARED_CONDITIONAL_TRUE@
FSEARCH_DIRS = @FSEARCH_DIRS@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am
index 2222f90..8c77c9b 100644
--- a/hl/fortran/src/Makefile.am
+++ b/hl/fortran/src/Makefile.am
@@ -18,6 +18,14 @@ AM_FCFLAGS=-I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/sr
# Our main target, the high-level fortran library
lib_LTLIBRARIES=libhdf5hl_fortran.la
+# Some Fortran compilers can't build shared libraries, so sometimes we
+# want to build a shared C library and a static Fortran library. If so,
+# pass the -static flag to the library linker.
+if FORTRAN_SHARED_CONDITIONAL
+else
+ AM_LDFLAGS=-static
+endif
+
# Source files for the library
#if BUILD_PARALLEL_CONDITIONAL
# PARALLEL_COND_SRC=HDFDmpiof.c HDF5mpio.f90
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
index 09209f8..206428c 100644
--- a/hl/fortran/src/Makefile.in
+++ b/hl/fortran/src/Makefile.in
@@ -153,6 +153,8 @@ FCFLAGS = @FCFLAGS@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FILTERS = @FILTERS@
+FORTRAN_SHARED_CONDITIONAL_FALSE = @FORTRAN_SHARED_CONDITIONAL_FALSE@
+FORTRAN_SHARED_CONDITIONAL_TRUE = @FORTRAN_SHARED_CONDITIONAL_TRUE@
FSEARCH_DIRS = @FSEARCH_DIRS@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
@@ -309,6 +311,11 @@ AM_FCFLAGS = -I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/
# Our main target, the high-level fortran library
lib_LTLIBRARIES = libhdf5hl_fortran.la
+# Some Fortran compilers can't build shared libraries, so sometimes we
+# want to build a shared C library and a static Fortran library. If so,
+# pass the -static flag to the library linker.
+@FORTRAN_SHARED_CONDITIONAL_FALSE@AM_LDFLAGS = -static
+
# Source files for the library
#if BUILD_PARALLEL_CONDITIONAL
# PARALLEL_COND_SRC=HDFDmpiof.c HDF5mpio.f90
diff --git a/hl/fortran/test/Makefile.am b/hl/fortran/test/Makefile.am
index 865e91e..a04041b 100644
--- a/hl/fortran/test/Makefile.am
+++ b/hl/fortran/test/Makefile.am
@@ -14,6 +14,14 @@ include $(top_srcdir)/config/commence.am
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
+# Some Fortran compilers can't build shared libraries, so sometimes we
+# need to make sure the Fortran programs link against the static version
+# of the HDF5 library. We do this by passing the -static flag to the linker.
+if FORTRAN_SHARED_CONDITIONAL
+else
+ AM_LDFLAGS=-static
+endif
+
# Our main target, the test programs
TEST_PROG=tstlite tstimage tsttable
check_PROGRAMS=$(TEST_PROG)
diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in
index 93ec1ea..e820541 100644
--- a/hl/fortran/test/Makefile.in
+++ b/hl/fortran/test/Makefile.in
@@ -152,6 +152,8 @@ FCFLAGS = @FCFLAGS@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FILTERS = @FILTERS@
+FORTRAN_SHARED_CONDITIONAL_FALSE = @FORTRAN_SHARED_CONDITIONAL_FALSE@
+FORTRAN_SHARED_CONDITIONAL_TRUE = @FORTRAN_SHARED_CONDITIONAL_TRUE@
FSEARCH_DIRS = @FSEARCH_DIRS@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
@@ -306,6 +308,11 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog dsetf[1-4].h5 f1img.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
+# Some Fortran compilers can't build shared libraries, so sometimes we
+# need to make sure the Fortran programs link against the static version
+# of the HDF5 library. We do this by passing the -static flag to the linker.
+@FORTRAN_SHARED_CONDITIONAL_FALSE@AM_LDFLAGS = -static
+
# Our main target, the test programs
TEST_PROG = tstlite tstimage tsttable
LDADD = $(LIBH5F_HL) $(LIBH5F) $(LIBH5_HL) $(LIBHDF5)