Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

279 lines
7.8 KiB

dnl @synopsis ZAC_ARG_CONFIG_MPI
dnl
dnl Test a variety of MPI options:
dnl --enable-mpi - Turns MPI compiling mode on
dnl --with-mpi - specify root directory of MPI
dnl --with-mpi-compilers - Turns on MPI compiling mode and sets the MPI C++
dnl compiler C, and Fortran
dnl --with-mpi-incdir - specify include directory for MPI
dnl --with-mpi-libs - specify MPI libraries
dnl --with-mpi-libdir - specify location of MPI libraries
dnl
dnl If any of these options are set, HAVE_MPI will be defined for both
dnl Autoconf and Automake, and HAVE_MPI will be defined in the
dnl generated config.h file
dnl
dnl if --disable-mpi, then Zoltan will build serial MPI.
dnl
dnl --enable-mpi and --with-mpi-compilers are the default.
dnl
dnl --without-mpi is actually a user error, but we'll interpret it as --disable-mpi
dnl
dnl If CC, CXX, F77 and/or F90/FTN/FC have been set by the user, and MPI compilers
dnl are desired, these will be assumed to be the MPI compilers.
dnl
dnl This was adapted from the Trilinos TAC_ARG_CONFIG_MPI.
dnl
AC_DEFUN([ZAC_ARG_CONFIG_MPI],
[
HAVE_PKG_MPI=unset
SEEK_MPI_COMPILERS=unset
MPI_COMPILER_PATH=unset
AC_ARG_ENABLE(mpi,
[AC_HELP_STRING([--enable-mpi],[enable MPI support])],
[
if test X${enableval} = Xno; then
HAVE_PKG_MPI=no
else
HAVE_PKG_MPI=yes
fi
]
)
AC_ARG_WITH(mpi,
[AC_HELP_STRING([--with-mpi=MPIROOT],[the MPI root directory (above bin,lib,include), enables MPI])],
[
if test X${withval} = Xno; then
HAVE_PKG_MPI=no
else
HAVE_PKG_MPI=yes
if test X${withval} != Xyes; then
MPI_DIR=${withval}
fi
fi
]
)
AC_ARG_WITH(mpi-compilers,
[AC_HELP_STRING([--with-mpi-compilers={yes/no/path}],[Find MPI compilers/Don't use MPI compilers/Find MPI compilers in path])],
[
HAVE_PKG_MPI=yes
if test X${withval} = Xno; then
SEEK_MPI_COMPILERS=no
else
SEEK_MPI_COMPILERS=yes
if test X${withval} != Xyes; then
MPI_COMPILER_PATH=${withval}
fi
fi
],
[
if test X${HAVE_PKG_MPI} != Xno; then
SEEK_MPI_COMPILERS=yes
HAVE_PKG_MPI=yes
fi
]
)
dnl Using MPI is the default
if test X${HAVE_PKG_MPI} = unset ; then
HAVE_PKG_MPI=yes
fi
if test X${SEEK_MPI_COMPILERS} = Xyes; then
if test X${MPI_COMPILER_PATH} != Xunset ; then
# MPI_SEEK_PATH=$MPI_COMPILER_PATH$PATH_SEPARATOR$PATH
MPI_SEEK_PATH=$MPI_COMPILER_PATH
elif test -n "${MPI_DIR}" ; then
# MPI_SEEK_PATH=$MPI_DIR/bin$PATH_SEPARATOR$PATH
MPI_SEEK_PATH=$MPI_DIR/bin
else
MPI_SEEK_PATH=$PATH
fi
dnl Find C MPI compiler if MPI_CC is not already defined
if test -z "${MPI_CC}"; then
if test -f "${CC}"; then
MPI_CC=${CC}
else
if test -n "${CC}" ; then
MPI_CC_CANDIDATE=${CC}
else
MPI_CC_CANDIDATE=mpicc
fi
AC_PATH_PROG(MPI_CC, ${MPI_CC_CANDIDATE}, [notFound], [PATH = ${MPI_SEEK_PATH}])
if test "${MPI_CC}" != "notFound" ; then
CC=${MPI_CC}
else
echo "-----"
echo "Cannot find MPI C compiler in " ${MPI_SEEK_PATH}
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
echo "or specify a C compiler using CC=<compiler>"
echo "or --disable-mpi"
echo "-----"
AC_MSG_ERROR([MPI C compiler not found.])
fi
fi
fi
if test "X$ac_cv_use_zoltan_cppdriver" = "Xyes"; then
dnl Find C++ MPI compiler if MPI_CXX is not already defined
if test -z "${MPI_CXX}"; then
if test -f "${CXX}"; then
MPI_CXX=${CXX}
else
if test -n "${CXX}" ; then
MPI_CXX_CANDIDATES=${CXX}
else
MPI_CXX_CANDIDATES="[mpicxx mpic++ mpiCC]"
fi
AC_PATH_PROGS(MPI_CXX, ${MPI_CXX_CANDIDATES}, [notFound], [PATH = ${MPI_SEEK_PATH}])
if test "${MPI_CXX}" != "notFound" ; then
CXX=${MPI_CXX}
else
echo "-----"
echo "Cannot find MPI C++ compiler in " ${MPI_SEEK_PATH}
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
echo "or specify a C++ compiler using CXX=<compiler>"
echo "or --disable-mpi"
echo "-----"
AC_MSG_ERROR([MPI C++ compiler not found.])
fi
fi
fi
fi
# if test "X$ac_cv_use_fortran" = "Xyes"; then
# dnl Find a Fortran 77 MPI compiler if MPI_F77 is not already defined
#
# if test -z "${MPI_F77}"; then
# MPI_F77_CANDIDATE=mpif77
# if test -n "${F77}"; then
# MPI_F77_CANDIDATE=${F77}
# fi
#
# AC_PATH_PROG(MPI_F77, ${MPI_F77_CANDIDATE}, [notFound], [PATH = ${MPI_SEEK_PATH}])
#
# if test "${MPI_F77}" != "notFound" ; then
# F77=${MPI_F77}
# else
# echo "-----"
# echo "Cannot find MPI Fortan 77 compiler."
# echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
# echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
# echo "or specify a fortran 77 compiler using F77=<compiler>"
# echo "-----"
# AC_MSG_ERROR([MPI C compiler not found.])
# fi
# fi
# fi
if test "X$ac_cv_use_fortran90" = "Xyes"; then
dnl Find a Fortran 90 MPI compiler if MPI_F90 is not already defined
if test -z "${MPI_FC}"; then
if test -f "${FC}"; then
MPI_FC=${FC}
else
MPI_FC_CANDIDATES=""
if test -n "${FC}"; then
MPI_FC_CANDIDATES=${FC}
elif test -n "${FTN}"; then
MPI_FC_CANDIDATES=${FTN}
elif test -n "${F90}"; then
MPI_FC_CANDIDATES=${F90}
fi
if test -n "${MPI_FC_CANDIDATES}" && test -f ${MPI_FC_CANDIDATES} ; then
MPI_FC=${MPI_FC_CANDIDATES}
else
if test -z "${MPI_FC_CANDIDATES}"; then
MPI_FC_CANDIDATES="[mpif90 mpif77]"
fi
AC_PATH_PROGS(MPI_FC, ${MPI_FC_CANDIDATES}, [notFound], [PATH = ${MPI_SEEK_PATH}])
if test "${MPI_FC}" != "notFound" ; then
FC=${MPI_FC}
else
echo "-----"
echo "Cannot find MPI Fortran 90 compiler in " ${MPI_SEEK_PATH}
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
echo "or specify a fortran 90 compiler using FC=<compiler>"
echo "-----"
AC_MSG_ERROR([MPI C compiler not found.])
fi
fi
fi
fi
fi
fi
#AC_ARG_WITH(mpi-include,
#[AC_HELP_STRING([--with-mpi-include],[Obsolete. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'.])],
#[AC_MSG_ERROR([--with-mpi-include is an obsolte option. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'. For example '--with-mpi-incdir=/usr/lam_path/include'.])]
#)
AC_ARG_WITH(mpi-libs,
[AC_HELP_STRING([--with-mpi-libs="LIBS"],[MPI libraries @<:@"-lmpi"@:>@])],
[
MPI_LIBS=${withval}
AC_MSG_CHECKING(user-defined MPI libraries)
AC_MSG_RESULT([${MPI_LIBS}])
]
)
AC_ARG_WITH(mpi-incdir,
[AC_HELP_STRING([--with-mpi-incdir=DIR],[MPI include directory @<:@MPIROOT/include@:>@ Do not use -I])],
[
MPI_INC=${withval}
AC_MSG_CHECKING(user-defined MPI includes)
AC_MSG_RESULT([${MPI_INC}])
]
)
AC_ARG_WITH(mpi-libdir,
[AC_HELP_STRING([--with-mpi-libdir=DIR],[MPI library directory @<:@MPIROOT/lib@:>@ Do not use -L])],
[
MPI_LIBDIR=${withval}
AC_MSG_CHECKING(user-defined MPI library directory)
AC_MSG_RESULT([${MPI_LIBDIR}])
]
)
AC_MSG_CHECKING(whether we are using MPI)
AC_MSG_RESULT([${HAVE_PKG_MPI}])
if test "X${HAVE_PKG_MPI}" = "Xyes"; then
AC_DEFINE(HAVE_MPI,,[define if we want to use MPI])
fi
dnl Define Automake version of HAVE_MPI if appropriate
AM_CONDITIONAL(HAVE_MPI, [test "X${HAVE_PKG_MPI}" = "Xyes"])
])