summaryrefslogtreecommitdiffstats
path: root/fortran/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/configure.in')
-rw-r--r--fortran/configure.in1156
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