diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2010-10-08 01:55:21 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2010-10-08 01:55:21 (GMT) |
commit | 3c470c9db63424d8a07c1fb789ee8e8c513dd2a6 (patch) | |
tree | 8ce7ec40f5c5e04898281cefa0f72c3e91cf9d66 /tools/misc/h5cc.in | |
parent | 6747ebd9858374ae912b6182024861b1710518c8 (diff) | |
download | hdf5-3c470c9db63424d8a07c1fb789ee8e8c513dd2a6.zip hdf5-3c470c9db63424d8a07c1fb789ee8e8c513dd2a6.tar.gz hdf5-3c470c9db63424d8a07c1fb789ee8e8c513dd2a6.tar.bz2 |
[svn-r19543] Description:
Bring r19411:19542 from trunk to revise_chunks branch.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.4 (amazon) in debug mode
Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
Diffstat (limited to 'tools/misc/h5cc.in')
-rwxr-xr-x | tools/misc/h5cc.in | 73 |
1 files changed, 65 insertions, 8 deletions
diff --git a/tools/misc/h5cc.in b/tools/misc/h5cc.in index c274f3f..a1421a2 100755 --- a/tools/misc/h5cc.in +++ b/tools/misc/h5cc.in @@ -34,6 +34,25 @@ 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 four variables below can be used to insert paths and flags in ## +## CPPFLAGS, CFLAGS, LDFLAGS, or LIBS in the h5cc compile line: ## +## $CLINKER $H5BLD_CPPFLAGS $CPPFLAGS $H5BLD_CFLAGS $CFLAGS $LDFLAGS ## +## $LIBS $clibpath $link_objs $link_args $shared_link ## +## ## +## These settings can be overriden by setting HDF5_CFLAGS, ## +## HDF5_CPPFLAGS, HDF5_LDFLAGS, or HDF5_LIBS in the environment. ## +## ## +############################################################################ +CFLAGSBASE="" +CPPFLAGSBASE="" +LDFLAGSBASE="" +LIBSBASE="" + +############################################################################ +## ## ## You shouldn't have to modify anything below this line. ## ## ## ############################################################################ @@ -62,13 +81,26 @@ get_output_file="no" SHOW="eval" CCBASE="@CC@" CLINKERBASE="@CC@" -CFLAGS="@AM_CFLAGS@ @CFLAGS@" -CPPFLAGS="@AM_CPPFLAGS@ @CPPFLAGS@" -LDFLAGS="@AM_LDFLAGS@ @LDFLAGS@" -LIBS="@LIBS@" + +# CFLAGS, CPPFLAGS and LDFLAGS are reserved for use by the script user. +# FLAGS brought from the hdf5 build are put in H5BLD_*FLAGS. + +# User's CPPFLAGS and CFLAGS come after their H5BLD counterparts to override +# them. User's LDFLAGS come just before clibpath, user's LIBS come after +# $link_objs and before 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_CFLAGS="@AM_CFLAGS@ @CFLAGS@" +H5BLD_CPPFLAGS="@AM_CPPFLAGS@ @CPPFLAGS@" +H5BLD_LDFLAGS="@AM_LDFLAGS@ @LDFLAGS@" +H5BLD_LIBS="@LIBS@" CC="${HDF5_CC:-$CCBASE}" CLINKER="${HDF5_CLINKER:-$CLINKERBASE}" +CFLAGS="${HDF5_CFLAGS:-$CFLAGSBASE}" +CPPFLAGS="${HDF5_CPPFLAGS:-$CPPFLAGSBASE}" +LDFLAGS="${HDF5_LDFLAGS:-$LDFLAGSBASE}" +LIBS="${HDF5_LIBS:-$LIBSBASE}" USE_SHARED_LIB="${HDF5_USE_SHLIB:-no}" @@ -80,6 +112,13 @@ usage() { echo " -echo Show all the shell commands executed" echo " -prefix=DIR Prefix directory to find HDF5 lib/ and include/" echo " subdirectories [default: $prefix]" + # A wonderfully informative "usage" message. + echo "usage: $prog_name [OPTIONS] <compile line>" + echo " OPTIONS:" + echo " -help This help message." + echo " -echo Show all the shell commands executed" + echo " -prefix=DIR Prefix directory to find HDF5 lib/ and include/" + echo " subdirectories [default: $prefix]" echo " -show Show the commands without executing them" echo " -showconfig Show the HDF5 library configuration summary" echo " -shlib Compile with shared HDF5 libraries" @@ -99,6 +138,19 @@ usage() { 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_CPPFLAGS \"$CPPFLAGSBASE\"" + echo " HDF5_CFLAGS \"$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 } @@ -251,7 +303,7 @@ if test "x$do_compile" = "xyes"; then compile_args="-c $compile_args" fi - $SHOW $CC -I$includedir $CPPFLAGS $CFLAGS $compile_args + $SHOW $CC -I$includedir $H5BLD_CPPFLAGS $CPPFLAGS $H5BLD_CFLAGS $CFLAGS $compile_args status=$? if test "$status" != "0"; then @@ -320,9 +372,14 @@ 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" - - $SHOW $CLINKER $CFLAGS $clibpath $link_objs $link_args $shared_link $LDFLAGS + link_args="$link_args $H5BLD_LDFLAGS $H5BLD_LIBS" + + # User's CPPFLAGS and CFLAGS come after their H5BLD counterparts to override + # them. User's LDFLAGS come just before clibpath, user's LIBS come after + # $link_objs and before 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 $CLINKER $H5BLD_CPPFLAGS $CPPFLAGS $H5BLD_CFLAGS $CFLAGS $LDFLAGS $clibpath $link_objs $LIBS $link_args $shared_link status=$? fi |