3
# Attempt to compile a simple MPI program in C++.
5
AC_DEFUN([GA_MPICXX_TEST], [
6
AS_IF([test "x$with_mpi" != xno], [
8
AC_CACHE_CHECK([whether a simple C++ MPI program works],
9
[ga_cv_cxx_mpi_test], [
11
[AC_LANG_PROGRAM([[#include <mpi.h>]],
12
[[int myargc; char **myargv; MPI_Init(&myargc, &myargv); MPI_Finalize();]])],
13
[ga_cv_cxx_mpi_test=yes],
14
[ga_cv_cxx_mpi_test=no])
15
# That didn't work, so now let's try with our GA_MP_* flags.
16
AS_IF([test "x$ga_cv_cxx_mpi_test" = xno], [
17
ga_save_LIBS="$LIBS"; LIBS="$LIBS $GA_MP_LIBS"
18
ga_save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $GA_MP_CPPFLAGS"
19
ga_save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS $GA_MP_LDFLAGS"
21
[AC_LANG_PROGRAM([[#include <mpi.h>]],
22
[[int myargc; char **myargv; MPI_Init(&myargc, &myargv); MPI_Finalize();]])],
23
[ga_cv_cxx_mpi_test=yes],
24
[ga_cv_cxx_mpi_test=no])
26
CPPFLAGS="$ga_save_CPPFLAGS"
27
LDFLAGS="$ga_save_LDFLAGS"
29
# That didn't work, so now let's try with our GA_MP_* flags and various libs.
30
AS_IF([test "x$ga_cv_cxx_mpi_test" = xno], [
31
for lib in -lmpi -lmpich; do
32
ga_save_LIBS="$LIBS"; LIBS="$LIBS $GA_MP_LIBS $lib"
33
ga_save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $GA_MP_CPPFLAGS"
34
ga_save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS $GA_MP_LDFLAGS"
36
[AC_LANG_PROGRAM([[#include <mpi.h>]],
37
[[int myargc; char **myargv; MPI_Init(&myargc, &myargv); MPI_Finalize();]])],
38
[ga_cv_cxx_mpi_test=$lib; break],
39
[ga_cv_cxx_mpi_test=no])
41
CPPFLAGS="$ga_save_CPPFLAGS"
42
LDFLAGS="$ga_save_LDFLAGS"
45
CPPFLAGS="$ga_save_CPPFLAGS"
46
LDFLAGS="$ga_save_LDFLAGS"
50
AS_CASE([$ga_cv_cxx_mpi_test],
52
[no], [AC_MSG_FAILURE([could not link simple C++ MPI program])],
53
[*], [GA_MP_LIBS="$ga_cv_cxx_mpi_test"],