summaryrefslogtreecommitdiffstats
path: root/fortran/configure.in
diff options
context:
space:
mode:
authorBill Wendling <wendling@ncsa.uiuc.edu>2002-03-27 18:21:04 (GMT)
committerBill Wendling <wendling@ncsa.uiuc.edu>2002-03-27 18:21:04 (GMT)
commit5b47012a0d83dccc7988b51d8a0658086b4268a1 (patch)
tree3f45801fab4d020ee435b1ec5fa7d8d116b88e90 /fortran/configure.in
parent518e363c83ccb8352f407c0f55d0ace0bda05a90 (diff)
downloadhdf5-5b47012a0d83dccc7988b51d8a0658086b4268a1.zip
hdf5-5b47012a0d83dccc7988b51d8a0658086b4268a1.tar.gz
hdf5-5b47012a0d83dccc7988b51d8a0658086b4268a1.tar.bz2
[svn-r5093]
Purpose: Bug Fix Description: We were testing of the MPI C compiler could build an MPI program. We should be testing if the MPI F90 compiler could build an MPI program. Solution: Changed so that we check if the MPI F90 compiler can build an MPI program instead... Platforms tested: AIX and LInux
Diffstat (limited to 'fortran/configure.in')
-rw-r--r--fortran/configure.in658
1 files changed, 343 insertions, 315 deletions
diff --git a/fortran/configure.in b/fortran/configure.in
index f14c18a..63a8d0d 100644
--- a/fortran/configure.in
+++ b/fortran/configure.in
@@ -1,8 +1,9 @@
dnl ----------------------------------------------------------------------
dnl Process this file with autoconf to produce configure.
dnl
-dnl Copyright (C) 2000-2001 National Center for Supercomputing Applications
-dnl All rights reserved.
+dnl Copyright (C) 2000, 2001, 2002
+dnl National Center for Supercomputing Applications.
+dnl All rights reserved.
dnl ----------------------------------------------------------------------
dnl ----------------------------------------------------------------------
@@ -10,10 +11,10 @@ dnl Initialize configure.
dnl
AC_REVISION($Id$)
AC_INIT(src/HDF5.f90)
-AC_CONFIG_HEADER(src/H5config.h)
AC_CONFIG_AUX_DIR(../bin)
AC_CANONICAL_HOST
AC_SUBST(CPPFLAGS)
+AC_SUBST(FFLAGS)
dnl ----------------------------------------------------------------------
dnl HDF5 integer variables for the H5fortran_types.f90 file.
@@ -40,9 +41,9 @@ 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
+ pwd=/bin/pwd
else
- pwd=pwd
+ pwd=pwd
fi
AC_SUBST(ROOT) ROOT=`$pwd`
@@ -52,11 +53,11 @@ 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
+ 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)
+ 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 ----------------------------------------------------------------------
@@ -76,52 +77,52 @@ 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
- ;;
- freebsd*)
- host_os_novers=freebsd
- ;;
- irix5.*)
- host_os_novers=irix5.x
- ;;
- irix6.*)
- host_os_novers=irix6.x
- ;;
- osf4.*)
- host_os_novers=osf4.x
- ;;
- solaris2.*)
- host_os_novers=solaris2.x
- ;;
- *)
- host_os_novers=$host_os
- ;;
+ aix4.*)
+ host_os_novers=aix4.x
+ ;;
+ freebsd*)
+ host_os_novers=freebsd
+ ;;
+ irix5.*)
+ host_os_novers=irix5.x
+ ;;
+ irix6.*)
+ host_os_novers=irix6.x
+ ;;
+ osf4.*)
+ host_os_novers=osf4.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_cpu-$host_vendor-$host_os_novers \
+ $host_vendor-$host_os \
$host_vendor-$host_os_novers \
- $host_cpu-$host_os \
+ $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)
+ $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
+ CC_BASENAME="`echo $CC |cut -f1 -d' ' |xargs basename 2>/dev/null`"
+ . $host_config
fi
dnl ----------------------------------------------------------------------
@@ -148,7 +149,7 @@ dnl Check which archiving tool to use. This needs to be done before
dnl the AM_PROG_LIBTOOL macro.
dnl
if test -z "$AR"; then
- AC_CHECK_PROGS(AR,ar xar,:,$PATH)
+ AC_CHECK_PROGS(AR,ar xar,:,$PATH)
fi
AC_SUBST(AR)
@@ -158,72 +159,73 @@ 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
+ 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.o
+ cp $< H5_f.o
-foo: H5.o
- /bin/rm -f H5.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
+ 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
+ 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.o
+ cp $< H5_f.o
-foo: H5.o
- /bin/rm -f H5.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
+ 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
+ dnl pmake uses the construct `.PATH: DIR1 DIR2
+ cat >maketest <<EOF
.PATH: $srcdir/config $srcdir/src $srcdir/bin
.c.o:
- cp $< H5.o
+ cp $< H5_f.o
-foo: H5.o
- /bin/rm -f H5.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: '
+
+ if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
+ SEARCH_RULE='.PATH: '
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
+ AC_MSG_RESULT([.PATH: DIR1 DIR2 ...])
break
- done
- rm maketest
+ 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 ----------------------------------------------------------------------
@@ -231,15 +233,15 @@ dnl If we should build only static executables
dnl
AC_MSG_CHECKING(if should build only statically linked executables)
AC_ARG_ENABLE(static_exec,
- [ --enable-static-exec Build only statically linked executables [default=no]],
- STATIC_EXEC=$enableval)
+ [ --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"
+ echo "yes"
+ LT_STATIC_EXEC="-all-static"
else
- echo "no"
- LT_STATIC_EXEC=""
+ echo "no"
+ LT_STATIC_EXEC=""
fi
AC_SUBST(LT_STATIC_EXEC)
@@ -268,38 +270,48 @@ dnl then "uncache" it so that we will go through this logic in any case.
dnl Some systems where you need to specify exactly where the zlib is need
dnl this.
ac_cv_lib_z_compress=""
+AC_ARG_WITH(zlib,
+ [ --with-zlib[=DIR] Use the GNU zlib compression],,
+ withval=yes)
-AC_ARG_WITH(zlib,[ --with-zlib=INC,LIB Use the GNU zlib compression],
- ,withval=yes)
case "$withval" in
- yes)
- AC_CHECK_HEADERS(zlib.h)
- AC_CHECK_LIB(z, compress)
- ;;
- no)
- AC_MSG_CHECKING(for GNU zlib)
- AC_MSG_RESULT(suppressed)
- ;;
- *)
- zlib_inc="`echo $withval |cut -f1 -d,`"
- if test -n "$zlib_inc"; then
- saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I$zlib_inc"
- AC_CHECK_HEADERS(zlib.h,,CPPFLAGS="$saved_CPPFLAGS")
- else
- AC_CHECK_HEADERS(zlib.h)
- fi
-
- zlib_lib="`echo $withval |cut -f2 -d, -s`"
- if test -n "$zlib_lib"; then
- saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -L$zlib_lib"
- ZLIB_DIR=$zlib_lib
- AC_CHECK_LIB(z, compress,,LDFLAGS="$saved_LDFLAGS")
- else
- AC_CHECK_LIB(z, compress)
- fi
- ;;
+ yes)
+ AC_CHECK_HEADERS(zlib.h)
+ AC_CHECK_LIB(z, compress2)
+ ;;
+ no)
+ AC_MSG_CHECKING(for GNU zlib)
+ AC_MSG_RESULT(suppressed)
+ ;;
+ *)
+ 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
+
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LDFLAGS="$LDFLAGS"
+
+ if test -n "$zlib_inc"; then
+ CPPFLAGS="$CPPFLAGS -I$zlib_inc"
+ fi
+
+ AC_CHECK_HEADERS(zlib.h,, CPPFLAGS="$saved_CPPFLAGS")
+
+ if test -n "$zlib_lib"; then
+ LDFLAGS="$LDFLAGS -L$zlib_lib"
+ fi
+
+ AC_CHECK_LIB(z, compress2,, LDFLAGS="$saved_LDFLAGS")
+ ;;
esac
dnl ----------------------------------------------------------------------
@@ -309,6 +321,9 @@ dnl
dnl Checkpoint the cache
AC_CACHE_SAVE
+dnl Change back to the Fortran 90 language
+AC_LANG_FORTRAN9X
+
dnl ----------------------------------------------------------------------
dnl The following variables are used to distinguish between building a
dnl serial and parallel library.
@@ -318,7 +333,7 @@ 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 mpicc or mpcc) or if the user explicitly states
+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
@@ -355,57 +370,58 @@ 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 `mpicc' the executable should be run with `mpirun' from
-dnl the same directory as mpicc if it exists.
+dnl executable. For `mpif90' the executable should be run with `mpirun'
+dnl from the same directory as mpif90 if it exists.
dnl
-case "$CC_BASENAME" in
- mpicc)
- dnl The mpich compiler. Use mpirun from the same directory if it
- dnl exists.
- PARALLEL=mpicc
- AC_MSG_CHECKING(for mpirun)
-
- dnl 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
- 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)
+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
- ;;
-
- mpcc|mpcc_r)
- dnl The IBM compiler
- PARALLEL="$CC_BASENAME"
- ;;
-
- *)
- dnl Probably not a parallel compiler, but if `--enable-parallel'
- dnl is defined below then we're still building a parallel hdf5.
- ;;
+ 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 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 `--disable-parallel' but specifies a known parallel compiler (like mpif90
+dnl or mpf90) then parallel support is enabled but configure doesn't search
dnl for any parallel header files or libraries.
dnl
AC_ARG_ENABLE(parallel,
@@ -413,63 +429,77 @@ AC_ARG_ENABLE(parallel,
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_LINK(,MPI_Init(),,AC_CHECK_LIB(mpi,MPI_Init,,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_LINK(,MPI_File_open(),,
- AC_CHECK_LIB(mpio,MPI_File_open,,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
- ;;
-
- X-mpich)
- dnl For normal mpich installation the compiler, mpicc, should know
- dnl where the MPI and MPI-IO header files are located and know which
- dnl extra libraries need to be linked and will supply appropriate
- dnl flags to the underlying compiler.
- AC_MSG_RESULT(mpich)
- AC_MSG_WARN(*** Why aren't you using an mpicc compiler? ***)
-
- dnl Apparently mpicc isn't installed correctly so configure must
- dnl search for the header files and libraries. Actually we only
- dnl have to search for the libraries in order to get the onto the
- dnl link line, the user will have already told us about the
- dnl locations. Fail if something is missing.
- PARALLEL=mpich
- AC_CHECK_LIB(mpich,MPI_Init,,AC_MSG_ERROR(no mpich library))
- ;;
-
- *)
- AC_MSG_RESULT(error)
- AC_MSG_ERROR(\'$enable_parallel\' is not a valid parallel search type)
- ;;
+ 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 mpif90 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, [
+ integer ierr
+ call MPI_INIT( ierr )],,
+ AC_CHECK_FLIB(mpi, [
+ include 'mpif.h'
+ integer ierr
+ call MPI_INIT( 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, [
+ integer ierr
+ call MPI_INIT( ierr )],
+ AC_CHECK_FLIB(mpio, [
+ include 'mpif.h'
+ integer ierr
+ call MPI_INIT( 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
+ ;;
+
+ X-mpich)
+ dnl For normal mpich installation the compiler, mpif90, should know
+ dnl where the MPI and MPI-IO header files are located and know which
+ dnl extra libraries need to be linked and will supply appropriate
+ dnl flags to the underlying compiler.
+ AC_MSG_RESULT(mpich)
+ AC_MSG_WARN(*** Why aren't you using an mpif90 compiler? ***)
+
+ dnl Apparently mpif90 isn't installed correctly so configure must
+ dnl search for the header files and libraries. Actually we only
+ dnl have to search for the libraries in order to get the onto the
+ dnl link line, the user will have already told us about the
+ dnl locations. Fail if something is missing.
+ PARALLEL=mpich
+ AC_CHECK_FLIB(fmpich, [
+ include 'mpif.h'
+ integer ierr
+ call MPI_INIT( ierr )],, AC_MSG_ERROR(no mpich library))
+ ;;
+
+ *)
+ 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
+ TESTPARALLEL=testpar
fi
dnl ----------------------------------------------------------------------
@@ -477,90 +507,89 @@ dnl Print some other parallel information and do some sanity checks.
dnl
ADD_PARALLEL_FILES="no"
if test -n "$PARALLEL"; then
- dnl We are building a parallel library
- AC_DEFINE(HAVE_PARALLEL)
-
- 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_LINK(,[MPI_Init();MPI_File_open();],
- 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"
+ 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,[
+ integer ierr
+ call MPI_INIT( 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"
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
+ 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)
+ 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)
+ AC_MSG_CHECKING(how to include a makefile)
- dnl The include file contains the target for `foo'
- cat >makeinc <<EOF
+ 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
+ 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
- done
- rm makeinc maketest
+ 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 Some cleanup stuff
@@ -571,25 +600,24 @@ 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
-DYNAMIC_DIRS=""
+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
+ 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
-AC_SUBST(DYNAMIC_DIRS)
dnl ----------------------------------------------------------------------
dnl Build the Makefiles. Almost every Makefile.in will begin with the line
@@ -601,17 +629,17 @@ 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`"
+ 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=":"
+ AC_SUBST(SETX) SETX=":"
else
- AC_SUBST(SETX) SETX="set -x"
+ AC_SUBST(SETX) SETX="set -x"
fi
dnl Some cleanup stuff
@@ -629,7 +657,7 @@ touch ./config/stamp1
PARALLEL_MAKE=
if test -n "$TESTPARALLEL"; then
- PARALLEL_MAKE=$TESTPARALLEL/Makefile
+ PARALLEL_MAKE=$TESTPARALLEL/Makefile
fi
dnl Then the config.status file (but not makefiles)
@@ -639,11 +667,11 @@ AC_OUTPUT(config/depend1
config/depend2
config/depend3
config/depend4
- config/dependN
+ config/dependN
config/commence
config/conclude
Makefile
- src/H5fortran_types.f90
+ src/H5fortran_types.f90
src/Makefile
test/Makefile
$PARALLEL_MAKE