📄 mpif77.m4
字号:
dnl ######################################################################dnldnl File: fortran_mpi.m4dnl Depends on: f77-90.m4 and fortflags.m4dnldnl Purpose: Set the right mpi include variablesdnldnl Version: $Id: mpif77.m4,v 1.1 2005/04/29 14:47:06 kruger Exp $dnldnl Copyright Tech-X Corporation, 2001-2005. Redistribution alloweddnl provided this copyright statement remains intact.dnldnl ######################################################################dnl ######################################################################dnldnl Set the variables: dnl MPI_INCLUDESdnl MPILDFLAGSdnl MPI_LIBSdnl FC_MPI_LINKdnldnl Notes:dnl o mpi_link allows linking of dummy routines for building serial dnl o mpi_link allows linking of dummy routines for building serial dnl verson of codes without building mpi (see mpi_serial.f90)dnl o Some people want distinction between f90 and mpif90. We don't.dnl If you want FC=MPIF90, put it in the configure.indnldnl SEK - I'm trying to maintain backward compatibility with Jimdnl Amundsen but this is a pain b/c Tech-X does things differentlydnl ######################################################################dnl ----------------------------------------------------------------------dnl Set defaults for convenience. Perhaps irrelevent since I checkdnl several placesdnl ----------------------------------------------------------------------case "$host" in *-linux-gnu) DEFAULT_MPI_PREFIX=/usr/local DEFAULT_MPI_INCLUDE_DIR=$DEFAULT_MPI_PREFIX/include if test -f "$DEFAULT_MPI_INCLUDE_DIR/mpif.h"; then lam_count=`grep -c LAM "$DEFAULT_MPI_INCLUDE_DIR/mpif.h"` if test "$lam_count" -gt "0" ; then # Assume we have LAM DEFAULT_MPI_LIBS="-llammpi++ -llammpio -lpmpi -llamf77mpi -lmpi -llam -lnsl -lutil" else # Assume we have MPICH DEFAULT_MPI_LIBS="-lfmpich -lmpichf90 -lmpich" fi DEFAULT_MPILDFLAGS=-L$MPI_PREFIX/lib else DEFAULT_MPI_PREFIX="" fi ;; *apple-darwin*) DEFAULT_MPI_PREFIX=/usr/local DEFAULT_MPI_LIBS="-lfmpich -lmpichf90 -lmpich" DEFAULT_MPI_INCLUDE_DIR=$MPI_PREFIX/include DEFAULT_MPILDFLAGS=-L$MPI_PREFIX/lib ;; *-*-aix*) DEFAULT_MPI_PREFIX= DEFAULT_MPI_INCLUDE_DIR= DEFAULT_MPILDFLAGS="-mpe -L/usr/lpp/ppe.poe/lib -L/usr/lpp/ppe.poe/lib/ip" DEFAULT_MPI_LIBS="-lmpi -lvtd -lppe" ;; *) DEFAULT_MPI_PREFIX= DEFAULT_MPI_INCLUDE_DIR= DEFAULT_MPILDFLAGS= DEFAULT_MPI_LIBS= ;;esacdnl ----------------------------------------------------------------------dnl Flagsdnl ----------------------------------------------------------------------AC_ARG_ENABLE(MPI, [ --disable-MPI Disable MPI], [ case "${enableval}" in yes) MPI=true ;; no) MPI=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-MPI) ;; esac],[MPI=false])AM_CONDITIONAL(CONDMPI,test x$MPI = xtrue)AC_ARG_WITH(mpi-prefix, [ --with-mpi-prefix=<dir> Prefix directory for MPI.], [MPI_PREFIX="${withval}"], [MPI_PREFIX="$DEFAULT_MPI_PREFIX"])AC_ARG_WITH(mpi-include-dir, [ --with-mpi-include-dir=<dir> MPI include directory. Default is -I\$MPI_PREFIX/include], [MPI_INCLUDE_DIR="${withval}"], [MPI_INCLUDE_DIR="$DEFAULT_MPI_INCLUDE_DIR"])AC_ARG_WITH(mpi-ldflags, [ --with-mpi-ldflags=<flags> LDFLAGS for linking with MPI.], [MPILDFLAGS="${withval}"], [MPILDFLAGS="$DEFAULT_MPILDFLAGS"])AC_ARG_WITH(mpi-libs, [ --with-mpi-libs=<libs> Libraries for linking with MPI.], [MPI_LIBS="${withval}"], [MPI_LIBS="$DEFAULT_MPI_LIBS"])AC_MSG_RESULT($MPI)dnl ----------------------------------------------------------------------dnl Set serialdnl ----------------------------------------------------------------------if test "$MPI" = false; then MPI_INCLUDES= MPILDFLAGS= MPI_LIBS= FC_MPI_LINK=serialdnl ----------------------------------------------------------------------dnl Set parallel and perform the checksdnl ----------------------------------------------------------------------else FC_MPI_LINK=parallel dnl On AIX, MPI includes are taken care of by the mpxlf90 script. MPI_PATH="$MPI_INCLUDE_DIR:$MPI_PREFIX/include:$DEFAULT_MPI_INCLUDE_DIR:/usr/local/mpich/include" AC_PATH_PROGS(MPIF_INCLUDE, mpif.h, "", $MPI_PATH) if test -z "$MPIF_INCLUDE"; then echo "MPI_INCLUDE_DIR empty. Assuming mpif.h will be found automatically." MPI_INCLUDES= else MPI_INCLUDE_DIR=`dirname $MPIF_INCLUDE` MPI_PREFIX=`dirname $MPI_INCLUDE_DIR` dnl note that not every compiler uses -I MPI_INCLUDES=$FC_INCLUDE_FLAG$MPI_INCLUDE_DIR fi dnl Set parallel compiler case "$host" in *-pc-linux-gnu) if test -z "$MPILDFLAGS"; then MPILDFLAGS=-L$MPI_PREFIX/lib fi if test -z "$MPI_LIBS"; then lam_count=`grep -c LAM "$MPI_INCLUDE_DIR/mpif.h"` if test "$lam_count" -gt "0" ; then MPI_LIBS="-llammpi++ -llammpio -lpmpi -llamf77mpi -lmpi -llam -lnsl -lutil" else MPI_LIBS="-lfmpich -lmpichf90 -lmpich" fi fi MPIF77=mpif77 ;; *-*-aix*) if test -z "$MPILDFLAGS"; then MPILDFLAGS=$DEFAULT_MPILDFLAGS fi if test -z "$MPI_LIBS"; then MPI_LIBS=$DEFAULT_MPI_LIBS fi MPIF77=mpxlf77 ;; *) if test -z "$MPILDFLAGS"; then MPILDFLAGS=$DEFAULT_MPILDFLAGS fi if test -z "$MPI_LIBS"; then MPI_LIBS=$DEFAULT_MPI_LIBS fi MPIF77=mpif77 ;; esacfidnl ----------------------------------------------------------------------dnl Exportdnl ----------------------------------------------------------------------AC_SUBST(MPIF77)AC_SUBST(MPI_INCLUDES)AC_SUBST(MPILDFLAGS)AC_SUBST(MPI_LIBS)AC_SUBST(FC_MPI_LINK)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -