diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2012-09-11 20:11:44 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2012-09-11 20:11:44 (GMT) |
commit | c16ae673e3324a3151435e3a33c5d96effb61c8c (patch) | |
tree | f4870f8efdd13824dc70140c29a164f5c0ff4708 /configure | |
parent | 89a2c4a7838b8ca741be86c49474f6bca698d3bf (diff) | |
download | hdf5-c16ae673e3324a3151435e3a33c5d96effb61c8c.zip hdf5-c16ae673e3324a3151435e3a33c5d96effb61c8c.tar.gz hdf5-c16ae673e3324a3151435e3a33c5d96effb61c8c.tar.bz2 |
[svn-r22752] Update autotools macros and comment indicators.
Added autotools quotation around parameters
h5committest
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 1159 |
1 files changed, 1010 insertions, 149 deletions
@@ -3227,6 +3227,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +## AM_INIT_AUTOMAKE takes a list of options that should be applied to +## every Makefile.am when automake is run. am__api_version='1.12' # Find a good install program. We prefer a C program (faster), @@ -3760,6 +3762,16 @@ fi AM_BACKSLASH='\' +## AM_MAINTAINER_MODE turns off "rebuild rules" that contain dependencies +## for Makefiles, configure, src/H5config.h, etc. If AM_MAINTAINER_MODE +## is *not* included here, these files will be rebuilt if out of date. +## This is a problem because if users try to build on a machine with +## the wrong versions of autoconf and automake, these files will be +## rebuilt with the wrong versions and bad things can happen. +## Also, CVS doesn't preserve dependencies between timestamps, so +## Makefiles will often think rebuilding needs to occur when it doesn't. +## Developers should './configure --enable-maintainer-mode' to turn on +## rebuild rules. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @@ -3784,9 +3796,26 @@ fi -ac_config_commands="$ac_config_commands default-1" +## ---------------------------------------------------------------------- +## Set prefix default (install directory) to a directory in the build area. +## This allows multiple src-dir builds within one host. +## Run post processing on files created by configure. +## src/H5pubconf.h: +## Generate src/H5pubconf.h from src/H5config.h by prepending H5_ to all +## macro names. This avoid name conflict between HDF5 macro names and those +## generated by another software package that uses the HDF5 library. +## src/libhdf5.settings: +## Remove all lines begun with "#" which are generated by CONDITIONAL's of +## configure. +ac_config_commands="$ac_config_commands pubconf" + + +## It's possible to configure for a host other than the one on which +## configure is currently running by using the --host=foo flag. +## For machines on which HDF5 is often configured, it can be convenient +## to specify the name of the machine rather than its canonical type. case $host_alias in redstorm) host_alias=x86_64-redstorm-linux-gnu @@ -3866,18 +3895,23 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +## H5_CFLAGS (and company) are for CFLAGS that should be used on HDF5, but +## not exported to h5cc (or h5fc, etc.) +## AM_CFLAGS (and company) are for CFLAGS that should be used on HDF5, +## and WILL be exported to h5cc (or h5fc, etc) if set by configure. +## Make sure flags are set to something (otherwise macros may set them later). AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -3889,26 +3923,57 @@ FCFLAGS="${FCFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" +## Configure may need to alter any of the *FLAGS variables in order for +## various checks to work correctly. Save the user's value here so it +## can be restored once all configure checks are complete. saved_user_CFLAGS="$CFLAGS" saved_user_CXXFLAGS="$CXXFLAGS" saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" +## Different compilers may need default libraries. They are specified in +## the config/* files, so we put this statement here so that it'll be +## set by the code which follows... +## DEFAULT_LIBS="" +## Support F9X variable to define Fortran compiler if FC variable is +## not used. This should be deprecated in the future. if test "x" = "x$FC"; then FC=${F9X} fi - - +## ---------------------------------------------------------------------- +## Dump all shell variables values. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking shell variables initial values" >&5 $as_echo_n "checking shell variables initial values... " >&6; } set >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } +## Define all symbol variables used for configure summary. +## EXTERNAL_FILTERS equals all external filters. Default none. +## MPE: whether MPE option is enabled. Default no. +## STATIC_EXEC: whether static-exec is enabled. Default no. +## HDF_FORTRAN: whether Fortran is enabled. Default no. +## HDF_FORTRAN2003: whether Fortran 2003 is enabled. Default no. +## FC: Fortran compiler. +## HDF_CXX: whether C++ is enabled. Default no. +## CXX: C++ compiler. +## HDF5_HL: whether high-level library is enabled. Default is yes. +## GPFS: whether gpfs is enabled. Default no. +## LARGEFILE: whether largefile support is enabled. Default yes. +## INSTRUMENT: whether INSTRUMENT is enabled. No default set here. +## CODESTACK: whether CODESTACK is enabled. Default no. +## HAVE_DMALLOC: whether system has dmalloc support. Default no. +## DIRECT_VFD: whether DIRECT_VFD is enabled. Default no. +## THREADSAFE: whether THREADSAFE is enabled. Default no. +## STATIC_SHARED: whether static and/or shared libraries are requested. +## enable_shared: whether shared lib is enabled. +## enable_static: whether static lib is enabled. +## UNAME_INFO: System information. MPE=no @@ -3932,7 +3997,17 @@ $as_echo "done" >&6; } UNAME_INFO=`uname -a` +## ---------------------------------------------------------------------- +## Some platforms have broken basename, and/or xargs programs. Check +## that it actually does what it's supposed to do. Catch this early +## since configure relies upon them heavily and there's no use continuing +## if it's broken. +## +## Avoid depending upon Character Ranges. +## These are defined by autoconf. +## as_cr_letters='abcdefghijklmnopqrstuvwxyz' +## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename works" >&5 $as_echo_n "checking if basename works... " >&6; } @@ -3954,6 +4029,10 @@ else $as_echo "yes" >&6; } fi +## ---------------------------------------------------------------------- +## Check that the cache file was build on the same host as what we're +## running on now. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cached host" >&5 $as_echo_n "checking for cached host... " >&6; } if ${hdf5_cv_host+:} false; then : @@ -3971,6 +4050,22 @@ elif test $hdf5_cv_host != $host; then as_fn_error $? "config.cache file is invalid" "$LINENO" 5 fi +## ---------------------------------------------------------------------- +## Source any special files that we need. These files normally aren't +## present but can be used by the maintainers to fine tune things like +## turning on debug or profiling flags for the compiler. The search order +## is: +## +## CPU-VENDOR-OS +## VENDOR-OS +## CPU-OS +## CPU-VENDOR +## OS +## VENDOR +## CPU +## +## If the `OS' ends with a version number then remove it. For instance, +## `freebsd3.1' would become `freebsd' case $host_os in aix*) @@ -4027,6 +4122,7 @@ if test "X$host_config" != "Xnone"; then . $host_config fi +## Source any special site-specific file hname="`hostname`" while test -n "$hname"; do file=$srcdir/config/site-specific/host-$hname @@ -4045,16 +4141,28 @@ $as_echo "no" >&6; } test "$hname_tmp" = "$hname" && break done +## ---------------------------------------------------------------------- +## Some built-in configure checks can only see CFLAGS (not AM_CFLAGS), so +## we need to add this in so configure works as intended. We will need to +## reset this value at the end of configure, to preserve the user's settings. CFLAGS="${AM_CFLAGS} ${CFLAGS}" FCFLAGS="${AM_FCFLAGS} ${FCFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" CPPFLAGS="${AM_CPPFLAGS} ${CPPFLAGS}" LDFLAGS="${AM_LDFLAGS} ${LDFLAGS}" +## ---------------------------------------------------------------------- +## Enable dependency tracking unless the configure options or a +## site-specific file told us not to. This prevents configure from +## silently disabling dependencies for some compilers. +## if test -z "${enable_dependency_tracking}"; then enable_dependency_tracking="yes" fi +## ---------------------------------------------------------------------- +## Check for programs. +## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5037,6 +5145,11 @@ fi CC_BASENAME="`echo $CC | cut -f1 -d' ' | xargs basename 2>/dev/null`" +## ---------------------------------------------------------------------------- +## Configure disallows unsupported combinations of options. However, users +## may want to override and build with unsupported combinations for their +## own use. They can use the --enable-unsupported configure flag, which +## ignores any errors from configure due to incompatible flags. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if unsupported combinations of configure options are allowed" >&5 $as_echo_n "checking if unsupported combinations of configure options are allowed... " >&6; } # Check whether --enable-unsupported was given. @@ -5058,6 +5171,9 @@ $as_echo "yes" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like the Fortran interface compiled +## HDF5_INTERFACES="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran interface enabled" >&5 $as_echo_n "checking if Fortran interface enabled... " >&6; } @@ -5074,6 +5190,9 @@ else fi +## ---------------------------------------------------------------------- +## Check if they would like the Fortran 2003 interface compiled +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran 2003 interface enabled" >&5 $as_echo_n "checking if Fortran 2003 interface enabled... " >&6; } # Check whether --enable-fortran2003 was given. @@ -5082,6 +5201,9 @@ if test "${enable_fortran2003+set}" = set; then : fi +## ---------------------------------------------------------------------- +## Check to make sure --enable-fortran is present if --enable-fortran2003 +## was specified if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then echo "no" @@ -5100,9 +5222,15 @@ if test "X$HDF_FORTRAN" = "Xyes"; then HDF5_INTERFACES="$HDF5_INTERFACES fortran" - HAVE_FORTRAN_2003="no" + ## -------------------------------------------------------------------- + ## Default for FORTRAN 2003 compliant compilers + ## + HAVE_FORTRAN_2003="no" HAVE_F2003_REQUIREMENTS="no" + ## -------------------------------------------------------------------- + ## HDF5 integer variables for the H5fortran_types.f90 file. + ## @@ -5112,10 +5240,16 @@ if test "X$HDF_FORTRAN" = "Xyes"; then - AM_FCFLAGS="${AM_FCFLAGS} ${FFLAGS}" + ## -------------------------------------------------------------------- + ## General Fortran flags + ## + AM_FCFLAGS="${AM_FCFLAGS} ${FFLAGS}" FCFLAGS="${FCFLAGS} ${FFLAGS}" - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Fortran source extention + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -5385,7 +5519,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Check for a Fortran 9X compiler and how to include modules. + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -5688,15 +5825,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - F77=$FC + ## It seems that libtool (as of Libtool 1.5.14) is trying to + ## configure itself for Fortran 77. + ## Tell it that our F77 compiler is $FC (actually a F9X compiler) + F77=$FC - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Define wrappers for the C compiler to use Fortran function names + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -6378,8 +6522,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu + ## -------------------------------------------------------------------- + ## See if the compiler will support the "-I." option + ## + ## -------------------------------------------------------------------- + ## See if the fortran compiler supports the intrinsic function "SIZEOF" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic SIZEOF" >&5 $as_echo_n "checking if Fortran compiler supports intrinsic SIZEOF... " >&6; } @@ -6409,6 +6558,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + ## Check to see if -r8 was specified to determine if we need to + ## compile the DOUBLE PRECISION interfaces. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran default REAL is DOUBLE PRECISION" >&5 $as_echo_n "checking if Fortran default REAL is DOUBLE PRECISION... " >&6; } @@ -6449,7 +6600,7 @@ $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - FORTRAN_DEFAULT_REALisDBLE="yes" + FORTRAN_DEFAULT_REALisDBLE="yes" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -6458,6 +6609,8 @@ fi if test "X$HDF_FORTRAN2003" = "Xyes"; then + ## Checking if the compiler supports the required Fortran 2003 features and + ## disable Fortran 2003 if it does not. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 $as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; } @@ -6487,18 +6640,19 @@ else $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 + ## echo $HAVE_FORTRAN_2003 + as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 else + ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" - fi - + fi fi else FC="no" fi +## Change back to the C language ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6531,6 +6685,12 @@ else fi +## ---------------------------------------------------------------------- +## Check if they would like the C++ interface compiled +## +## We need to check for a C++ compiler unconditionally, since +## AC_PROG_CXX defines some macros that Automake 1.9.x uses and will +## miss even if c++ is not enabled. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -7080,6 +7240,7 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + ## this is checked for when AC_HEADER_STDC is done { $as_echo "$as_me:${as_lineno-$LINENO}: checking if c++ interface enabled" >&5 $as_echo_n "checking if c++ interface enabled... " >&6; } @@ -7094,7 +7255,8 @@ if test "X$HDF_CXX" = "Xyes"; then echo "yes" HDF5_INTERFACES="$HDF5_INTERFACES c++" - ac_ext=cpp + ## Change to the C++ language + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -7329,6 +7491,7 @@ else CXX="no" fi +## Change back to the C language ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -7336,6 +7499,10 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu +## ---------------------------------------------------------------------- +## Check if they have Perl installed on their system. We only need Perl +## if they're using a GNU compiler. +## PERL="" if test "X$GCC" = "Xyes"; then for ac_prog in perl @@ -7383,6 +7550,10 @@ done fi +## ---------------------------------------------------------------------- +## Check which archiving tool to use. This needs to be done before +## the AM_PROG_LIBTOOL macro. +## if test -z "$AR"; then for ac_prog in ar xar @@ -7431,6 +7602,8 @@ test -n "$AR" || AR=":" fi +## Export the AR macro so that it will be placed in the libtool file +## correctly. export AR { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 @@ -7467,6 +7640,8 @@ fi +## ---------------------------------------------------------------------- +## Check that the tr utility is working properly. # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 @@ -7515,6 +7690,10 @@ if test "X${TR_TEST}" != "XTEST"; then fi +## ---------------------------------------------------------------------- +## Check that time can be used with srcdir. This is okay on most systems, +## but seems to cause problems on Cygwin. +## The solution on Cygwin is not to record execution time for tests. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if srcdir= and time commands work together" >&5 $as_echo_n "checking if srcdir= and time commands work together... " >&6; } @@ -7532,18 +7711,64 @@ $as_echo "no" >&6; } fi - - - - - +## The following variables are used to distinguish between building a +## serial and parallel library. +## +## HAVE_PARALLEL -- defined in H5config.h if we are building +## a parallel library even if configure wasn't +## able to find some header file or library that +## might be required. This is defined if the +## compiler looks like a parallel compiler (e.g., +## mpicc or mpcc) or if the user explicitly states +## that a parallel library is being built by supplying +## the `--enable-parallel' configure switch. +## +## PARALLEL -- This variable is set to a non-null value if +## configure thinks we're compiling a parallel +## version of the library. +## +## RUNSERIAL -- This is a command which will be prepended to +## the executable name to run the executable using +## a single process. For serial versions of the +## library this will normally be empty. For parallel +## versions it might be something like `mpiexec -n 1'. +## The value of this variable is substituted in *.in +## files. +## +## RUNPARALLEL -- This is a command which will be prepended to +## the executable name to run the executable on +## multiple processors. For the serial library the +## value will normally be the empty string. For +## parallel library it should be something like +## "mpiexec -n \$\${NPROCS:=6}" where NPROCS will +## eventually contain the number of processors on which +## to run the executable (the double dollarsigns are to +## protect the expansion until make executes the +## command). The value of this variable is +## substituted in *.in files. +## + + + + + +## ---------------------------------------------------------------------- +## If the compiler is obviously a parallel compiler then we're building +## a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, +## the name of the compiler might tell us how to run the resulting +## executable. For `mpicc' the executable should be run with `mpiexec' from +## the same directory as mpicc if it exists. +## case "$CC_BASENAME" in mpicc) - PARALLEL=mpicc + ## The mpich compiler. Use mpiexec from the same directory if it + ## exists. + PARALLEL=mpicc { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 $as_echo_n "checking for mpiexec... " >&6; } - cmd="`echo $CC | cut -f1 -d' '`" + ## Find the path where mpicc is located. + cmd="`echo $CC | cut -f1 -d' '`" if (echo $cmd | grep / >/dev/null); then path="`echo $cmd | sed 's/\(.*\)\/.*$/\1/'`" else @@ -7554,7 +7779,8 @@ $as_echo_n "checking for mpiexec... " >&6; } done fi - if test -x $path/mpiexec; then + ## Is there an mpiexec at that path? + if test -x $path/mpiexec; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" @@ -7569,16 +7795,27 @@ $as_echo "none" >&6; } ;; mpcc|mpcc_r) - PARALLEL="$CC_BASENAME" + ## The IBM compiler + PARALLEL="$CC_BASENAME" ;; *) - ;; + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. + ;; esac +## ---------------------------------------------------------------------- +## If the Fortran compiler is obviously a parallel compiler then we're +## building a parallel version of hdf5 and should define HAVE_PARALLEL. +## Furthermore, the name of the compiler might tell us how to run the +## resulting executable. For `mpif90' the executable should be run with +## `mpiexec' from the same directory as mpif90 if it exists. +## if test "X$HDF_FORTRAN" = "Xyes" ; then - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -7586,11 +7823,14 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu case "$FC" in *mpif90*) - PARALLEL=mpif90 + ## The Fortran mpich compiler. Use mpiexec from the same directory + ## if it exists. + PARALLEL=mpif90 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 $as_echo_n "checking for mpiexec... " >&6; } - cmd=`echo $FC |cut -f1 -d' '` + ## Find the path where mpif90 is located. + cmd=`echo $FC |cut -f1 -d' '` if (echo $cmd |grep / >/dev/null); then path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`" else @@ -7601,7 +7841,8 @@ $as_echo_n "checking for mpiexec... " >&6; } done fi - if test -x $path/mpiexec; then + ## Is there an mpiexec at that path? + if test -x $path/mpiexec; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" @@ -7616,14 +7857,18 @@ $as_echo "none" >&6; } ;; *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*) - PARALLEL="$FC" + ## The IBM compiler + PARALLEL="$FC" ;; *) - ;; + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. + ;; esac - ac_ext=c + ## Change to the C language + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -7631,6 +7876,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi +## ----------------------------------------------------------------------------- +## If shared libraries are being used with parallel, disable them, unless the +## user explicity enables them via the '--enable-shared' option. if test "X${enable_shared}" = "X" -a "X${enable_parallel}" = "Xyes"; then echo ' shared libraries disabled in parallel' @@ -7644,6 +7892,10 @@ elif test "X${enable_shared}" = "Xyes" -a "X${PARALLEL}" != "X"; then echo ' shared libraries explicitly enabled by user' fi +## ---------------------------------------------------------------------- +## Fortran libraries are not currently supported on Mac. Disable them. +## (this is overridable with --enable-unsupported). +## H5_FORTRAN_SHARED="no" if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then @@ -7651,6 +7903,7 @@ if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then $as_echo_n "checking if shared Fortran libraries are supported... " >&6; } H5_FORTRAN_SHARED="yes" + ## Disable fortran shared libraries on Mac. (MAM - 03/30/11) case "`uname`" in Darwin*) @@ -7659,6 +7912,7 @@ $as_echo_n "checking if shared Fortran libraries are supported... " >&6; } ;; esac + ## Report results of check(s) if test "X${H5_FORTRAN_SHARED}" = "Xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -7693,6 +7947,9 @@ else fi +## ---------------------------------------------------------------------- +## Disable C++ shared libraries if +DD64 flag is detected. +## H5_CXX_SHARED="no" if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then @@ -7700,12 +7957,14 @@ if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then $as_echo_n "checking if shared C++ libraries are supported... " >&6; } H5_CXX_SHARED="yes" + ## Disable C++ shared libraries if DD64 flag is being used. if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then H5_CXX_SHARED="no" CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." fi + ## Report results of check(s) if test "X${H5_CXX_SHARED}" = "Xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -7739,12 +7998,20 @@ else fi +## ---------------------------------------------------------------------- +## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect +## these versions and add option "-Mx,28,0x8" to the compiler to avoid +## the problem if optimization is enabled. +## if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then echo 'adding compiler flag to avoid optimization problem in pgcc' CC="${CC-cc} -Mx,28,0x8" fi +## ---------------------------------------------------------------------- +## Shared libraries are not currently supported under Cygwin, so configure +## disables them unless --enable-unsupported has been supplied by the user. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then case "`uname`" in @@ -7759,6 +8026,9 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then esac fi +## ---------------------------------------------------------------------- +## Windows won't create DLLs without the following macro. +## enable_win32_dll=yes case $host in @@ -8063,6 +8333,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump +## ---------------------------------------------------------------------- +## Create libtool. If shared/static libraries are going to be enabled +## or disabled, it should happen before these macros. enable_dlopen=yes @@ -21747,6 +22020,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +## ---------------------------------------------------------------------- +## Check if we should install only statically linked executables. +## This check needs to occur after libtool is initialized because +## we check a libtool cache value and may issue a warning based +## on its result. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should install only statically linked executables" >&5 $as_echo_n "checking if we should install only statically linked executables... " >&6; } # Check whether --enable-static_exec was given. @@ -21757,7 +22035,8 @@ fi if test "X$STATIC_EXEC" = "Xyes"; then echo "yes" - if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then + ## Issue a warning if -static flag is not supported. + if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then echo " warning: -static flag not supported on this system; executable won't statically link shared system libraries." fi LT_STATIC_EXEC="-all-static" @@ -21768,12 +22047,19 @@ fi +## Fix up the INSTALL macro if it's a relative path. We want the +## full-path to the binary instead. case "$INSTALL" in *install-sh*) INSTALL='\${top_srcdir}/bin/install-sh -c' ;; esac +## ---------------------------------------------------------------------- +## Some users have reported problems with libtool's use of '-Wl,-rpath' to +## link shared libraries in nondefault directories. Allow users to +## disable embedding the rpath information in the executables and to +## instead solely rely on the information in LD_LIBRARY_PATH. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -Wl,-rpath should be used to link shared libs in nondefault directories" >&5 $as_echo_n "checking if -Wl,-rpath should be used to link shared libs in nondefault directories... " >&6; } # Check whether --enable-sharedlib-rpath was given. @@ -21804,10 +22090,15 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking make" >&5 $as_echo_n "checking make... " >&6; } +## ---------------------------------------------------------------------- +## Sometimes makes think the `.PATH:' appearing before the first rule +## with an action should override the `all' default target. So we have +## to decide what the proper syntax is. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking how make searches directories" >&5 $as_echo_n "checking how make searches directories... " >&6; } while true; do #for break - # The most common method is `VPATH=DIR1 DIR2 ...' + ## The most common method is `VPATH=DIR1 DIR2 ...' cat >maketest <<EOF VPATH=$srcdir/config $srcdir/src $srcdir/bin .c.o: @@ -21826,7 +22117,9 @@ $as_echo "VPATH=DIR1 DIR2 ..." >&6; } break fi - cat >maketest <<EOF + ## The second most common method is like above except with the + ## directories separated by colons. + cat >maketest <<EOF VPATH=$srcdir/config:$srcdir/src:$srcdir/bin .c.o: cp $< H5.o @@ -21844,7 +22137,8 @@ $as_echo "VPATH=DIR1:DIR2:..." >&6; } break fi - cat >maketest <<EOF + ## pmake uses the construct `.PATH: DIR1 DIR2 + cat >maketest <<EOF .PATH: $srcdir/config $srcdir/src $srcdir/bin .c.o: cp $< H5.o @@ -21862,7 +22156,8 @@ $as_echo ".PATH: DIR1 DIR2 ..." >&6; } break fi - SEARCH_RULE='## SEARCH DISABLED: ' + ## No way for make to search directories + SEARCH_RULE='## SEARCH DISABLED: ' SEARCH_SEP=' ' { $as_echo "$as_me:${as_lineno-$LINENO}: result: it doesn't" >&5 $as_echo "it doesn't" >&6; } @@ -21873,8 +22168,13 @@ $as_echo "it doesn't" >&6; } done rm maketest +## ---------------------------------------------------------------------- +## pmake will throw an error if variables are undefined in a Makefile. +## These errors can be changed to warnings using the -V flag. +## AM_MAKEFLAGS="" +## Don't run test if MAKE is defined but is the empty string if test -n "${MAKE-make}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make will build with undefined variables" >&5 @@ -21897,6 +22197,10 @@ $as_echo "no, setting -V flag" >&6; } rm maketest fi +## ---------------------------------------------------------------------- +## Production flags? Save the value in $CONFIG_MODE so we have it for +## the record. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for production mode" >&5 $as_echo_n "checking for production mode... " >&6; } # Check whether --enable-production was given. @@ -21944,6 +22248,9 @@ $as_echo "user-defined" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check for system libraries. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 $as_echo_n "checking for ceil in -lm... " >&6; } if ${ac_cv_lib_m_ceil+:} false; then : @@ -21999,7 +22306,8 @@ fi if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 + ## ...for Solaris + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -22108,6 +22416,9 @@ fi fi +## ---------------------------------------------------------------------- +## Check for system header files. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -22272,6 +22583,11 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi +## ---------------------------------------------------------------------- +## Check for these two functions before the time headers are checked +## for, otherwise they are not detected correctly on Solaris (the +## configure test will fail due to multiply-defined symbols). +## for ac_func in difftime do : ac_fn_c_check_func "$LINENO" "difftime" "ac_cv_func_difftime" @@ -22374,6 +22690,7 @@ fi done +## Unix for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -22426,6 +22743,7 @@ fi done +## Darwin for ac_header in mach/mach_time.h do : ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" @@ -22439,6 +22757,7 @@ fi done +## Windows case "`uname`" in CYGWIN*) for ac_header in io.h sys/timeb.h @@ -22537,7 +22856,11 @@ esac case "$host" in alpha*-dec*-osf*) - for ac_header in sys/sysinfo.h sys/proc.h + ## The <sys/sysinfo.h> and <sys/proc.h> are needed on the DEC + ## Alpha to turn off UAC fixing. We do *not* attempt to + ## locate these files on other systems because there are too + ## many problems with including them. + for ac_header in sys/sysinfo.h sys/proc.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -22552,7 +22875,11 @@ done ;; mips*-sgi*-irix*) - for ac_header in sys/fpu.h + ## The <sys/fpu.h> is needed on the SGI machines to turn off + ## denormalized floating-point values going to zero. We do *not* + ## attempt to locate these files on other systems because there + ## may be problems with including them. + for ac_header in sys/fpu.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/fpu.h" "ac_cv_header_sys_fpu_h" "$ac_includes_default" if test "x$ac_cv_header_sys_fpu_h" = xyes; then : @@ -22578,22 +22905,33 @@ done ;; esac +## ---------------------------------------------------------------------- +## Some platforms require that all symbols are resolved when a library +## is linked. We can use the -no-undefined flag to tell libtool that +## it will be able to build shared libraries on these architectures, +## as it will not do so by default. +## if test "X${enable_shared}" = "Xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool needs -no-undefined flag to build shared libraries" >&5 $as_echo_n "checking if libtool needs -no-undefined flag to build shared libraries... " >&6; } case "`uname`" in CYGWIN*|MINGW*|AIX*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + ## Add in the -no-undefined flag to LDFLAGS for libtool. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } H5_LDFLAGS="$H5_LDFLAGS -no-undefined" ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ## Don't add in anything. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi +## ---------------------------------------------------------------------- +## Test for Largefile support. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if configure should try to set up large file support" >&5 $as_echo_n "checking if configure should try to set up large file support... " >&6; } @@ -22603,11 +22941,14 @@ if test "${enable_largefile+set}" = set; then : fi +## If largefile support is enabled, then set up appropriate compiler options. if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 + ## Check for needed compiler options. This check is pulled drectly + ## from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 @@ -22616,9 +22957,9 @@ else if test "$GCC" != yes; then ac_save_CC=$CC while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## IRIX 6.2 and later do not support large files by default, + ## so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. @@ -22645,16 +22986,16 @@ main () return 0; } _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext - break + break done CC=$ac_save_CC rm -f conftest.$ac_ext @@ -22666,8 +23007,15 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; } CC=$CC$ac_cv_sys_largefile_CC fi + ## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines + ## that might need to be set for largefile support to behave + ## correctly. This macro is defined in acsite.m4 and overrides + ## the version provided by Autoconf (as of v2.65). The custom + ## macro additionally adds the appropriate defines to AM_CPPFLAGS + ## so that later configure checks have them visible. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 + ## Check for _FILE_OFFSET_BITS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 @@ -22753,7 +23101,8 @@ _ACEOF esac rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then + ## Check for _LARGE_FILES + if test "$ac_cv_sys_file_offset_bits" = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : @@ -22841,7 +23190,9 @@ esac rm -rf conftest* fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if large (64-bit) files are supported on this system." >&5 + ## Now actually test to see if we can create large files after we've + ## checked for any needed defines. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if large (64-bit) files are supported on this system." >&5 $as_echo_n "checking if large (64-bit) files are supported on this system.... " >&6; } if ${hdf5_cv_have_lfs+:} false; then : $as_echo_n "(cached) " >&6 @@ -22901,18 +23252,49 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Add necessary defines for Linux Systems. +## case "$host_cpu-$host_vendor-$host_os" in *linux*) - if test "X$LARGEFILE" != "Xno"; then + ## If largefile support is enabled, then make available various + ## LFS-related routines using the following _LARGEFILE*_SOURCE macros. + if test "X$LARGEFILE" != "Xno"; then AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" fi - H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" - - AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + ## Add POSIX support on Linux systems, so <features.h> defines + ## __USE_POSIX, which is required to get the prototype for fdopen + ## defined correctly in <stdio.h>. + ## This flag was removed from h5cc as of 2009-10-17 when it was found + ## that the flag broke compiling netCDF-4 code with h5cc, but kept in + ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen + ## is used only by H5_debug_mask which is used only when debugging in + ## H5_init_library (all in H5.c). When the flag was removed this was + ## the only compile failure noted. + ## This was originally defined as _POSIX_SOURCE which was updated to + ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX + ## functionality so clock_gettime and CLOCK_MONOTONIC are defined + ## correctly. + ## POSIX feature information can be found in the gcc manual at: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" + + ## Also add BSD support on Linux systems, so <features.h> defines + ## __USE_BSD, which is required to get the prototype for strdup + ## defined correctly in <string.h> and snprintf & vsnprintf defined + ## correctly in <stdio.h> + ## Linking to the bsd-compat library is required as per the gcc manual: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + ## however, we do not do this since it breaks the big test on some + ## older platforms. + AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" ;; esac +## Need to add the AM_ and H5_ into CPFLAGS/CPPFLAGS to make them visible +## for configure checks. +## Note: Both will be restored by the end of configure. CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" @@ -23005,6 +23387,9 @@ $as_echo "skipping test for stat64() and fstat64()" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Data types and their sizes. +## ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : @@ -23652,6 +24037,7 @@ _ACEOF +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -23738,6 +24124,7 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## Posix.1g types (C9x) cat >>confdefs.h <<\EOF #include <sys/types.h> EOF @@ -24714,6 +25101,7 @@ _ACEOF +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -24800,6 +25188,9 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## ---------------------------------------------------------------------- +## Check if the dev_t type is a scalar type (must come after the check for +## sys/types.h) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dev_t is scalar" >&5 $as_echo_n "checking if dev_t is scalar... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -24838,6 +25229,11 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Fake --with-xxx option to allow us to create a help message for the +## following --with-xxx options which can take either a =DIR or =INC,LIB +## specifier. +## # Check whether --with-fnord was given. if test "${with_fnord+set}" = set; then : @@ -24845,6 +25241,12 @@ if test "${with_fnord+set}" = set; then : fi +## ---------------------------------------------------------------------- +## Is the dmalloc present? It has a header file `dmalloc.h' and a library +## `-ldmalloc' and their locations might be specified with the `--with-dmalloc' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## # Check whether --with-dmalloc was given. if test "${with_dmalloc+set}" = set; then : @@ -24951,7 +25353,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$dmalloc_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$dmalloc_inc" = "X/usr/include"; then dmalloc_inc="" fi if test "X$dmalloc_lib" = "X/usr/lib"; then @@ -25050,6 +25454,12 @@ fi ;; esac +## ---------------------------------------------------------------------- +## Is the GNU zlib present? It has a header file `zlib.h' and a library +## `-lz' and their locations might be specified with the `--with-zlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## USE_FILTER_DEFLATE="no" # Check whether --with-zlib was given. @@ -25162,7 +25572,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$zlib_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$zlib_inc" = "X/usr/include"; then zlib_inc="" fi if test "X$zlib_lib" = "X/usr/lib"; then @@ -25272,13 +25684,20 @@ $as_echo "#define HAVE_FILTER_DEFLATE 1" >>confdefs.h USE_FILTER_DEFLATE="yes" - if test "X$EXTERNAL_FILTERS" != "X"; then + ## Add "deflate" to external filter list + if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}deflate(zlib)" fi +## ---------------------------------------------------------------------- +## Is the szlib present? It has a header file `szlib.h' and a library +## `-lsz' and their locations might be specified with the `--with-szlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## USE_FILTER_SZIP="no" # Check whether --with-szlib was given. @@ -25386,7 +25805,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$szlib_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$szlib_inc" = "X/usr/include"; then szlib_inc="" fi if test "X$szlib_lib" = "X/usr/lib"; then @@ -25486,10 +25907,14 @@ fi esac if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 + ## SZLIB library is available. Check if it can encode + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 $as_echo_n "checking for szlib encoder... " >&6; } - if test -z "$LD_LIBRARY_PATH"; then + ## Set LD_LIBRARY_PATH so encoder test can find the library and run. + ## Also add LL_PATH substitution to Makefiles so they can use the + ## path as well, for testing examples. + if test -z "$LD_LIBRARY_PATH"; then export LD_LIBRARY_PATH="$szlib_lib" else export LD_LIBRARY_PATH="$szlib_lib:$LD_LIBRARY_PATH" @@ -25547,7 +25972,8 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } fi - if test ${hdf5_cv_szlib_can_encode} = "yes"; then + ## Add "szip" to external filter list + if test ${hdf5_cv_szlib_can_encode} = "yes"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi @@ -25571,6 +25997,7 @@ else fi +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -25657,6 +26084,13 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## ---------------------------------------------------------------------- +## Is the Pthreads library present? It has a header file `pthread.h' and +## a library `-lpthread' and their locations might be specified with the +## `--with-pthread' command-line switch. The value is an include path +## and/or a library path. If the library path is specified then it must +## be preceded by a comma. +## PTHREAD=yes # Check whether --with-pthread was given. @@ -25758,7 +26192,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$pthread_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$pthread_inc" = "X/usr/include"; then pthread_inc="" fi if test "X$pthread_lib" = "X/usr/lib"; then @@ -25922,6 +26358,9 @@ fi ;; esac +## ---------------------------------------------------------------------- +## Enable thread-safe version of library. It requires Pthreads support. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread safe support" >&5 $as_echo_n "checking for thread safe support... " >&6; } # Check whether --enable-threadsafe was given. @@ -25936,7 +26375,8 @@ case "X-$THREADSAFE" in $as_echo "no" >&6; } ;; X-yes) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## Check that we can link a simple Pthread program. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN @@ -25977,6 +26417,10 @@ $as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h fi +## ---------------------------------------------------------------------- +## Check for MONOTONIC_TIMER support (used in clock_gettime). This has +## to be done after any POSIX/BSD defines to ensure that the test gets +## the correct POSIX level on linux. ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include <time.h> " if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then : @@ -25986,14 +26430,19 @@ else fi +## ---------------------------------------------------------------------- +## How does one figure out the local time zone? Anyone know of a +## Posix way to do this? +## +## First check if `struct tm' has a `tm_gmtoff' member. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tm_gmtoff in struct tm" >&5 $as_echo_n "checking for tm_gmtoff in struct tm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/time.h> -#include <time.h> + #include <sys/time.h> + #include <time.h> #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26014,7 +26463,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26022,13 +26471,14 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## check if `struct tm' has a `__tm_gmtoff' member. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __tm_gmtoff in struct tm" >&5 $as_echo_n "checking for __tm_gmtoff in struct tm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/time.h> -#include <time.h> + #include <sys/time.h> + #include <time.h> #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26049,7 +26499,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE___TM_GMTOFF 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26057,6 +26507,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## Check whether the global variable `timezone' is defined. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5 $as_echo_n "checking for global timezone variable... " >&6; } @@ -26091,7 +26542,7 @@ if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26102,6 +26553,7 @@ rm -f core conftest.err conftest.$ac_objext \ ;; esac +## Check whether `struct timezone' is defined. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : @@ -26225,9 +26677,9 @@ $as_echo_n "checking for struct timezone... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/types.h> -#include <sys/time.h> -#include <time.h> + #include <sys/types.h> + #include <sys/time.h> + #include <time.h> #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26248,8 +26700,8 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h -have_struct_tz="yes" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + have_struct_tz="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26257,6 +26709,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## If gettimeofday() is going to be used, make sure it uses the timezone struct if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday() gives timezone" >&5 @@ -26312,12 +26765,15 @@ $as_echo "no" >&6; } fi fi +## ---------------------------------------------------------------------- +## Does the struct stat have the st_blocks field? This field is not Posix. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blocks in struct stat" >&5 $as_echo_n "checking for st_blocks in struct stat... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <sys/stat.h> + #include <sys/stat.h> #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26338,7 +26794,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STAT_ST_BLOCKS 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26346,6 +26802,9 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## How do we figure out the width of a tty in characters? +## for ac_func in _getvideoconfig gettextinfo GetConsoleScreenBufferInfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -26396,7 +26855,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_VIDEOCONFIG 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26429,7 +26888,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_TEXT_INFO 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26462,7 +26921,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TIOCGWINSZ 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26495,7 +26954,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TIOCGETD 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26504,6 +26963,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Check for functions. +## for ac_func in alarm BSDgettimeofday fork frexpf frexpl do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -26577,6 +27039,9 @@ fi done +## Check for vsnprintf() separately, so we can detect situations where it +## doesn't return the correct size for formatted strings that are too large +## for the buffer provided for ac_func in vsnprintf do : ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" @@ -26584,7 +27049,18 @@ if test "x$ac_cv_func_vsnprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 + ## Check if vsnprintf() returns correct size for strings that don't fit + ## into the size allowed. If vsnprintf() works correctly on this platform, + ## it should return a value of 42 for the test below + ## + ## Note that vsnprintf fails in two different ways: + ## - In IRIX64, calls to vnsprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return the size of the buffer minus one. + ## - In HP/UX, calls to vsnprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return (-1) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 $as_echo_n "checking if vsnprintf returns correct value... " >&6; } if ${hdf5_cv_vsnprintf_works+:} false; then : @@ -26649,6 +27125,11 @@ fi done +## ---------------------------------------------------------------------- +## Check that a lone colon can be used as an argument +## This is not true on Cray X1, which interprets a lone colon as a +## system command. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lone colon can be used as an argument" >&5 $as_echo_n "checking if lone colon can be used as an argument... " >&6; } if ${hdf5_cv_lone_colon+:} false; then : @@ -26676,6 +27157,9 @@ $as_echo "$hdf5_cv_lone_colon" >&6; } H5_LONE_COLON="$hdf5_cv_lone_colon" +## ---------------------------------------------------------------------- +## Check compiler characteristics +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : @@ -26833,7 +27317,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_ATTRIBUTE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26866,7 +27350,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_C99_FUNC 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26898,7 +27382,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_FUNCTION 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26938,7 +27422,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_C99_DESIGNATED_INITIALIZER 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26946,12 +27430,21 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Try to figure out how to print `long long'. Some machines use `%lld' +## and others use `%qd'. There may be more! The final `l' is a +## default in case none of the others work. +## Need to patch up LD_LIBRARY_PATH so that the execution can find all +## the dynamic library. The correct way to do it should be updating +## LD_LIBRARY_PATH along with LDFLAGS or do it with the AC_TRY_RUN macro. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print long long" >&5 $as_echo_n "checking how to print long long... " >&6; } if ${hdf5_cv_printf_ll+:} false; then : $as_echo_n "(cached) " >&6 else - LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $AM_LDFLAGS $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`" + +LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $AM_LDFLAGS $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`" export LD_LIBRARY_PATH for hdf5_cv_printf_ll in l ll L q unknown; do @@ -26961,17 +27454,17 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> -int main(void) -{ + int main(void) + { char *s = malloc(128); long long x = (long long)1048576 * (long long)1048576; sprintf(s,"%${hdf5_cv_printf_ll}d",x); exit(strcmp(s,"1099511627776")); -} + } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -26984,6 +27477,7 @@ fi done fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: %${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&5 $as_echo "%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&6; } @@ -26992,6 +27486,10 @@ cat >>confdefs.h <<_ACEOF _ACEOF +## ---------------------------------------------------------------------- +## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) +## is supported on this system +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Threads support system scope" >&5 $as_echo_n "checking Threads support system scope... " >&6; } if ${hdf5_cv_system_scope_threads+:} false; then : @@ -27006,20 +27504,20 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if STDC_HEADERS -#include <stdlib.h> -#include <pthread.h> -#endif + #if STDC_HEADERS + #include <stdlib.h> + #include <pthread.h> + #endif -int main(void) -{ - pthread_attr_t attribute; - int ret; + int main(void) + { + pthread_attr_t attribute; + int ret; - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); -} + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); + } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -27045,6 +27543,9 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Checking to see if GPFS is available on this filesystem +## # Check whether --enable-gpfs was given. if test "${enable_gpfs+set}" = set; then : enableval=$enable_gpfs; @@ -27087,14 +27588,14 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_GPFS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBS="$LIBS -lgpfs" - GPFS="yes" + LIBS="$LIBS -lgpfs" + GPFS="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - GPFS="no" + GPFS="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi @@ -27110,6 +27611,10 @@ $as_echo "suppressed" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Turn on debugging by setting compiler flags +## This must come after the enable-production since it depends on production. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for debug flags" >&5 $as_echo_n "checking for debug flags... " >&6; } # Check whether --enable-debug was given. @@ -27118,6 +27623,7 @@ if test "${enable_debug+set}" = set; then : fi +## Default to no if producton is enabled if test "X-$DEBUG_PKG" = X- ; then if test "$enable_production" = yes ; then DEBUG_PKG=no @@ -27159,6 +27665,9 @@ if test -n "$DEBUG_PKG"; then done fi +## ---------------------------------------------------------------------- +## Check if they would like the function stack support compiled in +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether function stack tracking is enabled" >&5 $as_echo_n "checking whether function stack tracking is enabled... " >&6; } # Check whether --enable-codestack was given. @@ -27183,6 +27692,9 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like the metadata trace file code compiled in +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether metadata trace file code is enabled" >&5 $as_echo_n "checking whether metadata trace file code is enabled... " >&6; } # Check whether --enable-metadata-trace-file was given. @@ -27207,6 +27719,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Enable tracing of the API +## This must come after the enable-debug since it depends on debug. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for API tracing" >&5 $as_echo_n "checking for API tracing... " >&6; }; @@ -27216,6 +27732,7 @@ if test "${enable_trace+set}" = set; then : fi +## Default to no if debug is disabled if test "X-$TRACE" = X- ; then if test -z "$DEBUG_PKG" ; then TRACE=no @@ -27239,6 +27756,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Enable instrumenting of the library's internal operations +## This must come after the enable-debug since it depends on debug. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for instrumented library" >&5 $as_echo_n "checking for instrumented library... " >&6; }; @@ -27248,6 +27769,7 @@ if test "${enable_instrument+set}" = set; then : fi +## Default to no if debug is disabled if test "X-$INSTRUMENT" = X- ; then if test -z "$DEBUG_PKG" ; then INSTRUMENT=no @@ -27272,6 +27794,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like to securely clear file buffers before they are +## written. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to clear file buffers" >&5 $as_echo_n "checking whether to clear file buffers... " >&6; } @@ -27297,6 +27823,12 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like to use a memory checking tool (like valgrind's +## 'memcheck' tool, or Rational Purify, etc) and the library should be +## more scrupulous with it's memory operations. Enabling this also +## disables the library's free space manager code. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a memory checking tool will be used" >&5 $as_echo_n "checking whether a memory checking tool will be used... " >&6; } @@ -27322,6 +27854,7 @@ $as_echo "no" >&6; } ;; esac +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -27408,24 +27941,40 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## What header files and libraries do we have to look for for parallel +## support? For the most part, search paths are already specified with +## CPPFLAGS and LDFLAGS or are known to the compiler. If the user says +## `--disable-parallel' but specifies a known parallel compiler (like mpicc +## or mpcc) then parallel support is enabled but configure doesn't search +## for any parallel header files or libraries. +## # Check whether --enable-parallel was given. if test "${enable_parallel+set}" = set; then : enableval=$enable_parallel; fi +## The --enable-parallel flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${HDF_CXX}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then as_fn_error $? "--enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## --enable-parallel is also incompatible with --enable-threadsafe, unless +## --enable-unsupported has been specified on the configure line. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${THREADSAFE}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then as_fn_error $? "--enable-threadsafe and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## It's possible to build in parallel by specifying a parallel compiler +## without using the --enable-parallel flag. This isn't allowed with +## C++ or threadsafe, either, unless the --enable-unsupported flag +## has also been specified. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${PARALLEL}" != "X" -a "X${enable_cxx}" = "Xyes" ; then as_fn_error $? "An MPI compiler is being used; --enable-cxx is not allowed. Use --enable-unsupported to override this error." "$LINENO" 5 @@ -27439,16 +27988,23 @@ fi $as_echo_n "checking for parallel support files... " >&6; } case "X-$enable_parallel" in X-|X-no|X-none) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 + ## Either we are not compiling for parallel or the header and + ## library files and locations are known to the compiler (this is + ## the case for a correct installation of mpicc for instance). + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 $as_echo "skipped" >&6; } ;; X-yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 + ## We want to compile a parallel library with a compiler that + ## may already know how to link with MPI and MPI-IO. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 $as_echo "provided by compiler" >&6; } PARALLEL=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## Try link a simple MPI program. If fail, try again with -lmpi and + ## -lmpich. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN @@ -27470,8 +28026,7 @@ _ACEOF if ac_fn_c_try_link "$LINENO"; then : else - \ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } if ${ac_cv_lib_mpi_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 @@ -27523,8 +28078,7 @@ _ACEOF LIBS="-lmpi $LIBS" else - \ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 $as_echo_n "checking for MPI_Init in -lmpich... " >&6; } if ${ac_cv_lib_mpich_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 @@ -27585,7 +28139,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test "X$PARALLEL" = "Xyes"; then + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. + if test "X$PARALLEL" = "Xyes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27669,13 +28225,15 @@ rm -f core conftest.err conftest.$ac_objext \ fi if test "X$HDF_FORTRAN" = "Xyes"; then - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - cat > conftest.$ac_ext <<_ACEOF + ## Try link a simple MPI program. If fail, try again with -lmpi. + cat > conftest.$ac_ext <<_ACEOF program main include 'mpif.h' @@ -27738,7 +28296,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test "X$PARALLEL" = "Xyes"; then + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. + if test "X$PARALLEL" = "Xyes"; then cat > conftest.$ac_ext <<_ACEOF program main @@ -27803,7 +28363,8 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi - ac_ext=c + ## Change to the C language + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -27811,8 +28372,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi - if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - for path in `echo $PATH | ${TR} ":" " "`; do + ## Set RUNPARALLEL to mpiexec if not set yet. + ## Check for building on Cray if RUNPARALLEL is not yet set by checking + ## for 'aprun' command (which is the parallel job launcher, like mpiexec). + if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then + ## Find the path where aprun is located. + for path in `echo $PATH | ${TR} ":" " "`; do if test -x $path/aprun; then RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}" break; @@ -27820,7 +28385,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu done fi - if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then + ## Set RUNPARALLEL to mpiexec if not set yet. + if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" fi ;; @@ -27832,16 +28398,22 @@ $as_echo "error" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Print some other parallel information and do some sanity checks. +## ADD_PARALLEL_FILES="no" if test -n "$PARALLEL"; then - TESTPARALLEL=testpar + ## The 'testpar' directory should participate in the build + TESTPARALLEL=testpar + ## We are building a parallel library $as_echo "#define HAVE_PARALLEL 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 + ## Display what we found about running programs + { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 $as_echo_n "checking prefix for running on one processor... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNSERIAL" >&5 $as_echo "$RUNSERIAL" >&6; } @@ -27850,7 +28422,8 @@ $as_echo_n "checking prefix for running in parallel... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNPARALLEL" >&5 $as_echo "$RUNPARALLEL" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO program can be linked" >&5 + ## Check that we can link a simple MPI and MPI-IO application + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO program can be linked" >&5 $as_echo_n "checking whether a simple MPI-IO program can be linked... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27882,11 +28455,15 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test -z "$RUNPARALLEL"; then + ## There *must* be some way to run in parallel even if it's just the + ## word `none'. + if test -z "$RUNPARALLEL"; then as_fn_error $? "no way to run a parallel program" "$LINENO" 5 fi - if test "X$RUNSERIAL" = "Xnone"; then + ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with + ## the empty string. + if test "X$RUNSERIAL" = "Xnone"; then RUNSERIAL="" fi if test "X$RUNPARALLEL" = "Xnone"; then @@ -27967,7 +28544,13 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi - MPE=yes + ## -------------------------------------------------------------------- + ## Do we want MPE instrumentation feature on? + ## + ## This must be done after enable-parallel is checked since it depends + ## on a mpich compiler. + ## + MPE=yes # Check whether --with-mpe was given. if test "${with_mpe+set}" = set; then : @@ -28125,7 +28708,9 @@ fi ;; esac - if test "X$mpe_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$mpe_inc" = "X/usr/include"; then mpe_inc="" fi if test "X$mpe_lib" = "X/usr/lib"; then @@ -28405,7 +28990,13 @@ $as_echo "#define HAVE_MPE 1" >>confdefs.h fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_set_size works for files over 2GB" >&5 + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_set_size() function + ## works with files over 2GB, unless it's already set in the cache. + ## (This flag should be set for all machines, except for ASCI Red, where + ## the cache value is set in it's config file) + ## + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_set_size works for files over 2GB" >&5 $as_echo_n "checking if MPI_File_set_size works for files over 2GB... " >&6; } if ${hdf5_cv_mpi_file_set_size_big+:} false; then : $as_echo_n "(cached) " >&6 @@ -28425,7 +29016,14 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } fi - # Check whether --enable-mpi-size was given. + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_get_size() function + ## works. The default is enabled unless the user knows the function + ## doesn't work on the system and disables it. (This flag should be set + ## for all machines except for SGI Altix Propack 4 where the function + ## doesn't return correct file size.) + ## + # Check whether --enable-mpi-size was given. if test "${enable_mpi_size+set}" = set; then : enableval=$enable_mpi_size; MPI_GET_SIZE=$enableval fi @@ -28452,6 +29050,14 @@ $as_echo "#define HAVE_MPI_GET_SIZE 1" >>confdefs.h esac fi +## ---------------------------------------------------------------------- +## Turn on internal I/O filters by setting macros in header files +## Internal I/O filters are contained entirely within the library and do +## not depend on external headers or libraries. The shuffle filter is +## an example of an internal filter, while the gzip filter is an example of +## an external filter. Each external filter is controlled with an +## "--with-foo=" configure flag. +## USE_FILTER_SHUFFLE="no" USE_FILTER_FLETCHER32="no" @@ -28465,6 +29071,7 @@ if test "${enable_filters+set}" = set; then : fi +## Eventually: all_filters="shuffle,foo,bar,baz" all_filters="shuffle,fletcher32,nbit,scaleoffset" case "X-$FILTERS" in X-|X-all) @@ -28485,7 +29092,11 @@ esac if test -n "$FILTERS"; then for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do - if test $filter = "SHUFFLE"; then + ## ------------------------------------------------------------------ + ## Have to use separate 'if' construct for each filter, so that + ## autoheader can detect the AC_DEFINE for each one... + ## + if test $filter = "SHUFFLE"; then $as_echo "#define HAVE_FILTER_SHUFFLE 1" >>confdefs.h @@ -28512,12 +29123,19 @@ $as_echo "#define HAVE_FILTER_SCALEOFFSET 1" >>confdefs.h done fi +## ---------------------------------------------------------------------- +## This is defined only when we're using CodeWarrior, since it has a +## broken "open()" call. +# if test 1 = 2; then $as_echo "#define NO_SHARED_WRITING 1" >>confdefs.h fi +## -------------------------------------------------------------------------- +## Should the Default Virtual File Driver be compiled? +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Default Virtual File Driver definition" >&5 $as_echo_n "checking for Default Virtual File Driver definition... " >&6; } @@ -28554,6 +29172,9 @@ _ACEOF fi +## ---------------------------------------------------------------------- +## Check if Direct I/O driver is enabled by --enable-direct-vfd +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Direct Virtual File Driver support" >&5 $as_echo_n "checking for Direct Virtual File Driver support... " >&6; } @@ -28654,6 +29275,12 @@ else fi +## ---------------------------------------------------------------------- +## Decide whether the presence of user's exception handling functions is +## checked and data conversion exceptions are returned. This is mainly +## for the speed optimization of hard conversions. Soft conversions can +## actually benefit little. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether exception handling functions is checked during data conversions" >&5 $as_echo_n "checking whether exception handling functions is checked during data conversions... " >&6; } # Check whether --enable-dconv-exception was given. @@ -28675,6 +29302,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Decide whether the data accuracy has higher priority during data +## conversions. If not, some hard conversions will still be prefered even +## though the data may be wrong (for example, some compilers don't +## support denormalized floating values) to maximize speed. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether data accuracy is guaranteed during data conversions" >&5 $as_echo_n "checking whether data accuracy is guaranteed during data conversions... " >&6; } # Check whether --enable-dconv-accuracy was given. @@ -28696,6 +29329,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## denormalized floating-point values. +## (This flag should be set for all machines, except for the Crays, where +## the cache value is set in it's config file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting denormalized floating-point values is possible" >&5 $as_echo_n "checking if converting denormalized floating-point values is possible... " >&6; } if ${hdf5_cv_convert_denormal_float+:} false; then : @@ -28716,6 +29355,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## floating-point to long long values. +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting floating-point values to long long is not working" >&5 $as_echo_n "checking if converting floating-point values to long long is not working... " >&6; } if ${hdf5_cv_convert_float_llong_not_works+:} false; then : @@ -28736,6 +29381,12 @@ else $as_echo "false" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine has window style pathname, +## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the machine has window style path name" >&5 $as_echo_n "checking if the machine has window style path name... " >&6; } @@ -28753,6 +29404,13 @@ $as_echo "no" >&6; } ;; esac +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## long double to integers accurately. This flag should be set "yes" for +## all machines except all SGIs. For SGIs, some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5 $as_echo_n "checking if converting from long double to integers is accurate... " >&6; } @@ -28778,6 +29436,13 @@ else $as_echo "no" >&6; } fi +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can do conversion from +## long double to integers regardless of accuracy. This flag should be +## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the +## compiler has 'floating exception' when converting 'long double' to all +## integers except 'unsigned long long'. Other HP-UX systems are unknown +## yet. (1/8/05 - SLU) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers works" >&5 $as_echo_n "checking if converting from long double to integers works... " >&6; } @@ -28844,6 +29509,13 @@ else $as_echo "no" >&6; } fi +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## integers to long double. (This flag should be set "yes" for all +## machines except all SGIs, where some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting from integers to long double" >&5 $as_echo_n "checking if accurately converting from integers to long double... " >&6; } @@ -28869,6 +29541,14 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned long' to 'float' values. +## (This flag should be set for all machines, except for Pathscale compiler +## on Sandia's Linux machine where the compiler interprets 'unsigned long' +## values as negative when the first bit of 'unsigned long' is on during +## the conversion to float.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5 $as_echo_n "checking if accurately converting unsigned long to float values... " >&6; } @@ -28937,6 +29617,14 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned (long) long' values to 'float' and 'double' values. +## (This flag should be set for all machines, except for the SGIs, where +## the cache value is set in the config/irix6.x config file) and Solaris +## 64-bit machines, where the short program below tests if round-up is +## correctly handled. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5 $as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; } @@ -29044,6 +29732,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float' or 'double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for PGI compiler +## where round-up happens when the fraction of float-point value is greater +## than 0.5. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately roundup converting floating-point to unsigned long long values" >&5 $as_echo_n "checking if accurately roundup converting floating-point to unsigned long long values... " >&6; } @@ -29100,6 +29795,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float', 'double' or 'long double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for HP-UX machines +## where the maximal number for unsigned long long is 0x7fffffffffffffff +## during conversion. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if right maximum converting floating-point to unsigned long long values" >&5 $as_echo_n "checking if right maximum converting floating-point to unsigned long long values... " >&6; } @@ -29163,6 +29865,11 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to 'unsigned int' values. (This flag should be set for +## all machines, except for some Intel compilers on some Linux.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to unsigned int values" >&5 $as_echo_n "checking if correctly converting long double to unsigned int values... " >&6; } @@ -29220,6 +29927,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'unsigned long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling unsigned long long to floating-point typecasts work" >&5 $as_echo_n "checking if compiling unsigned long long to floating-point typecasts work... " >&6; } if ${hdf5_cv_ullong_to_fp_cast_works+:} false; then : @@ -29240,6 +29954,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5 $as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; } if ${hdf5_cv_llong_to_fp_cast_works+:} false; then : @@ -29260,6 +29981,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can convert from +## 'unsigned long long' to 'long double' without precision loss. +## (This flag should be set for all machines, except for FreeBSD(sleipnir) +## where the last 2 bytes of mantissa are lost when compiler tries to do +## the conversion, and Cygwin where compiler doesn't do rounding correctly.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting unsigned long long to long double with precision" >&5 $as_echo_n "checking if converting unsigned long long to long double with precision... " >&6; } @@ -29377,6 +30105,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle overflow converting +## all floating-point to all integer types. +## (This flag should be set for all machines, except for Cray X1 where +## floating exception is generated when the floating-point value is greater +## than the maximal integer value). +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if overflows normally converting floating-point to integer values" >&5 $as_echo_n "checking if overflows normally converting floating-point to integer values... " >&6; } @@ -29427,6 +30162,15 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm to convert +## 'long double' to '(unsigned) long' values. (This flag should only be set for +## the IBM Power6 Linux. When the bit sequence of long double is +## 0x4351ccf385ebc8a0bfcc2a3c3d855620, the converted value of (unsigned)long +## is 0x004733ce17af227f, not the same as the library's conversion to 0x004733ce17af2282. +## The machine's conversion gets the correct value. We define the macro and disable +## this kind of test until we figure out what algorithm they use. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert long double to (unsigned) long values" >&5 $as_echo_n "checking if using special algorithm to convert long double to (unsigned) long values... " >&6; } @@ -29524,6 +30268,14 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm +## to convert some values of '(unsigned) long' to 'long double' values. +## (This flag should be off for all machines, except for IBM Power6 Linux, +## when the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff..., +## ..., 7fffff..., the compiler uses a unknown algorithm. We define a +## macro and skip the test for now until we know about the algorithm. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert (unsigned) long to long double values" >&5 $as_echo_n "checking if using special algorithm to convert (unsigned) long to long double values... " >&6; } @@ -29623,6 +30375,15 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to '(unsigned) long long' values. (This flag should be set for +## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence +## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long +## start to go wrong on these two machines. Adjusting it higher to +## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted +## values wildly wrong. This test detects this wrong behavior and disable the test. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5 $as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; } @@ -29704,6 +30465,13 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## '(unsigned) long long' to 'long double' values. (This flag should be set for +## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., +## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice +## as big as they should be. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5 $as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; } @@ -29788,6 +30556,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine generates bad code +## for the H5V_log2_gen() routine in src/H5Vprivate.h +## (This flag should be set to no for all machines, except for SGI IRIX64, +## where the cache value is set to yes in it's config file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bad code for log2 routine is generated" >&5 $as_echo_n "checking if bad code for log2 routine is generated... " >&6; } if ${hdf5_cv_bad_log2_code_generated+:} false; then : @@ -29808,19 +30582,28 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set some variables for general configuration information to be saved +## and installed with the libraries. +## +## HDF5 version from the first line of the README.txt file. H5_VERSION="`cut -d' ' -f3 $srcdir/README.txt | head -1`" +## Configuration date CONFIG_DATE="`date`" +## User doing the configuration CONFIG_USER="`whoami`@`hostname`" if test -n "$ORGANIZATION"; then CONFIG_USER="$CONFIG_USER at $ORGANIZATION" fi +## Configuration mode (production, development, profile, etc) saved above. +## Byte sex from the AC_C_BIGENDIAN macro. if test "X$ac_cv_c_bigendian" = "Xyes"; then BYTESEX="big-endian" @@ -29836,9 +30619,13 @@ else fi +## Parallel support? (set above except empty if none) PARALLEL=${PARALLEL:-no} +## Compiler with version information. This consists of the full path +## name of the compiler and the reported version number. +## Strip anything that looks like a flag off of $CC CC_NOFLAGS=`echo $CC | sed 's/ -.*//'` if `echo $CC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29857,6 +30644,7 @@ if test -n "$cc_version_info"; then fi +## Strip anything that looks like a flag off of $CC FC_NOFLAGS=`echo $FC | sed 's/ -.*//'` if `echo $FC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29875,6 +30663,7 @@ if test -n "$fc_version_info"; then fi +## Strip anything that looks like a flag off of $CC CXX_NOFLAGS=`echo $CXX | sed 's/ -.*//'` if `echo $CXX_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29892,6 +30681,12 @@ if test -n "$cxx_version_info"; then CXX_VERSION="$CXX_VERSION ( $cxx_version_info)" fi +## ---------------------------------------------------------------------- +## Where is the root of the source tree. Give an absolute address so +## we can find it no matter which directory of the distribution is our +## current directory. The built-in pwd fails on some systems, but the +## /bin/pwd version works OK. +## if test -x /bin/pwd; then pwd=/bin/pwd else @@ -29899,8 +30694,16 @@ else fi ROOT="`$pwd`" +## ---------------------------------------------------------------------- +## Move any compiler-specific libraries into the main LIBS varaible. +## LIBS="$DEFAULT_LIBS $LIBS" +## ---------------------------------------------------------------------- +## Determine the runtime libraries we may need to include in the +## libtools command so that executables will find the correct dynamic +## libraries. +## DYNAMIC_DIRS="" if test -n "$AM_LDFLAGS $LDFLAGS"; then @@ -29910,7 +30713,9 @@ if test -n "$AM_LDFLAGS $LDFLAGS"; then d="`echo $d | sed -e 's/-L//g'`" case "$d" in .*) - d=${ROOT}/$d + ## If the path isn't absolute, make it so by + ## prepending the ROOT directory to it. + d=${ROOT}/$d ;; esac DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" @@ -29924,7 +30729,9 @@ if test -n "$AM_CPPFLAGS"; then for d in $AM_CPPFLAGS ; do case "$d" in -I.*) - d="`echo $d | sed -e 's/-I//g'`" + ## If the path isn't absolute, make it so by prepending + ## the ROOT directory to it. + d="`echo $d | sed -e 's/-I//g'`" d="-I${ROOT}/${d}" ;; esac @@ -29933,9 +30740,12 @@ if test -n "$AM_CPPFLAGS"; then AM_CPPFLAGS=$TEMP_CPPFLAGS fi +## ---------------------------------------------------------------------- +## Check if they would like the High Level library compiled +## HL="" -# name of fortran folder inside "hl", if FORTRAN compile is requested +## name of fortran folder inside "hl", if FORTRAN compile is requested HL_FOR="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5 $as_echo_n "checking if high level library is enabled... " >&6; } @@ -29957,6 +30767,11 @@ else echo "no" fi +## ---------------------------------------------------------------------- +## Some programs shouldn't be built by default (e.g., programs to generate +## data files used by tests, some optional tests). +## Check if they want such programs built anyway. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional programs should be built" >&5 $as_echo_n "checking additional programs should be built... " >&6; } # Check whether --enable-build-all was given. @@ -29981,6 +30796,9 @@ else fi +## ---------------------------------------------------------------------- +## Enable deprecated public API symbols +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if deprecated public symbols are available" >&5 $as_echo_n "checking if deprecated public symbols are available... " >&6; }; @@ -30008,6 +30826,9 @@ $as_echo "#define NO_DEPRECATED_SYMBOLS 1" >>confdefs.h ;; esac +## -------------------------------------------------------------------------- +## Which version of the public APIs should the 'base' versioned symbols use? +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking which version of public symbols to use by default" >&5 @@ -30040,12 +30861,19 @@ else as_fn_error $? "invalid version of public symbols given" "$LINENO" 5 fi +## It's an error to try to disable deprecated public API symbols while +## choosing an older version of the public API as the default. However, +## if the user insists on doing this via the --enable-unsupported configure +## flag, we'll let them. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${DEFAULT_API_VERSION}" != "Xv110" -a "X${DEPRECATED_SYMBOLS}" = "Xno" ; then as_fn_error $? "Removing old public API symbols not allowed when using them as default public API symbols. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## ---------------------------------------------------------------------- +## Enable strict file format checks +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Whether to perform strict file format checks" >&5 $as_echo_n "checking Whether to perform strict file format checks... " >&6; }; @@ -30055,6 +30883,7 @@ if test "${enable_strict_format_checks+set}" = set; then : fi +## Default to yes if debug is enabled if test "X-$STRICT_CHECKS" = X- ; then if test -z "$DEBUG_PKG" ; then STRICT_CHECKS=no @@ -30080,6 +30909,9 @@ $as_echo "no" >&6; } esac +## ---------------------------------------------------------------------- +## Enable embedded library information +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Whether to have library information embedded in the executables" >&5 $as_echo_n "checking Whether to have library information embedded in the executables... " >&6; } # Check whether --enable-embedded-libinfo was given. @@ -30102,6 +30934,9 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Check if pointer alignments are enforced +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alignment restrictions are strictly enforced" >&5 $as_echo_n "checking if alignment restrictions are strictly enforced... " >&6; } if test "$cross_compiling" = yes; then : @@ -30183,6 +31018,8 @@ fi +## ---------------------------------------------------------------------- +## Restore user's CFLAGS. CFLAGS="$saved_user_CFLAGS" FCFLAGS="$saved_user_FCFLAGS" CXXFLAGS="$saved_user_CXXFLAGS" @@ -30190,6 +31027,9 @@ CPPFLAGS="$saved_user_CPPFLAGS" LDFLAGS="$saved_user_LDFLAGS" +## ---------------------------------------------------------------------- +## Create automake conditionals to tell automake makefiles which directories +## need to be compiled if test "X$HDF_CXX" = "Xyes"; then BUILD_CXX_CONDITIONAL_TRUE= @@ -30225,26 +31065,37 @@ fi +## ---------------------------------------------------------------------- +## Build the Makefiles. +## +## The directory search list SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH +## We don't need to say when we're entering directories if we're using +## GNU make because make does it for us. if test "X$GMAKE" = "Xyes"; then SETX=":" else SETX="set -x" fi +## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod +## Build config.status, touch the stamp files, and build all the Makefiles. +## The order is such that the first `make' does not need to update any +## configuration information. See config/commence.in for the order in which +## things need to be done. -# First the stamp1 file for H5config.h.in +## First the stamp1 file for H5config.h.in mkdir ./config >/dev/null 2>&1 touch ./config/stamp1 -# Then the config.status file (but not makefiles) +## Then the config.status file (but not makefiles) saved_no_create=$no_create no_create=yes @@ -31034,7 +31885,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # - AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" @@ -31509,7 +32359,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "src/H5config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/H5config.h" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "pubconf") CONFIG_COMMANDS="$CONFIG_COMMANDS pubconf" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "src/libhdf5.settings") CONFIG_FILES="$CONFIG_FILES src/libhdf5.settings" ;; @@ -32182,7 +33032,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in - "default-1":C) + "pubconf":C) echo "creating src/H5pubconf.h" sed 's/#define /#define H5_/' <src/H5config.h |\ sed 's/#undef /#undef H5_/' >pubconf @@ -35163,15 +36013,16 @@ $lt_cl_success || as_fn_exit 1 no_create=$saved_no_create -# Then the stamp2 file for H5config.h +## Then the stamp2 file for H5config.h touch ./config/stamp2 -# Finally the makefiles +## Finally the makefiles test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 +## Post processing to patch up some deficiencies in libtool case $host_os in linux* | freebsd* ) - # If gcc is not used, need to set $wl to use "-Wl," + ## If gcc is not used, need to set $wl to use "-Wl," if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then : using gcc else @@ -35185,6 +36036,12 @@ EOF ;; esac +## Are we compiling static libraries, shared libraries, or both? This +## is only used for the libhdf5.settings file. We can't just look at +## $enable_static and $enable_shared because if they're yes the ltconfig +## might have decided that one or the other is simply not possible. +## Therefore we have to ask the generated `libtool' shell script +## which 'features' it has enabled. if (./libtool --features | grep '^enable shared libraries' > /dev/null); then enable_shared=yes else @@ -35217,6 +36074,9 @@ if test "X$HDF_CXX" = "Xyes"; then chmod 755 c++/src/h5c++ fi +## We don't want inline defined for C++ compilers +## Don't worry about the C++ ifdef wrappers in the H5pubconf file, since +## 'H5_inline' isn't a C++ keyword. cat >> src/H5config.h <<EOF #if defined(__cplusplus) && defined(inline) @@ -35224,4 +36084,5 @@ cat >> src/H5config.h <<EOF #endif EOF +## show the configure settings cat src/libhdf5.settings |