1
# GA_MPICC_TEST_PROGRAM
2
# ---------------------
3
# Create an MPI test program in C.
4
AC_DEFUN([GA_MPICC_TEST_PROGRAM], [
6
AC_LANG_CONFTEST([AC_LANG_PROGRAM([[#include <mpi.h>]],
7
[[int myargc; char **myargv; MPI_Init(&myargc, &myargv); MPI_Finalize();]])])
11
# GA_MPICC_TEST_COMPILE
12
# ---------------------
13
# Attempt to compile a simple MPI program in C.
14
AC_DEFUN([GA_MPICC_TEST_COMPILE], [
16
GA_MPICC_TEST_PROGRAM()
17
AC_CACHE_CHECK([whether a simple C MPI program compiles],
18
[ga_cv_c_mpi_test_compile],
19
[ga_save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $GA_MP_CPPFLAGS"
21
[ga_cv_c_mpi_test_compile=yes],
22
[ga_cv_c_mpi_test_compile=no])
23
CPPFLAGS="$ga_save_CPPFLAGS"])
24
rm -f conftest.$ac_ext
26
AS_IF([test "x$ga_cv_c_mpi_test_compile" = xno],
27
[AC_MSG_FAILURE([could not compile simple C MPI program])])
32
# Attempt to link a simple MPI program in C.
33
AC_DEFUN([GA_MPICC_TEST_LINK], [
35
GA_MPICC_TEST_PROGRAM()
36
ga_cv_c_mpi_test_link=no
37
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
38
[AC_MSG_CHECKING([whether a C MPI program links natively])
40
[ga_cv_c_mpi_test_link=yes
44
[ga_cv_c_mpi_test_link=no])
45
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
46
# That didn't work, so now let's try adding our GA_MP_* flags.
47
# The CPPFLAGS and LDFLAGS are added up top here, but LIBS will change.
49
ga_save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $GA_MP_CPPFLAGS"
50
ga_save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS $GA_MP_LDFLAGS"
51
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
52
[AC_MSG_CHECKING([whether a C MPI program links with additional env])
53
LIBS="$LIBS $GA_MP_LIBS"
55
[ga_cv_c_mpi_test_link=yes],
56
[ga_cv_c_mpi_test_link=no])
58
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
59
# That didn't work, so now let's try with specific libs.
60
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
61
[AC_MSG_CHECKING([for mvapich libraries])
62
for lib in "-lmpich -lpthread" "-lmpich"
66
[ga_cv_c_mpi_test_link="$lib"; break],
67
[ga_cv_c_mpi_test_link=no])
71
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
72
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
73
[AC_MSG_CHECKING([for mpich libraries])
74
for lib in "-lmpich -lpthread" "-lmpich"
78
[ga_cv_c_mpi_test_link="$lib"; break],
79
[ga_cv_c_mpi_test_link=no])
83
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
84
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
85
[AC_MSG_CHECKING([for hpmpi libraries])
86
for lib in "-lhpmpio -lhpmpi" "-lhpmpi"
90
[ga_cv_c_mpi_test_link="$lib"; break],
91
[ga_cv_c_mpi_test_link=no])
95
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
96
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
97
[AC_MSG_CHECKING([for intelmpi libraries])
98
for lib in "-lmpi -lmpiif -lmpigi -lrt -lpthread" "-lmpi -lmpiif -lmpigi"
102
[ga_cv_c_mpi_test_link="$lib"; break],
103
[ga_cv_c_mpi_test_link=no])
107
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
108
AS_IF([test "x$ga_cv_c_mpi_test_link" = xno],
109
[AC_MSG_CHECKING([for openmpi libraries])
110
for lib in "-lmpi -lpthread" "-lmpi"
114
[ga_cv_c_mpi_test_link="$lib"; break],
115
[ga_cv_c_mpi_test_link=no])
119
AC_MSG_RESULT([$ga_cv_c_mpi_test_link])])
120
rm -f conftest.$ac_ext
122
LDFLAGS="$ga_save_LDFLAGS"
123
CPPFLAGS="$ga_save_CPPFLAGS"
125
AS_CASE([$ga_cv_c_mpi_test_link],
127
[no], [AC_MSG_FAILURE([could not link a C MPI program])],
128
[*], [GA_MP_LIBS="$ga_cv_c_mpi_test_link"],