📄 configure.in
字号:
[Define if Fortran MPI_Datatype exists in C] )dnl Check for MPI_INTEGERx AC_MSG_CHECKING( [for Fortran MPI_Datatype, INTEGER related, in C] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Datatype type1, type2, type3, type4 ], [ type1 = MPI_INTEGER1; type2 = MPI_INTEGER2; type3 = MPI_INTEGER4; type4 = MPI_INTEGER8; ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_INTEGERX_IN_C, 1, [Define if Fortran MPI_Datatype, INTEGERs, exist in C] ) else AC_MSG_RESULT(no) fidnl Check for MPI_REALx AC_MSG_CHECKING( [for Fortran MPI_Datatype, REAL related, in C] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Datatype type1, type2 ], [ type1 = MPI_REAL4; type2 = MPI_REAL8; ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_REALX_IN_C, 1, [Define if Fortran MPI_Datatype, REALs, exist in C] ) else AC_MSG_RESULT(no) fidnl Check for MPI_COMPLEXx and MPI_2COMPLEXxxx AC_MSG_CHECKING( [for Fortran MPI_Datatype, COMPLEX related, in C] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Datatype type1, type2, type3, type4 ], [ type1 = MPI_COMPLEX8; type2 = MPI_COMPLEX16; type3 = MPI_2COMPLEX; type4 = MPI_2DOUBLE_COMPLEX; ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_COMPLEXX_IN_C, 1, [Define if Fortran MPI_Datatype, COMPLEXs, exist in C] ) else AC_MSG_RESULT(no) fi elsednl if HAVE_FORTRAN_MPI_DATATYPE_IN_C is false AC_MSG_RESULT(no) AC_MSG_CHECKING( [for LAM/MPI Fortran MPI_Datatype in C] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Datatype type ], [#define MPI_COMPLEX ((MPI_Datatype) &lam_mpi_cplex) type = MPI_COMPLEX; ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_DEFINE( HAVE_LAM_FORTRAN_MPI_DATATYPE_IN_C, 1, [Define if LAM Fortran MPI_Datatype exists in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_IN_C, 1, [Define if Fortran MPI_Datatype exists in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_INTEGERX_IN_C, 1, [Define if Fortran MPI_Datatype, INTEGERs, exist in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_REALX_IN_C, 1, [Define if Fortran MPI_Datatype, REALs, exist in C] ) else AC_MSG_RESULT(no) fi fi fielsednl if MPICH2, assume all Fortran MPI_Datatypes are available in Cdnl if MPICH1, assume only basic Fortran MPI_Datatypes are available in C if test "$MPI_IMPL" = "MPICH2" ; then AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_IN_C, 1, [Define if Fortran MPI_Datatype exists in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_INTEGERX_IN_C, 1, [Define if Fortran MPI_Datatype, INTEGERs, exist in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_REALX_IN_C, 1, [Define if Fortran MPI_Datatype, REALs, exist in C] ) AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_COMPLEXX_IN_C, 1, [Define if Fortran MPI_Datatype, COMPLEXs, exist in C] ) else AC_DEFINE( HAVE_FORTRAN_MPI_DATATYPE_IN_C, 1, [Define if Fortran MPI_Datatype exists in C] ) fifidnl Check if MPI_Datatype is pointer or intif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" ; then AC_MSG_CHECKING( [for MPI_Datatype] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Datatype type ], [ type = type / 5 ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT([int]) AC_DEFINE( HAVE_INT_MPI_DATATYPE, 1, [Define if MPI_Datatype is int] ) else AC_MSG_RESULT([void*]) AC_DEFINE( HAVE_PTR_MPI_DATATYPE, 1, [Define if MPI_Datatype is void*] ) fi fielsednl if MPICH2 or MPICH1, assume MPI_Datatype is int AC_DEFINE( HAVE_INT_MPI_DATATYPE, 1, [Define if MPI_Datatype is int] )fidnl Check MPI_Exscanif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" ; then AC_MSG_CHECKING( [for the C version of MPI_Exscan] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp, ibuff ], [ itmp=MPI_Exscan( &ibuff, &ibuff, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for the C version of PMPI_Exscan] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp, ibuff ], [ itmp=PMPI_Exscan( &ibuff, &ibuff, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) COLLCHK_BUILD_EXSCAN=yes else AC_MSG_RESULT(no) COLLCHK_BUILD_EXSCAN=no fi else AC_MSG_RESULT(no) COLLCHK_BUILD_EXSCAN=no fi fielsednl if MPICH2, assume MPI_Exscan is available. if test "$MPI_IMPL" = "MPICH2" ; then COLLCHK_BUILD_EXSCAN=yes else COLLCHK_BUILD_EXSCAN=no fifidnl Check MPI_Alltoallwif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" ; then AC_MSG_CHECKING( [for the C version of MPI_Alltoallw] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [[#define MAX 10 int *sbuff, *rbuff; int scounts[MAX], rcounts[MAX], sdispls[MAX], rdispls[MAX]; MPI_Datatype stypes[MAX], rtypes[MAX]; int itmp ]], [ itmp=MPI_Alltoallw( sbuff, scounts, sdispls, stypes, rbuff, rcounts, rdispls, rtypes, MPI_COMM_WORLD ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for the C version of PMPI_Alltoallw] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [[#define MAX 10 int *sbuff, *rbuff; int scounts[MAX], rcounts[MAX], sdispls[MAX], rdispls[MAX]; MPI_Datatype stypes[MAX], rtypes[MAX]; int itmp ]], [ itmp=PMPI_Alltoallw( sbuff, scounts, sdispls, stypes, rbuff, rcounts, rdispls, rtypes, MPI_COMM_WORLD ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) COLLCHK_BUILD_ALLW=yes else AC_MSG_RESULT(no) COLLCHK_BUILD_ALLW=no fi else AC_MSG_RESULT(no) COLLCHK_BUILD_ALLW=no fi fielsednl if MPICH2, assume MPI_Exscan is available. if test "$MPI_IMPL" = "MPICH2" ; then COLLCHK_BUILD_ALLW=yes else COLLCHK_BUILD_ALLW=no fifidnl Check MPI-IOif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" -a "$enable_checkMPIO" = "yes" ; then AC_MSG_CHECKING( [for the C version of MPI_File_open()] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp; MPI_File fh ], [ itmp=MPI_File_open( MPI_COMM_WORLD, "mpiiotest", MPI_MODE_CREATE | MPI_MODE_RDWR, MPI_INFO_NULL, &fh ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for the C version of PMPI_File_open()] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp; MPI_File fh ], [ itmp=PMPI_File_open( MPI_COMM_WORLD, "mpiiotest", MPI_MODE_CREATE | MPI_MODE_RDWR, MPI_INFO_NULL, &fh ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for ROMIO's MPIO_Request] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPIO_Request io_request], , [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) COLLCHK_BUILD_IO=yes AC_DEFINE( HAVE_MPI_IO, 1, [Define if MPI-IO routines exist.] ) else AC_MSG_RESULT(no) COLLCHK_BUILD_IO=no fi else AC_MSG_RESULT([no, assumed No MPI-IO routines]) COLLCHK_BUILD_IO=no fi else AC_MSG_RESULT([no, assumed No MPI-IO routines]) COLLCHK_BUILD_IO=no fi fielsednl When built with MPICHx, MPE configure observes --with-mpiio & --enable-romiodnl if test \( "$MPI_IMPL" = "MPICH" -o "$MPI_IMPL" = "MPICH2" \) \ if test "$with_mpiio" = "yes" ; then COLLCHK_BUILD_IO=yes AC_DEFINE( HAVE_MPI_IO, 1, [Define if MPI-IO routines exist.] ) else COLLCHK_BUILD_IO=no fifidnl Check MPI-RMAif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" ; then AC_MSG_CHECKING( [for the C version of MPI_Win_create] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp; MPI_Win win ], [ itmp=MPI_Win_create( NULL, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for the C version of PMPI_Win_create] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ int itmp; MPI_Win win ], [ itmp=PMPI_Win_create( NULL, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) COLLCHK_BUILD_RMA=yes AC_DEFINE( HAVE_MPI_RMA, 1, [Define if MPI-RMA routines exist.] ) else AC_MSG_RESULT([no, assumed No MPI-RMA routines]) COLLCHK_BUILD_RMA=no fi else AC_MSG_RESULT([no, assumed No MPI-RMA routines]) COLLCHK_BUILD_RMA=no fi fielsednl if MPICH2, assume MPI-RMA is available. if test "$MPI_IMPL" = "MPICH2" ; then COLLCHK_BUILD_RMA=yes AC_DEFINE( HAVE_MPI_RMA, 1, [Define if MPI-RMA routines exist.] ) else COLLCHK_BUILD_RMA=no fifidnl Check MPI-COMMSif test "$MPI_IMPL" != "MPICH" -a "$MPI_IMPL" != "MPICH2" ; then if test "$enable_checkMPI" = "yes" ; then AC_MSG_CHECKING( [for the C version of MPI_Comm_spawn] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Comm intercomm; int itmp, np=1, ierrs; ], [ itmp=MPI_Comm_spawn( "./test", MPI_ARGV_NULL, np, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &intercomm, &ierrs ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) AC_MSG_CHECKING( [for the C version of PMPI_Comm_spawn] ) PAC_MPI_LINK_CC_FUNC( $MPI_CC, [$MPI_CFLAGS], $MPI_LIBS, , [ MPI_Comm intercomm; int itmp, np=1, ierrs; ], [ itmp=PMPI_Comm_spawn( "./test", MPI_ARGV_NULL, np, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &intercomm, &ierrs ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) COLLCHK_BUILD_COMMS=yes AC_DEFINE( HAVE_MPI_COMMS, 1, [Define if MPI-RMA routines exist.] ) else AC_MSG_RESULT([no, assumed No MPI-COMMS routines]) COLLCHK_BUILD_COMMS=no fi else AC_MSG_RESULT([no, assumed No MPI-COMMS routines]) COLLCHK_BUILD_COMMS=no fi fielsednl if MPICH2, assume MPI_COMMS is available. if test "$MPI_IMPL" = "MPICH2" ; then COLLCHK_BUILD_COMMS=yes AC_DEFINE( HAVE_MPI_COMMS, 1, [Define if MPI-RMA routines exist.] ) else COLLCHK_BUILD_COMMS=no fifiAC_SUBST(COLLCHK_BUILD_EXSCAN)AC_SUBST(COLLCHK_BUILD_ALLW)AC_SUBST(COLLCHK_BUILD_IO)AC_SUBST(COLLCHK_BUILD_RMA)AC_SUBST(COLLCHK_BUILD_COMMS)AC_SUBST(MPI_IMPL)AC_SUBST(MPE_BUILD_FORTRAN2C)AC_SUBST(CC)AC_SUBST(CLINKER)AC_SUBST(CFLAGS)AC_SUBST(MPI_CC)AC_SUBST(MPE_CLINKER)AC_SUBST(F77)AC_SUBST(FLINKER)AC_SUBST(FFLAGS)AC_SUBST(MPI_F77)AC_SUBST(MPE_FLINKER)AC_SUBST(FINC_PATH_LEADER)AC_SUBST(FLIB_PATH_LEADER)AC_SUBST(MPI_CFLAGS)AC_SUBST(MPI_FFLAGS)AC_SUBST(MPI_LIBS)AC_SUBST(COLLCHK_LIBNAME)AC_SUBST(COLLCHK_LIBS)AC_SUBST(F2CMPI_LIBS)AC_OUTPUT( Makefile src/Makefile test/Makefile \ etc/mpe_mpicheck.conf )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -