1345 строки
40 KiB
Plaintext
1345 строки
40 KiB
Plaintext
# build with
|
|
# autoconf -output=configure2 --localdir=../confdb configure2.in
|
|
# (or wherever the confdb is)
|
|
# The following usage message is out-of-date
|
|
# It is retained only to remind us which options were defined.
|
|
usage_msg="
|
|
Usage: ${progname} [-file_system=FILE_SYSTEM] [-arch=ARCH_TYPE] [-mpi=MPI_IMPL]
|
|
[-mpiincdir=MPI_INCLUDE_DIR] [-mpilib=MPI_LIBRARY]
|
|
[-mpibindir=MPI_BIN_DIR]
|
|
[-cc=C_COMPILER] [-fc=FORTRAN_COMPILER] [-nof77]
|
|
[-cflags=CFLAGS] [-fflags=FFLAGS] [-f90=F90_COMPILER] [-debug]
|
|
[-make=MAKEPGM] [-mpiolib=MPIO_LIBRARY] [-ar_nolocal]
|
|
[-noranlib] [-ar=AR_COMMAND] [-prefix=INSTALL_DIR]
|
|
[-intsize=INTSIZE] [-ptrsize=PTRSIZE] [-longsize=LONGSIZE]
|
|
[-longlongsize=LONGLONGSIZE] [-f90nag] [-disable-weak-symbols]
|
|
|
|
where
|
|
FILE_SYSTEM = the file system(s) for which ROMIO is to be configured.
|
|
Valid values are pfs, piofs, hfs, xfs, sfs, pvfs, ufs,
|
|
and nfs (case-sensitive). They correspond to Intel's PFS,
|
|
IBM's PIOFS, HP/Convex's HFS, SGI's XFS, NEC's SFS,
|
|
Clemson University's PVFS (for Linux clusters), any Unix
|
|
file system, and NFS.
|
|
To configure for multiple file systems, use "+" as a
|
|
separator; e.g., ufs+nfs
|
|
ARCH_TYPE = the type of machine for which ROMIO is to be configured.
|
|
Not needed on most machines, because ROMIO can usually
|
|
find the arch_type on its own. Needed if you are
|
|
cross-compiling for a different architecture.
|
|
Valid values are sun4, solaris, solaris86, rs6000,
|
|
paragon, hpux, sppux, IRIX, IRIX32, IRIXN32, IRIX64, SX4,
|
|
alpha, freebsd, LINUX, and LINUX_ALPHA. (case-sensitive)
|
|
MPI_IMPL = the MPI implementation with which ROMIO will be used
|
|
Valid values are mpich, sgi, hp. (case-sensitive)
|
|
Valid implementations are MPICH 1.1.1 or higher,
|
|
SGI's MPI 3.1 or higher, HP MPI 1.3 or higher, LAM,
|
|
and Cray MPI.
|
|
MPI_INCLUDE_DIR = the full path of the directory where mpi.h is located.
|
|
Not needed if the directory is in the compiler's
|
|
default include path
|
|
MPI_LIBRARY = name of the file containing the MPI library (full path).
|
|
Not needed if the library is in the compiler's default
|
|
list of libraries
|
|
MPI_BIN_DIR = the full path of the directory that contains the MPI
|
|
versions of the compilers, such as mpicc and mpif77.
|
|
Use only if the ROMIO configure cannot find the
|
|
necessary commands
|
|
C_COMPILER = the C compiler to use. If not specified, ROMIO uses a
|
|
default compiler depending on the machine.
|
|
FORTRAN_COMPILER = the Fortran compiler to use. If not specified, ROMIO
|
|
uses a default compiler depending on the machine.
|
|
CFLAGS = flags to give to the C compiler
|
|
FFLAGS = flags to give to the Fortran compiler
|
|
F90_COMPILER = the Fortran 90 compiler to use. If not specified,
|
|
ROMIO uses f90.
|
|
MPIO_LIBRARY = name of the MPI-IO library to be built (full path).
|
|
Default is "this_directory"/lib/ARCH_TYPE/libmpio.a.
|
|
MAKEPGM = name of the make program to use
|
|
AR_COMMAND = an alternate archiver (ar) command to use.
|
|
INSTALL_DIR = directory where ROMIO is to be installed
|
|
INTSIZE = size of int in bytes.
|
|
PTRSIZE = size of pointers in bytes.
|
|
LONGSIZE = size of long in bytes.
|
|
LONGLONGSIZE = size of long long in bytes.
|
|
|
|
The options '-mpiincdir' and '-mpilib' may be needed if the MPI include file
|
|
and MPI library are not in the compiler's default path.
|
|
|
|
The option '-nof77' prevents the compilation of routines that require a
|
|
Fortran compiler. If you select this option, you cannot use the
|
|
Fortran interface of MPI-IO.
|
|
|
|
The option '-f90nag' allows you to use the NAG Fortran 90 compiler
|
|
instead of Fortran 77.
|
|
|
|
The option '-make' may be used to select an alternate make program. ROMIO
|
|
uses "make" by default.
|
|
|
|
If '-debug' is used, ROMIO will be configured with the '-g' compiler option
|
|
for debugging.
|
|
|
|
The option '-ar_nolocal' prevents the library archive command from
|
|
attempting to use the local directory for temporary space. This option
|
|
should be used when (a) there isn't much space (less than 10 MB)
|
|
available in the partition where ROMIO resides and (b) there is enough
|
|
space in /tmp (or wherever ar places temporary files by default).
|
|
|
|
The option '-noranlib' causes the 'ranlib' step (needed on some systems
|
|
to build an object library) to be skipped. This is particularly useful
|
|
on systems where 'ranlib' is optional (allowed but not needed; because it
|
|
is allowed, configure chooses to use it just in case) but can fail (some
|
|
'ranlib's are implemented as scripts using 'ar'; if they don't use the
|
|
local directory, they can fail (destroying the library in the process) if
|
|
the temporary directory (usually '/tmp') does not have enough space.
|
|
|
|
The option -disable-weak-symbols disables the use of weak symbols, even if
|
|
available, for building the profiling interface.
|
|
"
|
|
#
|
|
AC_INIT(adio/include/romioconf.h.in)
|
|
echo " "
|
|
echo "Configuring ROMIO Version 1.2.3"
|
|
echo " "
|
|
CONFIGURE_ARGS="$*"
|
|
if test -n "$CONFIGURE_ARGS" ; then
|
|
echo "Configuring with args $CONFIGURE_ARGS"
|
|
fi
|
|
AC_CONFIG_HEADER(adio/include/romioconf.h)
|
|
dnl
|
|
NOF77=0
|
|
ARCH=""
|
|
arch_IRIX=""
|
|
MPI=""
|
|
MPI_INCLUDE_DIR=""
|
|
ROMIO_INCLUDE=""
|
|
MPI_LIB=""
|
|
LIBNAME=""
|
|
TEST_LIBNAME=""
|
|
FILE_SYSTEM=""
|
|
DEBUG=no
|
|
MIPS=0
|
|
BITS=0
|
|
FROM_MPICH=${FROM_MPICH:-0}
|
|
FROM_MPICH2=${FROM_MPICH2:-0}
|
|
CFLAGS=${CFLAGS:-""}
|
|
LL="\%lld"
|
|
AR_LOCAL=l
|
|
HAVE_MPI_INFO=""
|
|
BUILD_MPI_INFO=""
|
|
MPI_FINFO1=""
|
|
MPI_FINFO2=""
|
|
MPI_FINFO3=""
|
|
MPI_FINFO4=""
|
|
MPI_FARRAY1=""
|
|
MPI_FARRAY2=""
|
|
MPI_FARRAY3=""
|
|
MPI_FARRAY4=""
|
|
MPI_FARRAY5=""
|
|
MPI_FARRAY6=""
|
|
MPI_FARRAY7=""
|
|
DEFS=""
|
|
ROMIO_LFLAGS=""
|
|
ROMIO_LIBLIST=""
|
|
ROMIO_TCFLAGS=""
|
|
ROMIO_TCPPFLAGS=""
|
|
ROMIO_TFFLAGS=""
|
|
NOPROFILE=0
|
|
MPIRUN=""
|
|
FORTRAN_TEST=""
|
|
MAKE=${MAKE:-"make"}
|
|
# foll. needed for f77 test programs
|
|
F77GETARG="call getarg(i,str)"
|
|
F77IARGC="iargc()"
|
|
FTESTDEFINE=""
|
|
FORTRAN_MPI_OFFSET=""
|
|
MPIOF_H_INCLUDED=0
|
|
MPI_OFFSET_KIND1="!"
|
|
MPI_OFFSET_KIND2="!"
|
|
F90=""
|
|
TEST_CC=""
|
|
TEST_F77=""
|
|
TRY_WEAK_SYMBOLS=1
|
|
#
|
|
known_filesystems="nfs ufs pfs piofs pvfs testfs xfs hfs sfs"
|
|
known_mpi_impls="mpich_mpi sgi_mpi hp_mpi cray_mpi lam_mpi"
|
|
#
|
|
# Defaults
|
|
AC_ARG_ENABLE(aio,[
|
|
--enable-aio - Request use of asynchronous I/O routines],,enable_aio=notgiven)
|
|
AC_ARG_ENABLE(echo,
|
|
[--enable-echo - Turn on strong echoing. The default is enable=no.] ,set -x)
|
|
AC_ARG_ENABLE(f77,
|
|
[--enable-f77 - Turn on support for Fortran 77 (default)],,enable_f77=yes)
|
|
AC_ARG_WITH(file-system,[
|
|
--with-file-system=name - Build with support for the named file systems],,)
|
|
AC_ARG_WITH(mpi,[
|
|
--with-mpi=name - Specify MPI implementation to build ROMIO for],,)
|
|
dnl
|
|
if test "$enable_f77" != "yes" ; then
|
|
NOF77=1
|
|
fi
|
|
MPI=$with_mpi
|
|
FILE_SYSTEM=$with_file_system
|
|
#
|
|
for arg
|
|
do
|
|
case $arg in
|
|
-arch=* | --arch=*)
|
|
ARCH=`echo $arg|sed 's/-*arch=//'`
|
|
eval "arch_`echo $ARCH`=1"
|
|
;;
|
|
|
|
-debug | --debug | --enable-g | -enable-g)
|
|
echo "Configuring for a debugging version"
|
|
DEBUG=yes
|
|
;;
|
|
-from_mpich | --from_mpich)
|
|
FROM_MPICH=1
|
|
;;
|
|
|
|
-noprofile | --noprofile | --disable-profile | -disable-profile )
|
|
echo "profiling interface will not be built"
|
|
NOPROFILE=1
|
|
;;
|
|
|
|
-disable-weak-symbols|--disable-weak-symbols)
|
|
TRY_WEAK_SYMBOLS=0
|
|
;;
|
|
esac
|
|
done
|
|
#
|
|
AC_CONFIG_AUX_DIR(../../../confdb)
|
|
dnl PAC_ARG_CACHING
|
|
|
|
rm -f config.log
|
|
#
|
|
# Check that an arch was set
|
|
# If it wasn't set, try to guess using "util/tarch"
|
|
#
|
|
if test -z "$ARCH" -a -x $srcdir/util/tarch ; then
|
|
AC_MSG_CHECKING(for architecture)
|
|
ARCH=`$srcdir/util/tarch | sed s/-/_/g`
|
|
if test -z "$ARCH" ; then
|
|
AC_MSG_RESULT(Unknown!)
|
|
AC_MSG_ERROR([Error: Couldn't guess target architecture, you must
|
|
set an architecture type with -arch=<value>])
|
|
fi
|
|
eval "arch_$ARCH=1"
|
|
AC_MSG_RESULT($ARCH)
|
|
fi
|
|
#
|
|
# check for valid architecture. Use __ so that _ALPHA_ does not match
|
|
# LINUX_ALPHA_
|
|
#### WE SHOULD REMOVE THIS SOON
|
|
grep __"$ARCH"_ $srcdir/.config_params > /dev/null 2>&1
|
|
if test $? != 0 ; then
|
|
AC_MSG_WARN([Unknown architecture $arch... proceeding anyway])
|
|
fi
|
|
#
|
|
#
|
|
#
|
|
# Find the home directory if not specified
|
|
if test "X$srcdir" != "X." -a -s $srcdir/mpi-io/Makefile.in ; then
|
|
ROMIO_HOME_TRIAL=$srcdir
|
|
else
|
|
PAC_GETWD(ROMIO_HOME_TRIAL,mpi-io/Makefile.in)
|
|
fi
|
|
echo "ROMIO home directory is $ROMIO_HOME_TRIAL"
|
|
ROMIO_HOME=$ROMIO_HOME_TRIAL
|
|
#
|
|
# Create the "autoconf" style directory names...
|
|
#
|
|
# mandir is the root for the man pages
|
|
if test -z "$mandir" ; then mandir='${prefix}/man' ; fi
|
|
AC_SUBST(mandir)
|
|
if test -z "$docdir" ; then docdir='${prefix}/doc' ; fi
|
|
AC_SUBST(docdir)
|
|
if test -z "$htmldir" ; then htmldir='${prefix}/www' ; fi
|
|
AC_SUBST(htmldir)
|
|
#
|
|
# check for valid file system
|
|
if test -n "$FILE_SYSTEM" ; then
|
|
# if multiple filesystems are passed in, they are '+'-delimited
|
|
# we could set the IFS to tokenize FILE_SYSTEM, but the FILE_SYSTEM env var
|
|
# is used in multiple places in the build system: get rid of the '+'s so we
|
|
# can use the 'for x in $FILE_SYSTEM ...' idiom
|
|
FILE_SYSTEM=`echo $FILE_SYSTEM|sed -e 's/\+/ /g'`
|
|
for x in $FILE_SYSTEM
|
|
do
|
|
found=no
|
|
for y in $known_filesystems ; do
|
|
if test $x = $y ; then
|
|
found=yes
|
|
eval "file_system_`echo $x`=1"
|
|
break
|
|
fi
|
|
done
|
|
if test "$found" = "no" ; then
|
|
AC_MSG_WARN([Unknown file system $x... proceeding anyway])
|
|
fi
|
|
done
|
|
fi
|
|
#
|
|
# check for valid MPI implementation
|
|
if test -n "$MPI" ; then
|
|
found=no
|
|
for mpi in $known_mpi_impls ; do
|
|
if test "${MPI}_mpi" = "$mpi" ; then
|
|
found=yes
|
|
break
|
|
fi
|
|
done
|
|
if test $found = no ; then
|
|
AC_MSG_WARN([Unknown MPI implementation $MPI... proceeding anyway])
|
|
fi
|
|
fi
|
|
#
|
|
# check for valid MPI include directory if specified
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
if test -n "$MPI_INCLUDE_DIR"; then
|
|
if test ! -f "$MPI_INCLUDE_DIR/mpi.h" ; then
|
|
AC_MSG_ERROR([Include file $MPI_INCLUDE_DIR/mpi.h not found])
|
|
fi
|
|
else
|
|
# assume that mpi.h is in the default path
|
|
# set MPI_INCLUDE_DIR to ".", so that it translates to -I. in the
|
|
# compile command. Some compilers complain if it's only -I
|
|
MPI_INCLUDE_DIR=.
|
|
fi
|
|
else
|
|
MPI_INCLUDE_DIR=.
|
|
fi
|
|
#
|
|
# check for valid MPI library if specified
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
if test -n "$MPI_LIB" ; then
|
|
if test ! -f "$MPI_LIB" ; then
|
|
AC_MSG_ERROR([MPI library $MPI_LIB not found])
|
|
fi
|
|
fi
|
|
fi
|
|
#
|
|
#
|
|
AR="${AR:-ar} cr$AR_LOCAL"
|
|
if test -z "$RANLIB" ; then
|
|
AC_PROG_RANLIB
|
|
fi
|
|
MAKE=${MAKE:-make}
|
|
#
|
|
# USER_CFLAGS and USER_FFLAGS are used only in test/Makefile.in
|
|
if test $DEBUG = "yes"; then
|
|
USER_CFLAGS="$CFLAGS -g"
|
|
USER_FFLAGS="$FFLAGS -g"
|
|
else
|
|
USER_CFLAGS="$CFLAGS -O"
|
|
USER_FFLAGS="$FFLAGS -O"
|
|
fi
|
|
#
|
|
if test -n "$arch_sun4" ; then
|
|
CC=${CC:-gcc}
|
|
F77=${FC:-f77}
|
|
if test $DEBUG = "yes"; then
|
|
if test "$CC" = "gcc"; then
|
|
CFLAGS="$CFLAGS -g -O -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
|
else
|
|
CFLAGS="$CFLAGS -g"
|
|
fi
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
if test "$enable_aio" = "no" ; then
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
else
|
|
AC_DEFINE(AIO_SUN,,[Define for SUN0S 4])
|
|
fi
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
fi
|
|
#
|
|
if test -n "$arch_solaris" || test -n "$arch_solaris86" ; then
|
|
CC=${CC:-cc}
|
|
F77=${FC:-f77}
|
|
if test $DEBUG = "yes"; then
|
|
if test "$CC" = "gcc" ; then
|
|
CFLAGS="$CFLAGS -g -O -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
|
else
|
|
CFLAGS="$CFLAGS -g -v"
|
|
fi
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
if test "$enable_aio" = "no" ; then
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
else
|
|
AC_DEFINE(AIO_SUN,,[Define for SUN0S 4])
|
|
fi
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
AC_DEFINE(SOLARIS,,[Define for Solaris])
|
|
if test $MPI = "mpich" ; then
|
|
TEST_CC=mpicc
|
|
TEST_F77=mpif77
|
|
else
|
|
TEST_CC="$CC"
|
|
TEST_F77="$F77"
|
|
fi
|
|
if test "$enable_aio" != "no" ; then
|
|
MPI_LIB="$MPI_LIB -laio"
|
|
ROMIO_LIBLIST="-laio"
|
|
fi
|
|
AR="ar cr"
|
|
# solaris does not have l option to ar
|
|
# solaris f90 does not have 8-byte integer type
|
|
# (it does now!!!! 11/29/01)
|
|
fi
|
|
#
|
|
if test -n "$arch_rs6000"; then
|
|
F77=$FC
|
|
if test -z "$CC"; then
|
|
AC_PROGRAMS_CHECK(CC, mpcc, cc)
|
|
echo "Using $CC"
|
|
fi
|
|
if test $NOF77 = 0 && test -z "$FC"; then
|
|
AC_PROGRAMS_CHECK(F77, mpxlf, f77)
|
|
echo "Using $F77"
|
|
fi
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
# Check that aio is available (many systems appear to have aio
|
|
# either installed improperly or turned off).
|
|
# The test is the following: if not cross compiling, try to run a
|
|
# program that includes a *reference* to aio_write but does not call it
|
|
# If the libraries are not set up correctly, then this will fail.
|
|
AC_MSG_CHECKING([whether aio routines can be used])
|
|
AC_TRY_RUN([
|
|
int main( int argc, char **argv )
|
|
{
|
|
if (argc > 10) aio_write();
|
|
return 0;
|
|
}
|
|
],aio_runs=yes,aio_runs=no,aio_runs=unknown)
|
|
AC_MSG_RESULT($aio_runs)
|
|
if test "$enable_aio" != "no" -a "$aio_runs" = "no" ; then
|
|
enable_aio=no
|
|
fi
|
|
if test "$enable_aio" = "no" ; then
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
else
|
|
AC_DEFINE(NO_FD_IN_AIOCB,,[Define for no fd in the aiocb])
|
|
AC_DEFINE(AIO_HANDLE_IN_AIOCB,,[Define for aio handle in aiocb])
|
|
fi
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
if test "$CC" = "mpcc" || test "$CC" = "mpCC" ; then
|
|
file_system_piofs=1
|
|
FILE_SYSTEM="piofs"
|
|
AC_MSG_RESULT([configuring for file systems piofs, ufs, and nfs])
|
|
else
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="$FILE_SYSTEM ufs nfs"
|
|
fi
|
|
AC_DEFINE(AIX,,[Define for AIX])
|
|
# assume long long exists.
|
|
longlongsize=${longlongsize:-8}
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
fi
|
|
#
|
|
if test -n "$arch_paragon"; then
|
|
CC=${CC:-icc}
|
|
F77=${FC:-if77}
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g"
|
|
else
|
|
if test "$CC" = "icc"; then
|
|
CFLAGS="$CFLAGS -Knoieee -Mvect -O3"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
fi
|
|
AR="ar860 cr$AR_LOCAL"
|
|
MPI_LIB="$MPI_LIB -nx"
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_pfs=1
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="pfs ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems pfs, ufs, and nfs])
|
|
fi
|
|
AC_DEFINE(PARAGON,,[Define for Intel Paragon])
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
# NO_AIO is if configuring for NFS/UFS. It doesn't affect PFS asynch. I/O.
|
|
# long long does not exist
|
|
longlongsize=${longlongsize:-0}
|
|
fi
|
|
#
|
|
if test -n "$arch_tflop" || test -n "$arch_tflops"; then
|
|
CC=${CC:-pgcc}
|
|
F77=${FC:-pgf77}
|
|
TFLOP_FLAGS="-cougar -D__PUMA"
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g $TFLOP_FLAGS"
|
|
else
|
|
if test "$CC" = "pgcc"; then
|
|
CFLAGS="$CFLAGS -Knoieee -Mvect -O3 $TFLOP_FLAGS"
|
|
else
|
|
CFLAGS="$CFLAGS -O $TFLOP_FLAGS"
|
|
fi
|
|
fi
|
|
AR="xar cr$AR_LOCAL"
|
|
RANLIB="xranlib"
|
|
MPI_LIB="$MPI_LIB"
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
FILE_SYSTEM="ufs"
|
|
AC_MSG_RESULT([configuring for file system ufs])
|
|
fi
|
|
fi
|
|
#
|
|
if test -n "$arch_freebsd" || test -n "$arch_LINUX" || test -n "$arch_LINUX_ALPHA" || test -n "$arch_netbsd" || test -n "$arch_openbsd" ; then
|
|
CC=${CC:-gcc}
|
|
if test -n "$arch_freebsd" || test -n "$arch_netbsd" || test -n "$arch_openbsd"; then
|
|
F77=${FC:-f77}
|
|
AC_DEFINE(FREEBSD,,[Define for FreeBSD])
|
|
PAC_HAVE_MOUNT_NFS
|
|
longlongsize=${longlongsize:-0}
|
|
# printf doesn't work properly and no integer*8 as far as I can tell
|
|
else
|
|
F77=${FC:-g77}
|
|
AC_DEFINE(LINUX,,[Define for Linux])
|
|
fi
|
|
if test $DEBUG = "yes" ; then
|
|
if test "$CC" = "gcc" ; then
|
|
CFLAGS="$CFLAGS -g -O -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
|
else
|
|
CFLAGS="$CFLAGS -g"
|
|
fi
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
if test "$enable_aio" != "yes" ; then
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
else
|
|
# Try to find the aio routines
|
|
use_aio=no
|
|
AC_HEADER_CHECK(aio.h,has_aio_h=yes,has_aio_h=no)
|
|
add_lib=""
|
|
AC_SEARCH_LIBS(aio_write,aio,add_lib="-laio")
|
|
# What function do we want -lrt for?
|
|
AC_HAVE_LIBRARY(rt,add_lib="$add_lib -lrt")
|
|
AC_SEARCH_LIBS(pthread_create,pthread,[add_lib="$add_lib -lpthread"
|
|
has_pthread=yes],[has_pthread=no])
|
|
AC_FUNC_CHECK(aio_write,has_aio_write=yes,has_aio_write=no)
|
|
if test "$has_aio_h" = "yes" -a "$has_aio_write" = "yes" -a \
|
|
"$has_pthread" = "yes" ; then
|
|
use_aio=yes
|
|
fi
|
|
# Check for aiocb_t as a shorthand for struct aiocb
|
|
AC_MSG_CHECKING([for aiocb_t])
|
|
AC_TRY_COMPILE([#include <aio.h>],
|
|
[aiocb_t a;],has_aiocb_t=yes,has_aiocb_t=no)
|
|
AC_MSG_RESULT($has_aiocb_t)
|
|
if test "$has_aiocb_t" = "no" ; then
|
|
AC_DEFINE(NEEDS_AIOCB_T,,[Define for aiocb_t definition needed])
|
|
fi
|
|
if test "$use_aio" = "yes" ; then
|
|
MPI_LIB="$MPI_LIB $add_lib"
|
|
ROMIO_LIBLIST="$ROMIO_LIBLIST $add_lib"
|
|
else
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
fi
|
|
fi
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
fi
|
|
#
|
|
if test -n "$arch_SX4" ; then
|
|
CC=${CC:-mpicc}
|
|
F77=${FC:-mpif90}
|
|
if test $DEBUG = "yes" ; then
|
|
CFLAGS="$CFLAGS -g"
|
|
FFLAGS="$FFLAGS -g"
|
|
else
|
|
USER_FFLAGS="$FFLAGS -Chopt"
|
|
CFLAGS="$CFLAGS -O"
|
|
FFLAGS="$FFLAGS -Chopt"
|
|
fi
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
AC_DEFINE(SX4,,[Define for NEC SX4])
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_sfs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="sfs nfs"
|
|
AC_MSG_RESULT([configuring for file systems sfs and nfs])
|
|
fi
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
fi
|
|
#
|
|
if test -n "$arch_hpux" || test -n "$arch_sppux" ; then
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g +w1"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
RANLIB=":"
|
|
if test -z "$MPI"; then
|
|
if test -f "/opt/mpi/include/mpi.h" ; then
|
|
echo "assuming that you want to use ROMIO with HP MPI"
|
|
MPI=hp
|
|
else
|
|
echo "assuming that you want to use ROMIO with MPICH"
|
|
MPI=mpich
|
|
fi
|
|
fi
|
|
if test $MPI = "mpich" ; then
|
|
mpi_mpich=1
|
|
MPI_LIB="$MPI_LIB -lV3"
|
|
CC=${CC:-cc -Ae}
|
|
F77=${FC:-f77 +U77}
|
|
fi
|
|
if test $MPI = "hp" ; then
|
|
mpi_hp=1
|
|
CC=${CC:-mpicc -Ae}
|
|
F77=${FC:-mpif77 +U77}
|
|
fi
|
|
if test $MPI = "lam" && test "$FC" != ""; then
|
|
FC="$FC +U77"
|
|
fi
|
|
FTESTDEFINE="external iargc, getarg"
|
|
if test -n "$arch_hpux" ; then
|
|
CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
|
|
AC_DEFINE(HPUX,,[Define for HPUX])
|
|
if test $MPI = "hp" ; then
|
|
F77=${FC:-mpif90 +U77}
|
|
else
|
|
F77=${FC:-f90 +U77}
|
|
fi
|
|
else
|
|
AC_DEFINE(SPPUX,,[Define for SPPUX (Convex)])
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
if test -n "$arch_hpux" ; then
|
|
AC_MSG_CHECKING([for struct flock64])
|
|
AC_TRY_COMPILE([#include <fcntl.h>],[
|
|
struct flock64 fl; int i=F_SETLKW64;],flock64_ok="yes",flock64_ok="no")
|
|
AC_MSG_RESULT($flock64_ok)
|
|
else
|
|
flock64_ok="yes"
|
|
fi
|
|
if test $flock64_ok = "yes" ; then
|
|
file_system_hfs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="hfs nfs"
|
|
AC_MSG_RESULT([configuring for file systems hfs and nfs])
|
|
else
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([no flock64; configuring for file systems ufs and nfs])
|
|
fi
|
|
fi
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
if test "$CC" != "gcc" ; then
|
|
ROMIO_TCFLAGS="-Ae"
|
|
fi
|
|
if test "$F77" != "g77" ; then
|
|
ROMIO_TFFLAGS="+U77"
|
|
fi
|
|
fi
|
|
#
|
|
if test -n "$arch_alpha" || test -n "$arch_ALPHA" ; then
|
|
CC=${CC:-cc}
|
|
F77=${FC:-f77}
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g -std1 -warnprotos -verbose"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
AC_DEFINE(AIO_PRIORITY_DEFAULT,,[Define for AIO priority is default])
|
|
MPI_LIB="$MPI_LIB -laio"
|
|
if test -z "$MPI" ; then
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
AC_DEFINE(DEC,,[Define for DEC/Compaq/HP Alpha])
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
ROMIO_LIBLIST="-laio"
|
|
fi
|
|
#
|
|
if test -n "$arch_CRAY" ; then
|
|
CC=${CC:-cc}
|
|
F77=${FC:-f90}
|
|
NOF77=1
|
|
FTESTDEFINE="integer ilen"
|
|
F77GETARG="call pxfgetarg(i, str, ilen, ierr)"
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
AC_DEFINE(NO_AIO,,[Define if AIO should not be used])
|
|
RANLIB=":"
|
|
CFLAGS="$CFLAGS -D_UNICOS"
|
|
AC_DEFINE(CRAY,,[Define if Cray])
|
|
if test -z "$MPI" || test -n "$mpi_sgi" ; then
|
|
MPI=cray
|
|
mpi_cray=1
|
|
mpi_sgi=""
|
|
# above is to disable configure tests specific to SGI MPI
|
|
AC_DEFINE(MPISGI,,[Define if SGI MPI])
|
|
AC_DEFINE(HAVE_MPI_COMBINERS,,[Define if MPI supports datatype combiners])
|
|
AC_DEFINE(NO_MPI_SGI_type_is_contig,,[Define if no types show contig])
|
|
fi
|
|
# MPISGI needed because of error in Cray's and SGI's
|
|
# MPI_Type_get_contents (does not increment reference count).
|
|
# Others needed because MPISGI needed.
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
fi
|
|
#
|
|
if test -n "$arch_sgi" ; then
|
|
arch_IRIX=1
|
|
ARCH=IRIX
|
|
fi
|
|
if test -n "$arch_IRIX64" ; then
|
|
arch_IRIX=1
|
|
fi
|
|
if test -n "$arch_IRIX32" ; then
|
|
arch_IRIX=1
|
|
fi
|
|
if test -n "$arch_IRIXN32" ; then
|
|
arch_IRIX=1
|
|
fi
|
|
if test -n "$arch_sgi5" ; then
|
|
arch_IRIX5=1
|
|
ARCH=IRIX
|
|
fi
|
|
#
|
|
PAC_GET_SPECIAL_SYSTEM_INFO
|
|
#
|
|
# special case 'sgi5' for use on MESHINE which is much like an SGI running
|
|
# irix 5 with r4400 chips, but does not have 'hinv', so above code doesn't
|
|
# work
|
|
if test -n "$arch_sgi5"; then
|
|
osversion=5
|
|
cputype=4400
|
|
IRIXARCH="$ARCH_$osversion"
|
|
IRIXARCH="$IRIXARCH_$cputype"
|
|
# now set arch_IRIX to 1
|
|
arch_IRIX=1
|
|
echo "IRIX-specific architecture is $IRIXARCH"
|
|
AC_DEFINE(IRIX,,[Define if IRIX])
|
|
fi
|
|
#
|
|
if test -n "$arch_IRIX"; then
|
|
CC=${CC:-cc}
|
|
F77=${FC:-f77}
|
|
if test $DEBUG = "yes"; then
|
|
CFLAGS="$CFLAGS -g -fullwarn"
|
|
else
|
|
CFLAGS="$CFLAGS -O"
|
|
fi
|
|
if test $osversion = 4 ; then
|
|
RANLIB="ar ts"
|
|
if test -n "$mpi_sgi"; then
|
|
AC_MSG_ERROR(["SGI's MPI doesn't work with IRIX 4.x"])
|
|
fi
|
|
elif test $osversion = 5 ; then
|
|
if test -n "$mpi_sgi"; then
|
|
AC_MSG_ERROR("SGI's MPI doesn't work with IRIX 5.x"])
|
|
fi
|
|
elif test $osversion = 6 ; then
|
|
if test -z "$MPI"; then
|
|
if test -f "/usr/include/mpi.h" ; then
|
|
echo "assuming that you want to use ROMIO with SGI's MPI"
|
|
MPI=sgi
|
|
mpi_sgi=1
|
|
else
|
|
echo "assuming that you want to use ROMIO with MPICH"
|
|
MPI=mpich
|
|
mpi_mpich=1
|
|
fi
|
|
fi
|
|
RANLIB=":"
|
|
AC_DEFINE(AIO_SIGNOTIFY_NONE,,[Define if no signotify])
|
|
if test $cputype -ge 5000 ; then
|
|
MIPS=4
|
|
else
|
|
MIPS=3
|
|
fi
|
|
fi
|
|
if test -n "$mpi_sgi" && test -z "$MPI_LIB" ; then
|
|
MPI_LIB="-lmpi"
|
|
fi
|
|
# check if pread64 is defined
|
|
PAC_HAVE_PREAD64
|
|
#
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="nfs"
|
|
AC_MSG_CHECKING(for xfs)
|
|
AC_TRY_COMPILE([
|
|
#include <aio.h>],
|
|
[aiocb64_t *t1;],file_system_xfs=1;FILE_SYSTEM="xfs $FILE_SYSTEM";)
|
|
if test "$file_system_xfs" = 1 ; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
file_system_ufs=1
|
|
FILE_SYSTEM="ufs $FILE_SYSTEM"
|
|
fi
|
|
AC_MSG_RESULT([configuring for file systems $FILE_SYSTEM])
|
|
fi
|
|
AC_DEFINE(IRIX,,[Define if IRIX])
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=8)"
|
|
fi
|
|
|
|
AC_HAVE_FUNCS(memalign)
|
|
PAC_TEST_MPIR_STATUS_SET_BYTES
|
|
|
|
if test $NOF77 = 0 ; then
|
|
echo "checking Fortran external names"
|
|
PAC_GET_FORTNAMES
|
|
if test -n "$WDEF" ; then
|
|
CFLAGS="$CFLAGS $WDEF"
|
|
fi
|
|
rm -f test/mpif.h
|
|
if test "$MPI_INCLUDE_DIR" != "." && test $FROM_MPICH = 0 && \
|
|
test $FROM_MPICH2 = 0 ; then
|
|
if test ! -d test ; then mkdir test ; fi
|
|
ln -s $MPI_INCLUDE_DIR/mpif.h test
|
|
fi
|
|
else
|
|
F77=":"
|
|
fi
|
|
#
|
|
# This is checked by the top-level OpenMPI configure-script.
|
|
# Avoid redefinition
|
|
#
|
|
# PAC_C_INLINE
|
|
|
|
# Header files
|
|
PAC_CHECK_HEADERS(unistd.h)
|
|
#
|
|
PAC_INT_LT_POINTER()
|
|
#
|
|
PAC_LONG_LONG_64()
|
|
#
|
|
dnl PAC_LONG_64()
|
|
#
|
|
if test -n "$longlongsize"; then
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
PAC_MPI_LONG_LONG_INT()
|
|
else
|
|
AC_DEFINE(HAVE_MPI_LONG_LONG_INT,,[Define if supports long long int])
|
|
fi
|
|
fi
|
|
#
|
|
if test -n "$OFFSET_KIND" -a "A$MPI_OFFSET_KIND1" = "A!" ; then
|
|
MPI_OFFSET_KIND1=" INTEGER MPI_OFFSET_KIND"
|
|
MPI_OFFSET_KIND2=" PARAMETER (MPI_OFFSET_KIND=$OFFSET_KIND)"
|
|
else
|
|
if test "$FORTRAN_MPI_OFFSET" = "integer*8" && test "A$MPI_OFFSET_KIND2" = "A!" && test $NOF77 = 0 ; then
|
|
PAC_MPI_OFFSET_KIND()
|
|
fi
|
|
#
|
|
if test "$FORTRAN_MPI_OFFSET" = "integer" && test "A$MPI_OFFSET_KIND2" = "A!" && test $NOF77 = 0 ; then
|
|
PAC_MPI_OFFSET_KIND_4BYTE()
|
|
fi
|
|
fi
|
|
#
|
|
# check if MPI_Info functions are defined in the MPI implementation
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
PAC_MPI_INFO()
|
|
else
|
|
AC_DEFINE(HAVE_MPI_INFO,,[Define if MPI Info is available])
|
|
HAVE_MPI_INFO="#define HAVE_MPI_INFO"
|
|
MPI_FINFO1="!"
|
|
MPI_FINFO2="!"
|
|
MPI_FINFO3="!"
|
|
MPI_FINFO4="!"
|
|
fi
|
|
#
|
|
if test -n "$mpi_sgi"; then
|
|
if test -z "$HAVE_MPI_INFO" ; then
|
|
PAC_CHECK_MPI_SGI_INFO_NULL # is MPI_INFO_NULL defined in mpi.h?
|
|
fi
|
|
PAC_TEST_MPI_SGI_type_is_contig
|
|
PAC_TEST_MPI_COMBINERS
|
|
PAC_TEST_MPI_HAVE_OFFSET_KIND
|
|
fi
|
|
#
|
|
# check if darray and subarray constructors are defined in the MPI implementation
|
|
if test $FROM_MPICH = 0 ; then
|
|
PAC_MPI_DARRAY_SUBARRAY()
|
|
else
|
|
AC_DEFINE(HAVE_MPI_DARRAY_SUBARRAY,,[Define if Darray is available])
|
|
HAVE_MPI_DARRAY_SUBARRAY="#define HAVE_MPI_DARRAY_SUBARRAY"
|
|
MPI_FARRAY1="!"
|
|
MPI_FARRAY2="!"
|
|
MPI_FARRAY3="!"
|
|
MPI_FARRAY4="!"
|
|
MPI_FARRAY5="!"
|
|
MPI_FARRAY6="!"
|
|
MPI_FARRAY7="!"
|
|
fi
|
|
#
|
|
# Check to see if the compiler accepts prototypes
|
|
dnl PAC_CHECK_CC_PROTOTYPES(AC_DEFINE(HAVE_PROTOTYPES))
|
|
#
|
|
#
|
|
# Test for weak symbol support...
|
|
# We can't put # in the message because it causes autoconf to generate
|
|
# incorrect code
|
|
HAVE_WEAK_SYMBOLS=0
|
|
if test -n "$arch_hpux" || test -n "$arch_sppux" ; then
|
|
# multiple secondary definitions not allowed by HP compilers
|
|
# Fortran interface for HP already uses one secondary defn.
|
|
# therefore, do not use this method for profiling interface.
|
|
# build profiling interface explicitly.
|
|
TRY_WEAK_SYMBOLS=0
|
|
fi
|
|
if test $TRY_WEAK_SYMBOLS = 1 ; then
|
|
AC_MSG_CHECKING(for weak symbol support)
|
|
AC_TRY_LINK([
|
|
#pragma weak PFoo = Foo
|
|
int Foo(a) { return a; }
|
|
],[return PFoo(1);],has_pragma_weak=1)
|
|
#
|
|
# Some systems (Linux ia64 and ecc, for example), support weak symbols
|
|
# only within a single object file! This tests that case.
|
|
if test "$has_pragma_weak" = 1 ; then
|
|
AC_MSG_RESULT([pragma weak])
|
|
AC_MSG_CHECKING([that weak symbols are visible to other files])
|
|
rm -f conftest*
|
|
cat >>conftest1.c <<EOF
|
|
#pragma weak PFoo = Foo
|
|
int Foo(int);
|
|
int Foo(a) { return a; }
|
|
EOF
|
|
cat >>conftest2.c <<EOF
|
|
int main() {
|
|
return PFoo(0);}
|
|
EOF
|
|
ac_link2='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest1.c conftest2.c $LIBS >conftest.out 2>&1'
|
|
if eval $ac_link2 ; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
echo "$ac_link2" >>config.log
|
|
echo "Failed program was" >>config.log
|
|
cat conftest1.c >>config.log
|
|
cat conftest2.c >>config.log
|
|
if test -s conftest.out ; then cat conftest.out >> config.log ; fi
|
|
AC_MSG_RESULT(no)
|
|
has_pragma_weak=0
|
|
fi
|
|
rm -f conftest*
|
|
fi
|
|
if test "$has_pragma_weak" = 1 ; then
|
|
HAVE_WEAK_SYMBOLS=1
|
|
AC_DEFINE(HAVE_WEAK_SYMBOLS,,[Define if weak symbols available])
|
|
AC_DEFINE(HAVE_PRAGMA_WEAK,,[Define if pragma weak available])
|
|
else
|
|
AC_TRY_LINK([
|
|
#pragma _HP_SECONDARY_DEF Foo PFoo
|
|
int Foo(a) { return a; }
|
|
],[return PFoo(1);],has_pragma_hp_secondary=1)
|
|
if test "$has_pragma_hp_secondary" = 1 ; then
|
|
AC_MSG_RESULT([pragma _HP_SECONDARY_DEF])
|
|
HAVE_WEAK_SYMBOLS=1
|
|
AC_DEFINE(HAVE_WEAK_SYMBOLS,,[Define if weak symbols available])
|
|
AC_DEFINE(HAVE_PRAGMA_HP_SEC_DEF,,[Define for HP weak pragma])
|
|
else
|
|
AC_TRY_LINK([
|
|
#pragma _CRI duplicate PFoo as Foo
|
|
int Foo(a) { return a; }
|
|
],[return PFoo(1);],has_pragma_cri_duplicate=1)
|
|
if test "$has_pragma_cri_duplicate" = 1 ; then
|
|
AC_MSG_RESULT([pragma _CRI duplicate x as y])
|
|
HAVE_WEAK_SYMBOLS=1
|
|
AC_DEFINE(HAVE_WEAK_SYMBOLS,,[Define if weak symbols available])
|
|
AC_DEFINE(HAVE_PRAGMA_CRI_DUP,,[Define for CRAY weak dup])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_WEAK_SYMBOLS)
|
|
#
|
|
# if FILE_SYSTEM is not set above, use ufs and nfs as default
|
|
#
|
|
if test -z "$FILE_SYSTEM" ; then
|
|
file_system_ufs=1
|
|
file_system_nfs=1
|
|
FILE_SYSTEM="ufs nfs"
|
|
AC_MSG_RESULT([configuring for file systems ufs and nfs])
|
|
fi
|
|
#
|
|
if test -n "$file_system_nfs" ; then
|
|
# Check for problems with locks
|
|
AC_MSG_CHECKING([whether file locks work with NFS])
|
|
AC_TRY_RUN([
|
|
#include <fcntl.h>
|
|
#include <errno.h>
|
|
#include <unistd.h>
|
|
|
|
int main()
|
|
{
|
|
struct flock lock;
|
|
int fd, err;
|
|
|
|
lock.l_type = F_WRLCK;
|
|
lock.l_start = 0;
|
|
lock.l_whence = SEEK_SET;
|
|
lock.l_len = 100;
|
|
|
|
fd = open("conftest.dat", O_RDWR | O_CREAT, 0644);
|
|
|
|
err = fcntl(fd, F_SETLKW, &lock);
|
|
|
|
/* printf("err = %d, errno = %d\n", err, errno); */
|
|
close(fd);
|
|
return err;
|
|
}],nfs_locks_work=yes,nfs_locks_work=no,nfs_locks_work=unknown)
|
|
AC_MSG_RESULT($nfs_locks_work)
|
|
if test "$nfs_locks_work" != "yes" ; then
|
|
AC_MSG_WARN([File locks do not work with NFS. See the Installation and
|
|
users manual for instructions on fixing this])
|
|
fi
|
|
fi
|
|
if test -n "$file_system_nfs"; then
|
|
AC_DEFINE(NFS,,[Define for NFS])
|
|
fi
|
|
if test -n "$file_system_ufs"; then
|
|
AC_DEFINE(UFS,,[Define for UFS])
|
|
fi
|
|
if test -n "$file_system_hfs"; then
|
|
AC_DEFINE(HFS,,[Define for HFS])
|
|
fi
|
|
if test -n "$file_system_sfs"; then
|
|
AC_DEFINE(SFS,,[Define for SFS])
|
|
fi
|
|
if test -n "$file_system_xfs"; then
|
|
AC_DEFINE(XFS,,[Define for XFS])
|
|
PAC_GET_XFS_MEMALIGN
|
|
fi
|
|
if test -n "$file_system_pvfs"; then
|
|
# Use ROMIO_PVFS instead of PVFS because FREEBSD defines PVFS.
|
|
AC_DEFINE(ROMIO_PVFS,,[Define for Romio with PVFS])
|
|
fi
|
|
if test -n "$file_system_pfs"; then
|
|
AC_DEFINE(PFS,,[Define for PFS])
|
|
fi
|
|
if test -n "$file_system_testfs"; then
|
|
AC_DEFINE(ROMIO_TESTFS,,[Define for TESTFS])
|
|
fi
|
|
if test -n "$file_system_piofs"; then
|
|
AC_DEFINE(PIOFS,,[Define for PIOFS])
|
|
USER_CFLAGS="$USER_CFLAGS -bI:/usr/include/piofs/piofs.exp"
|
|
ROMIO_LFLAGS="$USER_FFLAGS -bI:/usr/include/piofs/piofs.exp"
|
|
USER_FFLAGS="$USER_FFLAGS -bI:/usr/include/piofs/piofs.exp"
|
|
fi
|
|
if test -n "$mpi_mpich"; then
|
|
if test "$FROM_MPICH2" = 0; then
|
|
AC_DEFINE(NEEDS_MPI_TEST,,[Define if mpi_test needed])
|
|
AC_DEFINE(MPICH,,[Define if using MPICH])
|
|
if test -z "$arch_SX4" ; then
|
|
MPIOF_H_INCLUDED=1
|
|
fi
|
|
fi
|
|
fi
|
|
if test -n "$mpi_sgi"; then
|
|
AC_DEFINE(MPISGI,,[Define if SGI MPI])
|
|
fi
|
|
if test -n "$mpi_lam"; then
|
|
AC_DEFINE(MPILAM,,[Define if using LAM/MPI])
|
|
fi
|
|
if test -n "$mpi_hp"; then
|
|
AC_DEFINE(MPIHP,,[Define if using HP MPI])
|
|
if test "$NOF77" = 0; then
|
|
PAC_CHECK_MPIOF_H
|
|
fi
|
|
fi
|
|
#
|
|
PAC_FUNC_STRERROR
|
|
if test -z "$srcdir" -o "$srcdir" = "." ; then srcdir="$ROMIO_HOME" ; fi
|
|
AC_SUBST(srcdir)
|
|
if test "$FROM_MPICH2" = 0 ; then
|
|
if test -z "$LIBNAME"; then
|
|
LIBNAME="$ROMIO_HOME/lib/$ARCH/libmpio.a"
|
|
fi
|
|
#
|
|
if test ! -d $ROMIO_HOME/lib ; then
|
|
mkdir $ROMIO_HOME/lib
|
|
fi
|
|
if test ! -d $ROMIO_HOME/lib/$ARCH ; then
|
|
mkdir $ROMIO_HOME/lib/$ARCH
|
|
fi
|
|
else
|
|
if test -n "$top_build_dir" -a -d "$top_build_dir/lib" ; then
|
|
LIBNAME=$top_build_dir/lib/lib${MPILIBNAME}.a
|
|
else
|
|
LIBNAME="$ROMIO_HOME/lib${MPILIBNAME}.a"
|
|
fi
|
|
fi
|
|
#
|
|
if test $NOF77 = 1 ; then
|
|
F77=":"
|
|
else
|
|
FORTRAN_TEST="fperf fcoll_test fmisc pfcoll_test"
|
|
fi
|
|
#
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
PAC_TEST_MPI
|
|
PAC_NEEDS_FINT
|
|
else
|
|
NEEDS_MPI_FINT=""
|
|
fi
|
|
#
|
|
if test "$MPI_INCLUDE_DIR" = "." ; then
|
|
ROMIO_INCLUDE="-I../include"
|
|
else
|
|
ROMIO_INCLUDE="-I../include -I$MPI_INCLUDE_DIR"
|
|
fi
|
|
#
|
|
TEST_LIBNAME=$LIBNAME
|
|
MPIRUN=mpirun
|
|
#
|
|
# if MPICH, use mpicc in test programs
|
|
#
|
|
if test $FROM_MPICH = 1 ; then
|
|
MPICH_HOME=`dirname $ROMIO_HOME`
|
|
if test -z "$MPI_BIN_DIR" ; then MPI_BIN_DIR=$MPICH_HOME/bin ; fi
|
|
TEST_CC=$MPI_BIN_DIR/mpicc
|
|
MPI_LIB=""
|
|
ROMIO_INCLUDE=""
|
|
USER_CFLAGS=""
|
|
USER_FFLAGS=""
|
|
TEST_LIBNAME=""
|
|
MPIRUN=$MPI_BIN_DIR/mpirun
|
|
if test -n "$arch_SX4" || test -n "$arch_hpux" ; then
|
|
TEST_F77=$MPI_BIN_DIR/mpif90
|
|
else
|
|
TEST_F77=$MPI_BIN_DIR/mpif77
|
|
fi
|
|
CC=$MPI_BIN_DIR/mpicc
|
|
AC_DEFINE(HAVE_STATUS_SET_BYTES,,[Define if status_set_bytes available])
|
|
fi
|
|
# For now, separate the mpich2 from mpich cases
|
|
if test $FROM_MPICH2 = 1 ; then
|
|
MPICH_HOME=`dirname $ROMIO_HOME`
|
|
MPICH_HOME=`dirname $MPICH_HOME`
|
|
MPICH_HOME=`dirname $MPICH_HOME`
|
|
if test -z "$MPI_BIN_DIR" ; then MPI_BIN_DIR=$MPICH_HOME/bin ; fi
|
|
# No special compiler script.
|
|
# BUT we need the include paths
|
|
CC="$CC -I${use_top_srcdir}/src/include -I${top_build_dir}/src/include"
|
|
TEST_CC="$CC"
|
|
MPI_LIB="$LIBNAME"
|
|
ROMIO_INCLUDE=""
|
|
USER_CFLAGS=""
|
|
USER_FFLAGS=""
|
|
TEST_LIBNAME=""
|
|
MPIRUN=$MPI_BIN_DIR/mpiexec
|
|
AC_DEFINE(HAVE_STATUS_SET_BYTES,,[Define if status_set_bytes available])
|
|
fi
|
|
#
|
|
if test $MPI != "mpich" -o "$FROM_MPICH2" = 1 ; then
|
|
AC_DEFINE(PRINT_ERR_MSG,,[Define for printing error messages])
|
|
fi
|
|
#
|
|
if test -z "$TEST_CC" ; then
|
|
TEST_CC="$CC"
|
|
fi
|
|
if test -z "$TEST_F77" ; then
|
|
TEST_F77="$F77"
|
|
fi
|
|
#
|
|
CFLAGS="$CFLAGS -DHAVE_ROMIOCONF_H"
|
|
#
|
|
echo "setting CC to $CC"
|
|
echo "setting F77 to $F77"
|
|
echo "setting TEST_CC to $TEST_CC"
|
|
echo "setting TEST_F77 to $TEST_F77"
|
|
echo "setting CFLAGS to $CFLAGS"
|
|
echo "setting USER_CFLAGS to $USER_CFLAGS"
|
|
echo "setting USER_FFLAGS to $USER_FFLAGS"
|
|
#
|
|
VPATH='VPATH = .:${srcdir}'
|
|
AC_SUBST(VPATH)
|
|
AC_SUBST(ARCH)
|
|
AC_SUBST(FILE_SYSTEM)
|
|
AC_SUBST(CC)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(USER_CFLAGS)
|
|
AC_SUBST(USER_FFLAGS)
|
|
AC_SUBST(MIPS)
|
|
AC_SUBST(BITS)
|
|
AC_SUBST(MPI)
|
|
AC_SUBST(AR)
|
|
AC_SUBST(RANLIB)
|
|
AC_SUBST(MPI_INCLUDE_DIR)
|
|
AC_SUBST(MPI_LIB)
|
|
AC_SUBST(F77)
|
|
AC_SUBST(NOF77)
|
|
AC_SUBST(NOPROFILE)
|
|
AC_SUBST(MAKE)
|
|
AC_SUBST(arch_IRIX)
|
|
AC_SUBST(ROMIO_HOME)
|
|
AC_SUBST(LIBNAME)
|
|
AC_SUBST(TEST_LIBNAME)
|
|
AC_SUBST(LL)
|
|
AC_SUBST(F77GETARG)
|
|
AC_SUBST(F77IARGC)
|
|
AC_SUBST(FTESTDEFINE)
|
|
AC_SUBST(FORTRAN_MPI_OFFSET)
|
|
AC_SUBST(FROM_MPICH)
|
|
AC_SUBST(FROM_MPICH2)
|
|
AC_SUBST(NEEDS_MPI_FINT)
|
|
AC_SUBST(HAVE_MPI_INFO)
|
|
AC_SUBST(BUILD_MPI_INFO)
|
|
AC_SUBST(HAVE_MPI_DARRAY_SUBARRAY)
|
|
AC_SUBST(BUILD_MPI_ARRAY)
|
|
AC_SUBST(DEFINE_MPI_OFFSET)
|
|
AC_SUBST(MPI_FINFO1)
|
|
AC_SUBST(MPI_FINFO2)
|
|
AC_SUBST(MPI_FINFO3)
|
|
AC_SUBST(MPI_FINFO4)
|
|
AC_SUBST(MPI_FARRAY1)
|
|
AC_SUBST(MPI_FARRAY2)
|
|
AC_SUBST(MPI_FARRAY3)
|
|
AC_SUBST(MPI_FARRAY4)
|
|
AC_SUBST(MPI_FARRAY5)
|
|
AC_SUBST(MPI_FARRAY6)
|
|
AC_SUBST(MPI_FARRAY7)
|
|
AC_SUBST(MPI_OFFSET_KIND1)
|
|
AC_SUBST(MPI_OFFSET_KIND2)
|
|
AC_SUBST(TEST_CC)
|
|
AC_SUBST(TEST_F77)
|
|
AC_SUBST(ROMIO_INCLUDE)
|
|
AC_SUBST(ROMIO_LFLAGS)
|
|
AC_SUBST(ROMIO_LIBLIST)
|
|
AC_SUBST(ROMIO_TCFLAGS)
|
|
AC_SUBST(ROMIO_TCPPFLAGS)
|
|
AC_SUBST(ROMIO_TFFLAGS)
|
|
AC_SUBST(MPIRUN)
|
|
AC_SUBST(FORTRAN_TEST)
|
|
if test ! -d adio ; then mkdir adio ; fi
|
|
if test ! -d adio/include ; then mkdir adio/include ; fi
|
|
if test ! -d mpi2-other ; then mkdir mpi2-other ; fi
|
|
#
|
|
# Make sure we remove any configuration file incase there is out-of-date data.
|
|
# We remove the version in include in case this is a vpath build
|
|
rm -f adio/include/romioconf.h ${use_top_srcdir}/src/mpi/romio/adio/include/romioconf.h ${use_top_srcdir}/adio/include/romioconf.h
|
|
#
|
|
# Create makefiles for all of the adio devices. Only the ones that
|
|
# are active will be called by the top level ROMIO make
|
|
AC_OUTPUT_COMMANDS([chmod 755 util/romioinstall test/runtests])
|
|
AC_OUTPUT(Makefile mpi-io/Makefile mpi2-other/info/Makefile \
|
|
mpi2-other/array/Makefile adio/common/Makefile \
|
|
test/Makefile test/misc.c test/large_file.c \
|
|
test/runtests util/romioinstall include/mpio.h \
|
|
include/mpiof.h \
|
|
adio/ad_nfs/Makefile adio/ad_ufs/Makefile \
|
|
adio/ad_xfs/Makefile adio/ad_hfs/Makefile \
|
|
adio/ad_sfs/Makefile adio/ad_pfs/Makefile \
|
|
adio/ad_testfs/Makefile adio/ad_pvfs/Makefile \
|
|
adio/ad_piofs/Makefile \
|
|
mpi-io/fortran/Makefile mpi2-other/info/fortran/Makefile \
|
|
mpi2-other/array/fortran/Makefile test/fmisc.f \
|
|
test/fcoll_test.f test/pfcoll_test.f test/fperf.f )
|
|
#
|
|
rm -f *.o
|
|
if test "$ROMIO_NO_BANNER" != "yes" -a "$FROM_MPICH" = 0 -a \
|
|
$FROM_MPICH2 = 0 ; then
|
|
cat <<EOF
|
|
|
|
Please register your copy of ROMIO with us by sending email
|
|
to majordomo@mcs.anl.gov with the message
|
|
subscribe romio-users
|
|
This will enable us to notify you of new releases of ROMIO
|
|
as well as bug fixes.
|
|
|
|
EOF
|
|
fi
|
|
if test $FROM_MPICH2 = 1 -a "$NOF77" = 0 ; then
|
|
sed 5d test/fcoll_test.f > test/tmp
|
|
mv test/tmp test/fcoll_test.f
|
|
sed 5d test/pfcoll_test.f > test/tmp
|
|
mv test/tmp test/fcoll_test.f
|
|
sed 5d test/fperf.f > test/tmp
|
|
mv test/tmp test/fperf.f
|
|
sed 5d test/fmisc.f > test/tmp
|
|
mv test/tmp test/fmisc.f
|
|
fi
|
|
if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then
|
|
AC_MSG_RESULT([Configure done. Now type make])
|
|
fi
|
|
dnl PAC_SUBDIR_CACHE_CLEANUP
|
|
exit 0
|