1# GA_MPIF77_TEST_PROGRAM 2# ---------------------- 3# Create an MPI test program in Fortran 77. 4AC_DEFUN([GA_MPIF77_TEST_PROGRAM], [ 5AC_LANG_PUSH([Fortran 77]) 6AC_LANG_CONFTEST([AC_LANG_PROGRAM([], 7[[ include 'mpif.h' 8 integer ierr 9 call MPI_Init( ierr ) 10 call MPI_Finalize( ierr )]])]) 11AC_LANG_POP([Fortran 77]) 12])dnl 13 14# GA_MPIF77_TEST_COMPILE 15# ---------------------- 16# Attempt to compile a simple MPI program in Fortran 77. 17AC_DEFUN([GA_MPIF77_TEST_COMPILE], [ 18AC_LANG_PUSH([Fortran 77]) 19GA_MPIF77_TEST_PROGRAM() 20AC_CACHE_CHECK([whether a simple Fortran MPI program compiles], 21 [ga_cv_f77_mpi_test_compile], 22 [ga_save_FFLAGS="$FFLAGS"; FFLAGS="$FFLAGS $GA_MP_CPPFLAGS" 23 AC_COMPILE_IFELSE([], 24 [ga_cv_f77_mpi_test_compile=yes], 25 [ga_cv_f77_mpi_test_compile=no]) 26 FFLAGS="$ga_save_FFLAGS"]) 27rm -f conftest.$ac_ext 28AC_LANG_POP([Fortran 77]) 29AS_IF([test "x$ga_cv_f77_mpi_test_compile" = xno], 30 [AC_MSG_FAILURE([could not compile simple Fortran MPI program])]) 31])dnl 32 33# GA_MPIF77_TEST_LINK 34# ------------------- 35# Attempt to compile a simple MPI program in Fortran 77. 36AC_DEFUN([GA_MPIF77_TEST_LINK], [ 37AC_LANG_PUSH([Fortran 77]) 38GA_MPIF77_TEST_PROGRAM() 39ga_cv_f77_mpi_test_link=no 40AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 41 [AC_MSG_CHECKING([whether a Fortran MPI program links natively]) 42 AC_LINK_IFELSE([], 43 [ga_cv_f77_mpi_test_link=yes 44 GA_MP_LIBS= 45 GA_MP_LDFLAGS= 46 GA_MP_CPPFLAGS=], 47 [ga_cv_f77_mpi_test_link=no]) 48 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 49# That didn't work. Let's try adding our GA_MP_* flags. 50# The CPPFLAGS are added to FFLAGS since *.f doesn't use CPP. LIBS changes. 51ga_save_LIBS="$LIBS" 52ga_save_FFLAGS="$FFLAGS"; FFLAGS="$FFLAGS $GA_MP_CPPFLAGS" 53ga_save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS $GA_MP_LDFLAGS" 54AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 55 [AC_MSG_CHECKING([whether a Fortran MPI program links with additional env]) 56 LIBS="$LIBS $GA_MP_LIBS" 57 AC_LINK_IFELSE([], 58 [ga_cv_f77_mpi_test_link=yes], 59 [ga_cv_f77_mpi_test_link=no]) 60 LIBS="$ga_save_LIBS" 61 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 62# That didn't work, so now let's try with specific libs. 63AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 64 [AC_MSG_CHECKING([for mvapich libraries]) 65 for lib in "-lmpichf90nc -lmpichfarg -lmpich -lpthread" "-lmpichf90 -lmpichfarg -lmpich -pthread" "-lmpichf90nc -lmpichfarg -lmpich" "-lmpichf90 -lmpichfarg -lmpich" "-lmpichfarg -lmpich -lpthread" "-lmpichfarg -lmpich" 66 do 67 LIBS="$LIBS $lib" 68 AC_LINK_IFELSE([], 69 [ga_cv_f77_mpi_test_link="$lib"; break], 70 [ga_cv_f77_mpi_test_link=no]) 71 LIBS="$ga_save_LIBS" 72 done 73 LIBS="$ga_save_LIBS" 74 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 75AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 76 [AC_MSG_CHECKING([for mpich libraries]) 77 for lib in "-lmpichf90 -lmpich -lpthread" "-lmpichf90 -lmpich" "-lmpich -pthread" "-lmpich" 78 do 79 LIBS="$LIBS $lib" 80 AC_LINK_IFELSE([], 81 [ga_cv_f77_mpi_test_link="$lib"; break], 82 [ga_cv_f77_mpi_test_link=no]) 83 LIBS="$ga_save_LIBS" 84 done 85 LIBS="$ga_save_LIBS" 86 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 87AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 88 [AC_MSG_CHECKING([for hpmpi libraries]) 89 for lib in "-lhpmpio -lhpmpi" 90 do 91 LIBS="$LIBS $lib" 92 AC_LINK_IFELSE([], 93 [ga_cv_f77_mpi_test_link="$lib"; break], 94 [ga_cv_f77_mpi_test_link=no]) 95 LIBS="$ga_save_LIBS" 96 done 97 LIBS="$ga_save_LIBS" 98 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 99AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 100 [AC_MSG_CHECKING([for intelmpi libraries]) 101 for lib in "-lmpi -lmpigf -lmpigi -lpthread" "-lmpi -lmpigf -lmpigi" 102 do 103 LIBS="$LIBS $lib" 104 AC_LINK_IFELSE([], 105 [ga_cv_f77_mpi_test_link="$lib"; break], 106 [ga_cv_f77_mpi_test_link=no]) 107 LIBS="$ga_save_LIBS" 108 done 109 LIBS="$ga_save_LIBS" 110 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 111AS_IF([test "x$ga_cv_f77_mpi_test_link" = xno], 112 [AC_MSG_CHECKING([for openmpi libraries]) 113 for lib in "-lmpi_f90 -lmpi_f77 -lmpi" "-lmpi_f77 -lmpi" 114 do 115 LIBS="$LIBS $lib" 116 AC_LINK_IFELSE([], 117 [ga_cv_f77_mpi_test_link="$lib"; break], 118 [ga_cv_f77_mpi_test_link=no]) 119 LIBS="$ga_save_LIBS" 120 done 121 LIBS="$ga_save_LIBS" 122 AC_MSG_RESULT([$ga_cv_f77_mpi_test_link])]) 123rm -f conftest.$ac_ext 124LIBS="$ga_save_LIBS" 125LDFLAGS="$ga_save_LDFLAGS" 126FFLAGS="$ga_save_FFLAGS" 127AC_LANG_POP([Fortran 77]) 128AS_CASE([$ga_cv_f77_mpi_test_link], 129 [yes], [], 130 [no], [AC_MSG_FAILURE([could not link simple Fortran MPI program])], 131 [*], [GA_MP_LIBS="$ga_cv_f77_mpi_test_link"], 132 []) 133])dnl 134