diff options
Diffstat (limited to 'fortran/configure.in')
-rw-r--r-- | fortran/configure.in | 1156 |
1 files changed, 0 insertions, 1156 deletions
diff --git a/fortran/configure.in b/fortran/configure.in deleted file mode 100644 index 26aaa34..0000000 --- a/fortran/configure.in +++ /dev/null @@ -1,1156 +0,0 @@ -dnl Process this file with autoconf to produce configure. -dnl -dnl Copyright by the Board of Trustees of the University of Illinois. -dnl All rights reserved. -dnl -dnl This file is part of HDF5. The full HDF5 copyright notice, including -dnl terms governing use, modification, and redistribution, is contained in -dnl the files COPYING and Copyright.html. COPYING can be found at the root -dnl of the source code distribution tree; Copyright.html can be found at the -dnl root level of an installed copy of the electronic HDF5 document set and -dnl is linked from the top-level documents page. It can also be found at -dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have -dnl access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. - -dnl ---------------------------------------------------------------------- -dnl Initialize configure. -dnl -AC_REVISION($Id$) - -dnl AC_INIT takes the name of the package, the version number, and an -dnl email address to report bugs. AC_CONFIG_SRCDIR takes a unique file -dnl as its argument. -dnl -dnl NOTE: Don't forget to change the version number here when we do a -dnl release!!! -dnl -AC_INIT([HDF5 Fortran], [1.7.1], [hdfhelp@ncsa.uiuc.edu]) -AC_CONFIG_SRCDIR([src/HDF5.f90]) -AC_CONFIG_HEADER([src/H5config_fortran.h]) - -AC_CONFIG_AUX_DIR([../bin]) - -AC_OUTPUT_COMMANDS([ - echo "creating src/H5pubconf_fortran.h" - sed 's/PACKAGE/FORTRAN_PACKAGE/' < src/H5config_fortran.h |\ - sed 's/#define /#define H5_/' |\ - sed 's/#undef /#undef H5_/' > pubconf_fortran - - if test ! -f src/H5pubconf_fortran.h; then - /bin/mv -f pubconf_fortran src/H5pubconf_fortran.h - elif (diff pubconf_fortran src/H5pubconf_fortran.h >/dev/null); then - /bin/rm -f pubconf_fortran - echo "src/H5pubconf_fortran.h is unchanged" - else - /bin/mv -f pubconf_fortran src/H5pubconf_fortran.h - fi -]) - -AC_CANONICAL_HOST -AC_SUBST(CPPFLAGS) -AC_SUBST(FFLAGS) -AC_SUBST(FSEARCH_DIRS) - -dnl ---------------------------------------------------------------------- -dnl HDF5 integer variables for the H5fortran_types.f90 file. -dnl -AC_SUBST(R_LARGE) -AC_SUBST(R_INTEGER) -AC_SUBST(HSIZE_T) -AC_SUBST(HSSIZE_T) -AC_SUBST(HID_T) -AC_SUBST(SIZE_T) -AC_SUBST(OBJECT_NAMELEN_DEFAULT_F) - -dnl ---------------------------------------------------------------------- -dnl Dump all shell variables values. -dnl -AC_MSG_CHECKING(shell variables initial values) -set >&5 -AC_MSG_RESULT(done) - -dnl ---------------------------------------------------------------------- -dnl Where is the root of the source tree. Give an absolute address so -dnl we can find it no matter which directory of the distribution is our -dnl current directory. The built-in pwd fails on some systems, but the -dnl /bin/pwd version works OK. -dnl -if test -x "/bin/pwd"; then - pwd=/bin/pwd -else - pwd=pwd -fi -AC_SUBST(ROOT) ROOT=`$pwd` - -dnl ---------------------------------------------------------------------- -dnl Check that the cache file was build on the same host as what we're -dnl running on now. -dnl -AC_CACHE_CHECK(for cached host,hdf5_cv_host,hdf5_cv_host="none"); -if test "X$hdf5_cv_host" = "Xnone"; then - hdf5_cv_host=$host -elif test "$hdf5_cv_host" != "$host"; then - echo "The config.cache file was generated on $hdf5_cv_host but" - echo "this is $host. Please remove that file and try again." - AC_MSG_ERROR(config.cache file is invalid) -fi - -dnl ---------------------------------------------------------------------- -dnl Source any special files that we need. These files normally aren't -dnl present but can be used by the maintainers to fine tune things like -dnl turning on debug or profiling flags for the compiler. The search order -dnl is: -dnl -dnl CPU-VENDOR-OS -dnl VENDOR-OS -dnl CPU-OS -dnl CPU-VENDOR -dnl OS -dnl VENDOR -dnl CPU -dnl -dnl If the `OS' ends with a version number then remove it. For instance, -dnl `freebsd3.1' would become `freebsd' -case "$host_os" in - aix4.*) - host_os_novers=aix4.x - ;; - aix5.*) - host_os_novers=aix5.x - ;; - freebsd*) - host_os_novers=freebsd - ;; - irix5.*) - host_os_novers=irix5.x - ;; - irix6.*) - host_os_novers=irix6.x - ;; - osf4.*) - host_os_novers=osf4.x - ;; - osf5.*) - host_os_novers=osf5.x - ;; - solaris2.*) - host_os_novers=solaris2.x - ;; - *) - host_os_novers=$host_os - ;; -esac - -host_config="none" -for f in $host_cpu-$host_vendor-$host_os \ - $host_cpu-$host_vendor-$host_os_novers \ - $host_vendor-$host_os \ - $host_vendor-$host_os_novers \ - $host_cpu-$host_os \ - $host_cpu-$host_os_novers \ - $host_cpu-$host_vendor \ - $host_os \ - $host_os_novers \ - $host_vendor \ - $host_cpu ; do - AC_MSG_CHECKING(for config $f) - if test -f $srcdir/config/$f; then - host_config=$srcdir/config/$f - AC_MSG_RESULT(found) - break - fi - AC_MSG_RESULT(no) -done -if test "X$host_config" != "Xnone"; then - CC_BASENAME="`echo $CC |cut -f1 -d' ' |xargs basename 2>/dev/null`" - . $host_config -fi - -AC_SUBST(F9XSUFFIXFLAG) - -dnl ---------------------------------------------------------------------- -dnl Check for programs. -dnl -AC_PROG_CC -AC_PROG_CPP dnl this is checked for when AC_HEADER_STDC is done -CC_BASENAME="`echo $CC |cut -f1 -d' ' |xargs basename 2>/dev/null`" -AC_PROG_MAKE_SET -AC_PROG_INSTALL -AM_PROG_LIBTOOL - -dnl ---------------------------------------------------------------------- -dnl Check if they have Perl installed on their system. We only need Perl -dnl if they're using a GNU compiler. -dnl -AC_SUBST(PERL) PERL="" -if test "X$GCC" = "Xyes"; then - AC_CHECK_PROGS(PERL, perl,, $PATH) -fi - -if test -z "$AR"; then - AC_CHECK_PROGS(AR,ar xar,:,$PATH) -fi -AC_SUBST(AR) - -dnl ---------------------------------------------------------------------- -dnl Sometimes makes think the `.PATH:' appearing before the first rule -dnl with an action should override the `all' default target. So we have -dnl to decide what the proper syntax is. -dnl -if test -z "$SEARCH"; then - AC_MSG_CHECKING(how make searches directories) - while true; do #for break - dnl The most common method is `VPATH=DIR1 DIR2 ...' - cat >maketest <<EOF -VPATH=$srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5_f.o - -foo: H5_f.o - /bin/rm -f H5_f.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=' ' - AC_MSG_RESULT([VPATH=DIR1 DIR2 ...]) - break - fi - - dnl The second most common method is like above except with the - dnl directories separated by colons. - cat >maketest <<EOF -VPATH=$srcdir/config:$srcdir/src:$srcdir/bin -.c.o: - cp $< H5_f.o - -foo: H5_f.o - /bin/rm -f H5_f.o - @echo works -EOF - - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=':' - AC_MSG_RESULT([VPATH=DIR1:DIR2:...]) - break - fi - - dnl pmake uses the construct `.PATH: DIR1 DIR2 - cat >maketest <<EOF -.PATH: $srcdir/config $srcdir/src $srcdir/bin -.c.o: - cp $< H5_f.o - -foo: H5_f.o - /bin/rm -f H5_f.o - @echo works -EOF - - if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - SEARCH_RULE='.PATH: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([.PATH: DIR1 DIR2 ...]) - break - fi - - dnl No way for make to search directories - SEARCH_RULE='## SEARCH DISABLED: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([it doesn't]) - if test ! -f configure; then - AC_MSG_ERROR(${MAKE-make} requires the build and source directories to be the same) - fi - break - done - rm maketest -fi - -dnl ---------------------------------------------------------------------- -dnl Production flags? Save the value in $CONFIG_MODE so we have it for -dnl the record. -dnl -AC_MSG_CHECKING([for production mode]) -AC_ARG_ENABLE([production], - [AC_HELP_STRING([--enable-production], - [Determines how to run the compiler.])]) - -case "X-$enable_production" in - X-yes) - AC_MSG_RESULT("production") - - dnl Remove the "-g" flag from CFLAGS if it's in there. - dnl - CFLAGS_temp="" - if test -n "$CFLAGS"; then - for d in $CFLAGS ; do - if test "X$d" != "X-g"; then - CFLAGS_temp="$CFLAGS_temp $d" - fi - done - CFLAGS=$CFLAGS_temp - fi - - CONFIG_MODE=production - CFLAGS="$CFLAGS $PROD_CFLAGS" - CPPFLAGS="$CPPFLAGS $PROD_CPPFLAGS" - ;; - X-|X-no) - AC_MSG_RESULT("development") - CONFIG_MODE=development - CFLAGS="$CFLAGS $DEBUG_CFLAGS" - CPPFLAGS="$CPPFLAGS $DEBUG_CPPFLAGS" - ;; - X-pg|X-profile) - AC_MSG_RESULT("profile") - CONFIG_MODE=profile - CFLAGS="$CXXFLAGS $PROFILE_CFLAGS" - CPPFLAGS="$CPPFLAGS $PROFILE_CPPFLAGS" - ;; - *) - AC_MSG_RESULT("user-defined") - CONFIG_MODE="$X-enableval" - ;; -esac - -dnl ---------------------------------------------------------------------- -dnl Check for system libraries. -dnl -AC_CHECK_LIB([m], [ceil]) - -if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then - dnl ...for Solaris - AC_CHECK_LIB([socket], [socket]) - AC_CHECK_LIB([nsl], [xdr_int]) -fi - -dnl ---------------------------------------------------------------------- -dnl If we should build only static executables -dnl -AC_MSG_CHECKING([if should build only statically linked executables]) -AC_ARG_ENABLE([static_exec], - [AC_HELP_STRING([--enable-static-exec], - [Build only statically linked executables - [default=no]])], - STATIC_EXEC=$enableval) - -if test "X$STATIC_EXEC" = "Xyes"; then - echo "yes" - LT_STATIC_EXEC="-all-static" -else - echo "no" - LT_STATIC_EXEC="" -fi -AC_SUBST(LT_STATIC_EXEC) - -dnl ---------------------------------------------------------------------- -dnl Test for 64bit stuff before the data types and their sizes. The -dnl result could effect the outcome of the sizeof macros below. -dnl -case "$host_cpu-$host_vendor-$host_os" in - *linux*) - dnl ---------------------------------------------------------------------- - dnl Enable large file support on linux? Store the result in the LINUX_LFS - dnl variable for posterity - AC_ARG_ENABLE([linux-lfs], - [AC_HELP_STRING([--enable-linux-lfs], - [Enable support for large (64-bit) - files on Linux. [default=check]])]) - - LINUX_LFS="no" - case "X-$enable_linux_lfs" in - X-yes) - LINUX_LFS=yes - ;; - X-no) - ;; - X-|*) - MAJOR_VER="`uname -r | cut -d '.' -f1`" - MINOR_VER="`uname -r | cut -d '.' -f2`" - - if test ${MAJOR_VER} -gt 2 -o ${MAJOR_VER} -eq 2 -a ${MINOR_VER} -ge 4; then - LINUX_LFS="yes" - fi - ;; - esac - - AC_MSG_CHECKING([for large file support mode on Linux]) - if test "X$LINUX_LFS" = "Xyes"; then - AC_MSG_RESULT([enabled]) - CPPFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $CPPFLAGS" - else - AC_MSG_RESULT([disabled]) - fi - - dnl Add POSIX support on Linux systems, so <features.h> defines - dnl __USE_POSIX, which is required to get the prototype for fdopen - dnl defined correctly in <stdio.h> - CPPFLAGS="-D_POSIX_SOURCE $CPPFLAGS" - - dnl Also add BSD support on Linux systems, so <features.h> defines - dnl __USE_BSD, which is required to get the prototype for strdup - dnl defined correctly in <string.h> and snprintf & vsnprintf defined - dnl correctly in <stdio.h> - CPPFLAGS="-D_BSD_SOURCE $CPPFLAGS" - ;; -esac - -dnl ---------------------------------------------------------------------- -dnl Check for a Fortran 9X compiler, how to optimize it, and how to -dnl include modules. -dnl -AC_PROG_F9X -dnl AC_F9X_OPT_FLAGS -AC_F9X_MODS - -dnl Change back to the C language -AC_LANG_C - -dnl ---------------------------------------------------------------------- -dnl Checks for libraries. -dnl - -dnl ---------------------------------------------------------------------- -dnl Is the GNU zlib present? It has a header file `zlib.h' and a library -dnl `-lz' and their locations might be specified with the `--with-zlib' -dnl command-line switch. The value is an include path and/or a library path. -dnl If the library path is specified then it must be preceded by a comma. -dnl -AC_ARG_WITH([zlib], - [AC_HELP_STRING([--with-zlib=DIR], - [Use zlib library for external deflate I/O - filter [default=yes]])],, - withval=yes) - -case $withval in - yes) - HAVE_ZLIB="yes" - AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H="yes"]) - AC_CHECK_LIB([z], [compress2],, [unset HAVE_ZLIB]) - AC_CHECK_FUNC([compress2], [HAVE_COMPRESS2="yes"]) - - if test -z "$HAVE_ZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR([couldn't find zlib library]) - fi - ;; - no) - HAVE_ZLIB="no" - AC_MSG_CHECKING([for GNU zlib]) - AC_MSG_RESULT([suppressed]) - ;; - *) - HAVE_ZLIB="yes" - case "$withval" in - *,*) - zlib_inc="`echo $withval |cut -f1 -d,`" - zlib_lib="`echo $withval |cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - zlib_inc="$withval/include" - zlib_lib="$withval/lib" - fi - ;; - esac - - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl 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 - zlib_lib="" - fi - - saved_CPPFLAGS="$CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - - if test -n "$zlib_inc"; then - CPPFLAGS="$CPPFLAGS -I$zlib_inc" - fi - - AC_CHECK_HEADERS([zlib.h], - [HAVE_ZLIB_H="yes"], - [CPPFLAGS="$saved_CPPFLAGS"]) - - if test -n "$zlib_lib"; then - LDFLAGS="$LDFLAGS -L$zlib_lib" - fi - - AC_CHECK_LIB([z], [compress2],, - [LDFLAGS="$saved_LDFLAGS"; unset HAVE_ZLIB]) - AC_CHECK_FUNC([compress2], [HAVE_COMPRESS2="yes"]) - - if test -z "$HAVE_ZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR([couldn't find zlib library]) - fi - ;; -esac - -if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" = "xyes"; then - AC_DEFINE(HAVE_FILTER_DEFLATE, 1, - [Define if support for deflate filter is enabled]) -fi - -dnl ---------------------------------------------------------------------- -dnl Is the szlib present? It has a header file `szlib.h' and a library -dnl `-lsz' and their locations might be specified with the `--with-szlib' -dnl command-line switch. The value is an include path and/or a library path. -dnl If the library path is specified then it must be preceded by a comma. -dnl -AC_ARG_WITH([szlib], - [AC_HELP_STRING([--with-szlib=DIR], - [Use szlib library for external szlib I/O - filter [default=yes]])],, - withval=yes) - -case $withval in - yes) - HAVE_SZLIB="yes" - AC_CHECK_HEADERS([szlib.h], [HAVE_SZLIB_H="yes"]) - AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],, [unset HAVE_SZLIB]) - - if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR([couldn't find szlib library]) - fi - ;; - no) - HAVE_SZLIB="no" - AC_MSG_CHECKING([for szlib]) - AC_MSG_RESULT([suppressed]) - ;; - *) - HAVE_SZLIB="yes" - case "$withval" in - *,*) - szlib_inc="`echo $withval |cut -f1 -d,`" - szlib_lib="`echo $withval |cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - szlib_inc="$withval/include" - szlib_lib="$withval/lib" - fi - ;; - esac - - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl 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 - szlib_lib="" - fi - - saved_CPPFLAGS="$CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - - if test -n "$szlib_inc"; then - CPPFLAGS="$CPPFLAGS -I$szlib_inc" - fi - - AC_CHECK_HEADERS([szlib.h], - [HAVE_SZLIB_H="yes"], - [CPPFLAGS="$saved_CPPFLAGS"]) - - if test -n "$szlib_lib"; then - LDFLAGS="$LDFLAGS -L$szlib_lib" - fi - - AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],, - [LDFLAGS="$saved_LDFLAGS"; unset HAVE_SZLIB]) - - if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR([couldn't find szlib library]) - fi - ;; -esac - -if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - AC_DEFINE(HAVE_FILTER_SZIP, 1, - [Define if support for szip filter is enabled]) -fi - -dnl ---------------------------------------------------------------------- -dnl Should the Stream Virtual File Driver be compiled in ? -dnl -AC_MSG_CHECKING([for Stream Virtual File Driver support]) -AC_ARG_ENABLE([stream-vfd], - [AC_HELP_STRING([--enable-stream-vfd], - [Build the Stream Virtual File Driver - [default=no]])], - [STREAM_VFD=$enableval]) - -if test "$STREAM_VFD" = "yes"; then - AC_MSG_RESULT([yes]) - AC_CHECK_HEADERS([netinet/tcp.h sys/filio.h]) - AC_DEFINE([HAVE_STREAM], [1], - [Define if the stream virtual file driver should be compiled]) - - dnl Check if 'socklen_t' available - AC_MSG_CHECKING([if socklen_t is defined]) - AC_TRY_COMPILE([ -#include <stdio.h> -#include <stdlib.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif - ], - [socklen_t foo; return 0;], - AC_DEFINE([HAVE_SOCKLEN_T], 1, - [Define if \`socklen_t' is defined]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - ) -else - AC_MSG_RESULT([not configured]) -fi - -dnl ---------------------------------------------------------------------- -dnl Checks for header files. -dnl - -dnl Checkpoint the cache -AC_CACHE_SAVE - -dnl Change back to the Fortran 90 language -AC_LANG_FORTRAN9X - -dnl See if the compiler will support the "-I." option -FFLAGS_saved=$FFLAGS -FFLAGS="$FFLAGS -I." - -AC_MSG_CHECKING(if compiler supports -I. option) -AC_TRY_FCOMPILE([ - program conftest - end -], AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) - FFLAGS="$FFLAGS_saved") - -dnl ---------------------------------------------------------------------- -dnl The following variables are used to distinguish between building a -dnl serial and parallel library. -dnl -dnl HAVE_PARALLEL -- defined in H5config.h if we are building -dnl a parallel library even if configure wasn't -dnl able to find some header file or library that -dnl might be required. This is defined if the -dnl compiler looks like a parallel compiler (e.g., -dnl mpif90 or mpf90) or if the user explicitly states -dnl that a parallel library is being built by supplying -dnl the `--enable-parallel' configure switch. -dnl -dnl PARALLEL -- This variable is set to a non-null value if -dnl configure thinks we're compiling a parallel -dnl version of the library. -dnl -dnl RUNSERIAL -- This is a command which will be prepended to -dnl the executable name to run the executable using -dnl a single process. For serial versions of the -dnl library this will normally be empty. For parallel -dnl versions it might be something like `mpirun -np 1'. -dnl The value of this variable is substituted in *.in -dnl files. -dnl -dnl RUNPARALLEL -- This is a command which will be prepended to -dnl the executable name to run the executable on -dnl multiple processors. For the serial library the -dnl value will normally be the empty string. For -dnl parallel library it should be something like -dnl `mpi -np $$NPROCS' where NPROCS will eventually -dnl contain the number of processors on which to run -dnl the executable (the double dollarsigns are to -dnl protect the expansion until make executes the -dnl command). The value of this variable is -dnl substituted in *.in files. -dnl -AC_SUBST(PARALLEL) -AC_SUBST(RUNSERIAL) -AC_SUBST(RUNPARALLEL) -AC_SUBST(TESTPARALLEL) - -dnl ---------------------------------------------------------------------- -dnl If the compiler is obviously a parallel compiler then we're building -dnl a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, -dnl the name of the compiler might tell us how to run the resulting -dnl executable. For `mpif90' the executable should be run with `mpirun' -dnl from the same directory as mpif90 if it exists. -dnl -case "$F9X" in - *mpif90*) - dnl The mpich compiler. Use mpirun from the same directory if it - dnl exists. - PARALLEL=mpif90 - AC_MSG_CHECKING(for mpirun) - - dnl Find the path where mpif90 is located. - cmd=`echo $F9X |cut -f1 -d' '` - if (echo $cmd |grep / >/dev/null); then - path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`" - else - for path in `echo $PATH |tr : ' '`; do - if test -x $path/$cmd; then - break; - fi - done - fi - - dnl Is there an mpirun at that path? - if test -x $path/mpirun; then - AC_MSG_RESULT($path/mpirun) - RUNSERIAL="${RUNSERIAL:-none}" - - if test -z "$RUNPARALLEL"; then - RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=2}" - fi - else - AC_MSG_RESULT(none) - fi - ;; - - *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*) - dnl The IBM compiler - PARALLEL="$F9X" - ;; - - *) - dnl Probably not a parallel compiler, but if `--enable-parallel' - dnl is defined below then we're still building a parallel hdf5. - ;; -esac - -dnl ---------------------------------------------------------------------- -dnl Turn on internal I/O filters by setting macros in header files -dnl Internal I/O filters are contained entirely within the library and do -dnl not depend on external headers or libraries. The shuffle filter is -dnl an example of an internal filter, while the gzip filter is an example of -dnl an external filter. Each external filter is controlled with an -dnl "--with-foo=" configure flag. -dnl -AC_MSG_CHECKING(for I/O filters) -AC_ARG_ENABLE([filters], - [AC_HELP_STRING([--enable-filters=all], - [Turn on all internal I/O filters. One may - also specify a comma-separated list of filters - or the word no. The default is all internal - I/O filters.])], - [FILTERS=$enableval]) - -AC_SUBST([FILTERS]) -dnl Eventually: all_filters="shuffle,foo,bar,baz" -all_filters="shuffle,fletcher32" -case "X-$FILTERS" in - X-|X-all) - FILTERS=$all_filters - AC_MSG_RESULT(all ($FILTERS)) - ;; - X-no|X-none) - AC_MSG_RESULT(none) - FILTERS="none" - ;; - *) - AC_MSG_RESULT($FILTERS) - ;; -esac - -if test -n "$FILTERS"; then - for filter in `echo $FILTERS | tr 'a-z,' 'A-Z '`; do -dnl ---------------------------------------------------------------------- -dnl Have to use separate 'if' construct for each filter, so that autoheader -dnl can detect the AC_DEFINE for each one... -dnl - if test $filter = "SHUFFLE"; then - AC_DEFINE(HAVE_FILTER_SHUFFLE, 1, - [Define if support for shuffle filter is enabled]) - fi - if test $filter = "FLETCHER32"; then - AC_DEFINE(HAVE_FILTER_FLETCHER32, 1, - [Define if support for Fletcher32 checksum is enabled]) - fi - done -fi - -dnl ---------------------------------------------------------------------- -dnl What header files and libraries do we have to look for for parallel -dnl support? For the most part, search paths are already specified with -dnl CPPFLAGS and LDFLAGS or are known to the compiler. If the user says -dnl `--disable-parallel' but specifies a known parallel compiler (like mpicc -dnl or mpcc) then parallel support is enabled but configure doesn't search -dnl for any parallel header files or libraries. -dnl -AC_ARG_ENABLE([parallel], - [AC_HELP_STRING([--enable-parallel], - [Search for MPI-IO and MPI support files])]) - -AC_MSG_CHECKING(for parallel support files) -case "X-$enable_parallel" in - X-|X-no|X-none) - dnl Either we are not compiling for parallel or the header and library - dnl files and locations are known to the compiler (this is the case - dnl for a correct installation of mpicc for instance). - AC_MSG_RESULT(skipped) - ;; - - X-yes) - dnl We want to compile a parallel library with a compiler that - dnl may already know how to link with MPI and MPI-IO. - AC_MSG_RESULT(provided by compiler) - PARALLEL=yes - - dnl Try link a simple MPI program. If fail, try again with -lmpi. - AC_TRY_FLINK(mpif.h, [ - call mpi_file_open( ierr )],, - AC_CHECK_FLIB(mpi, [ - include 'mpif.h' - call mpi_file_open( ierr )],, PARALLEL=no)) - - dnl Then try link a simple MPI-IO program. If fail, try again with - dnl -lmpio. - if test "X$PARALLEL" = "Xyes"; then - AC_TRY_FLINK(mpif.h, [ - call mpi_file_open( ierr )],, - AC_CHECK_FLIB(mpio, [ - include 'mpif.h' - call mpi_file_open( ierr )],, PARALLEL=no)) - fi - - dnl Set RUNPARALLEL to mpirun if not set yet. - if test "X$PARALLEL" = "Xyes" && test -z "$RUNPARALLEL"; then - RUNPARALLEL="mpirun -np \$\${NPROCS:=2}" - fi - ;; - - *) - AC_MSG_RESULT(error) - AC_MSG_ERROR(\'$enable_parallel\' is not a valid parallel search type) - ;; -esac - -dnl ---------------------------------------------------------------------- -dnl Should the `testpar' directory participate in the build? -dnl -if test -n "$PARALLEL"; then - TESTPARALLEL=testpar -fi - -dnl ---------------------------------------------------------------------- -dnl Print some other parallel information and do some sanity checks. -dnl -ADD_PARALLEL_FILES="no" -if test -n "$PARALLEL"; then - dnl Display what we found about running programs - AC_MSG_CHECKING(prefix for running on one processor) - AC_MSG_RESULT($RUNSERIAL) - AC_MSG_CHECKING(prefix for running in parallel) - AC_MSG_RESULT($RUNPARALLEL) - - dnl Check that we can link a simple MPI and MPI-IO application - AC_MSG_CHECKING(whether a simple MPI-IO program can be linked) - AC_TRY_FLINK(mpif.h,[ - call mpi_file_open( ierr )], - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) - AC_MSG_ERROR('unable to link a simple MPI-IO application')) - - dnl There *must* be some way to run in parallel even if it's just the - dnl word `none'. - if test -z "$RUNPARALLEL"; then - AC_MSG_ERROR(no way to run a parallel program) - fi - - dnl If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with - dnl the empty string. - if test "X$RUNSERIAL" = "Xnone"; then - RUNSERIAL= - fi - if test "X$RUNPARALLEL" = "Xnone"; then - RUNPARALLEL= - fi - - ADD_PARALLEL_FILES="yes" - - AC_MSG_CHECKING([for MPI_Comm_c2f and MPI_Comm_f2c functions]) - - dnl Change to the C language - AC_LANG_C - - AC_TRY_LINK([ -#include <mpi.h> - ], - [MPI_Comm c_comm; MPI_Comm_c2f(c_comm)], - AC_DEFINE(HAVE_MPI_MULTI_LANG_Comm, 1, - [Define if \`MPI_Comm_c2f' and \`MPI_Comm_f2c' exists]) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) - ) - - AC_MSG_CHECKING([for MPI_Info_c2f and MPI_Info_f2c functions]) - AC_TRY_LINK([ -#include <mpi.h> - ], - [MPI_Info c_info; MPI_Info_c2f(c_info)], - AC_DEFINE(HAVE_MPI_MULTI_LANG_Info, 1, - [Define if \`MPI_Info_c2f' and \`MPI_Info_f2c' exists]) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) - ) - - dnl Change to the Fortran 90 language - AC_LANG_FORTRAN9X -fi -AC_SUBST(ADD_PARALLEL_FILES) - -AC_MSG_CHECKING(make) -AC_SUBST_FILE(DEPEND) -if test "`${MAKE-make} --version -f /dev/null 2>/dev/null |\ - sed -n 1p|cut -c1-8`" = "GNU Make"; then - AC_MSG_RESULT(GNU make) - GMAKE=yes - if test "X$GCC" = "Xyes"; then - DEPEND=config/depend1 - else - DEPEND=config/depend2 - fi -else - AC_MSG_RESULT(generic) -fi - -dnl How do we include another file into a Makefile? -if test -z "$DEPEND"; then - AC_MSG_CHECKING(how to include a makefile) - - dnl The include file contains the target for `foo' - cat >makeinc <<EOF -foo: - @: -EOF - - while true; do dnl for break - dnl pmake. We have to be careful because some pmake think that the - dnl contents of the MAKE environment variable is a target. - echo '.include <makeinc>' >maketest - if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - AC_MSG_RESULT([.include <FILE>]) - DEPEND=config/depend3 - break - fi - - dnl Most make's use `include FILE' - echo 'include makeinc' >maketest - if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then - AC_MSG_RESULT(include FILE) - DEPEND=config/depend4 - break; - fi - - dnl default - AC_MSG_RESULT(you have a deficient make command) - DEPEND=config/dependN - break - done - rm makeinc maketest -fi - -dnl ---------------------------------------------------------------------- -dnl Checking to see if GPFS is available on this filesystem -dnl -AC_ARG_ENABLE([gpfs], - [AC_HELP_STRING([--enable-gpfs], - [Enable GPFS hints for the MPI/POSIX file - driver. [default=no]])],, - [enableval=no]) - -case "X-$enableval" in - X-yes) - dnl Change to the C language - AC_LANG_C - - AC_CHECK_HEADERS([gpfs.h], - AC_MSG_CHECKING([for GPFS support]) - AC_TRY_COMPILE([#include <gpfs.h>], - [int fd = 0; gpfs_fcntl(fd, (void *)0);], - AC_DEFINE(HAVE_GPFS, 1, - [Define if we have GPFS support]) - AC_MSG_RESULT(yes) - LIBS="$LIBS -lgpfs" - GPFS="yes", - AC_MSG_RESULT(no) - GPFS="no")) - - dnl Change back to the Fortran 90 language - AC_LANG_FORTRAN9X - ;; - X-no|*) - AC_MSG_CHECKING([for gpfs]) - AC_MSG_RESULT([suppressed]) - ;; -esac - -dnl Some cleanup stuff -rm -f conftest core core.* *.core conftest.o conftest.c dummy.o $ac_clean_files - -dnl ---------------------------------------------------------------------- -dnl Set some variables for general configuration information to be saved -dnl and installed with the libraries. -dnl - -dnl HDF5 version from the first line of the README.txt file. -H5_VERSION="`cut -d' ' -f3 $srcdir/../README.txt | head -1`" -AC_SUBST(H5_VERSION) - -dnl Configuration date -AC_SUBST(CONFIG_DATE) CONFIG_DATE="`date`" - -dnl User doing the configuration -AC_SUBST(CONFIG_USER) CONFIG_USER="`whoami`@`hostname`" -if test -n "$ORGANIZATION"; then - CONFIG_USER="$CONFIG_USER at $ORGANIZATION" -fi - -dnl Configuration mode (production, development, profile, etc) saved above. -AC_SUBST(CONFIG_MODE) - -dnl Byte sex from the AC_C_BIGENDIAN macro. -AC_SUBST(BYTESEX) -if test "X$ac_cv_c_bigendian" = "Xyes"; then - BYTESEX="big-endian" -else - BYTESEX="little-endian" -fi - -dnl Parallel support? (set above except empty if none) -PARALLEL=${PARALLEL:-no} - -dnl Compiler with version information. This consists of the full path -dnl name of the compiler and the reported version number. -AC_SUBST(CC_VERSION) -if `echo $CC | grep / 2>&1 /dev/null`; then - CC_VERSION="$CC" -else - CC_VERSION="$CC"; - for x in `echo $PATH | sed -e 's/:/ /g'`; do - if test -x $x/$CC; then - CC_VERSION="$x/$CC" - break - fi - done -fi -if test -n "$cc_vendor" && test -n "$cc_version"; then - CC_VERSION="$CC_VERSION ($cc_vendor-$cc_version)" -fi - -AC_SUBST(FC_VERSION) -if `echo $F9X | grep / 2>&1 /dev/null`; then - FC_VERSION="$F9X" -else - FC_VERSION="$F9X"; - for x in `echo $PATH | sed -e 's/:/ /g'`; do - if test -x $x/$F9X; then - FC_VERSION="$x/$F9X" - break - fi - done -fi - -dnl ---------------------------------------------------------------------- -dnl Determine the runtime libraries we may need to include in the -dnl libtools command so that executables will find the correct dynamic -dnl libraries. -dnl -AC_SUBST(DYNAMIC_DIRS) DYNAMIC_DIRS="" -if test -n "$LDFLAGS"; then - for d in $LDFLAGS ; do - case "$d" in - -L*) - d=`echo $d | sed -e 's/-L//g'` - case "$d" in - .*) - dnl If the path isn't absolute, make it so by prepending the - dnl ROOT directory to it. - d=${ROOT}/$d - ;; - esac - DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" - ;; - esac - done -fi - -dnl ---------------------------------------------------------------------- -dnl Build the Makefiles. Almost every Makefile.in will begin with the line -dnl `@COMMENCE@' and end with the line `@CONCLUDE@'. These lines insert -dnl various files from the config directory into the Makefile. -dnl -AC_SUBST_FILE(COMMENCE) COMMENCE=config/commence -AC_SUBST_FILE(CONCLUDE) CONCLUDE=config/conclude - -dnl The directory search list -if test -z "$SEARCH"; then - AC_SUBST(SEARCH) SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' - cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' - SEARCH="$SEARCH_RULE`eval $cmd`" -fi - -dnl We don't need to say when we're entering directories if we're using -dnl GNU make becuase make does it for us. -if test "X$GMAKE" = "Xyes"; then - AC_SUBST(SETX) SETX=":" -else - AC_SUBST(SETX) SETX="set -x" -fi - -dnl Some cleanup stuff -rm -f conftest conftest.o conftest.c core core.* *.core dummy.o - -dnl Build config.status, touch the stamp files, and build all the Makefiles. -dnl The order is such that the first `make' does not need to update any -dnl configuration information. See config/commence.in for the order in which -dnl things need to be done. - -dnl First the stamp1 file for H5config.h.in -mkdir ./config >/dev/null 2>&1 -touch ./config/stamp1 - -PARALLEL_MAKE= - -if test -n "$TESTPARALLEL"; then - PARALLEL_MAKE=$TESTPARALLEL/Makefile -fi - -dnl Then the config.status file (but not makefiles) -saved_no_create=$no_create -no_create=yes -AC_CONFIG_FILES([config/depend1 - config/depend2 - config/depend3 - config/depend4 - config/dependN - config/commence - config/conclude - Makefile - src/h5fc - src/H5fortran_types.f90 - src/libhdf5_fortran.settings - src/Makefile - test/Makefile - $PARALLEL_MAKE - examples/Makefile]) -AC_OUTPUT -no_create=$saved_no_create - -dnl Then the stamp2 file for H5config_fortran.h -touch ./config/stamp2 - -dnl Finally the makefiles -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - -chmod 755 src/h5fc |