summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2010-09-17 23:09:03 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2010-09-17 23:09:03 (GMT)
commit91565db20993a0bf73b3d32828bb87b8e7d6bf0c (patch)
tree647990cbf3089d4212e4e536fc567a3bed239356 /fortran
parentca71aa92bdea9298ebc516ca984aa28aba0087e4 (diff)
downloadhdf5-91565db20993a0bf73b3d32828bb87b8e7d6bf0c.zip
hdf5-91565db20993a0bf73b3d32828bb87b8e7d6bf0c.tar.gz
hdf5-91565db20993a0bf73b3d32828bb87b8e7d6bf0c.tar.bz2
[svn-r19421] Reorganize compile scripts h5cc.in, h5fc.in and h5c++.in to put LDFLAGS in the correct place and to enable the script user to set and override CFLAGS, CPPFLAGS, CXXFLAGS, FFLAGS, LDFLAGS, and LIBS that take pprecedence over the library paths and compile flags from the hdf5 build.
Tested with h5committest on amani, heiwa, and jam.
Diffstat (limited to 'fortran')
-rwxr-xr-xfortran/src/h5fc.in59
1 files changed, 53 insertions, 6 deletions
diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in
index db44600..cfb3cb4 100755
--- a/fortran/src/h5fc.in
+++ b/fortran/src/h5fc.in
@@ -32,6 +32,24 @@ HL="@HL@"
############################################################################
## ##
+## Things You Can Modify to Override HDF5 Library Build Components: ##
+## ##
+## (Advanced usage - know what you're doing - you're on your own here.) ##
+## The three variables below can be used to insert paths and flags in ##
+## FFLAGS, LDFLAGS, or LIBS in the h5fc compile line: ##
+## $FLINKER $FFLAGS $H5BLD_FFLAGS $F9XSUFFIXFLAG $LDFLAGS $LIBS ##
+## $fmodules $link_objs $link_args $shared_link ##
+## ##
+## These settings can be overriden by setting HDF5_FFLAGS, ##
+## HDF5_LDFLAGS, or HDF5_LIBS in the environment. ##
+## ##
+############################################################################
+FFLAGSBASE=""
+LDFLAGSBASE=""
+LIBSBASE=""
+
+############################################################################
+## ##
## You shouldn't have to modify anything below this line. ##
## ##
############################################################################
@@ -58,14 +76,25 @@ get_output_file="no"
SHOW="eval"
FCBASE="@FC@"
FLINKERBASE="@FC@"
-FFLAGS="@AM_FCFLAGS@ @FCFLAGS@"
+
+# FFLAGS and LDFLAGS are reserved for use by the script user.
+# FLAGS brought from the hdf5 build are put in H5BLD_*FLAGS.
+
+# User's FFLAGS come after their H5BLD counterparts to override
+# them. User's LDFLAGS and $LIBS come just before clibpath and the hdf5
+# libraries in $link_args, followed by any external library paths and libraries
+# from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in from the hdf5 build.
+H5BLD_FFLAGS="@AM_FCFLAGS@ @FCFLAGS@"
F9XMODFLAG="@F9XMODFLAG@"
F9XSUFFIXFLAG="@F9XSUFFIXFLAG@"
-LDFLAGS="@AM_LDFLAGS@ @LDFLAGS@"
-LIBS="@LIBS@"
+H5BLD_LDFLAGS="@AM_LDFLAGS@ @LDFLAGS@"
+H5BLD_LIBS="@LIBS@"
FC="${HDF5_FC:-$FCBASE}"
FLINKER="${HDF5_FLINKER:-$FLINKERBASE}"
+FFLAGS="${HDF5_FFLAGS:-$FFLAGSBASE}"
+LDFLAGS="${HDF5_LDFLAGS:-$LDFLAGSBASE}"
+LIBS="${HDF5_LIBS:-$LIBSBASE}"
USE_SHARED_LIB="${HDF5_USE_SHLIB:-no}"
@@ -92,6 +121,20 @@ usage() {
echo " "
echo " HDF5_FC - use a different Fortran 90 or 95 compiler"
echo " HDF5_FLINKER - use a different linker"
+ echo " HDF5_USE_SHLIB=[yes|no] - use shared or static version of the HDF5 library"
+ echo " [default: no]"
+ echo " "
+ echo " You can also add or change paths and flags to the compile line using"
+ echo " the following environment varibles or by assigning them to their counterparts"
+ echo " in the 'Things You Can Modify to Override...'" section of $prog_name
+ echo " "
+ echo " Variable Current value to be replaced"
+ echo " HDF5_FFLAGS \"$CFLAGSBASE\""
+ echo " HDF5_LDFLAGS \"$LDFLAGSBASE\""
+ echo " HDF5_LIBS \"$LIBSBASE\""
+ echo " "
+ echo " Note that adding library paths to HDF5_LDFLAGS where another hdf5 version"
+ echo " is located may link your program with that other hdf5 library version."
echo " "
exit $EXIT_FAILURE
}
@@ -228,7 +271,7 @@ if test "x$do_compile" = "xyes"; then
fi
- $SHOW $FC $FFLAGS ${F9XSUFFIXFLAG} ${fmodules} $compile_args
+ $SHOW $FC $H5BLD_FFLAGS $FFLAGS ${F9XSUFFIXFLAG} ${fmodules} $compile_args
status=$?
if test "$status" != "0"; then
@@ -297,9 +340,13 @@ if test "x$do_link" = "xyes"; then
# The LIBS are just a bunch of -l* libraries necessary for the HDF5
# module. It's okay if they're included twice in the compile line.
- link_args="$link_args $LIBS"
+ link_args="$link_args $H5BLD_LDFLAGS $H5BLD_LIBS"
- $SHOW $FLINKER $FFLAGS $F9XSUFFIXFLAG $fmodules $link_objs $link_args $shared_link $LDFLAGS
+ # User's FFLAGS come after their H5BLD counterparts to override
+ # them. User's LDFLAGS and $LIBS come just before clibpath and the hdf5
+ # libraries in $link_args, followed by any external library paths and libraries
+ # from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in from the hdf5 build.
+ $SHOW $FLINKER $FFLAGS $H5BLD_FFLAGS $F9XSUFFIXFLAG $LDFLAGS $LIBS $fmodules $link_objs $link_args $shared_link
status=$?
fi