missed one!
[debian/atlc] / m4 / acx_mpi.m4
1 dnl Available from the GNU Autoconf Macro Archive at:
2 dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_mpi.html
3 dnl
4 AC_DEFUN([ACX_MPI], [
5 AC_PREREQ(2.50) dnl for AC_LANG_CASE
6
7 AC_LANG_CASE([C], [
8         AC_REQUIRE([AC_PROG_CC])
9         AC_CHECK_PROGS(MPICC, mpicc hcc mpcc mpcc_r mpxlc, $CC)
10         acx_mpi_save_CC="$CC"
11         CC="$MPICC"
12         AC_SUBST(MPICC)
13 ],
14 [C++], [
15         AC_REQUIRE([AC_PROG_CXX])
16         AC_CHECK_PROGS(MPICXX, mpiCC mpCC, $CXX)
17         acx_mpi_save_CXX="$CXX"
18         CXX="$MPICXX"
19         AC_SUBST(MPICXX)
20 ],
21 [Fortran 77], [
22         AC_REQUIRE([AC_PROG_F77])
23         AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r, $F77)
24         acx_mpi_save_F77="$F77"
25         F77="$MPIF77"
26         AC_SUBST(MPIF77)
27 ])
28
29 if test x = x"$MPILIBS"; then
30         AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
31                 [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
32                 [Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
33                         AC_TRY_LINK([],[      call MPI_Init], [MPILIBS=" "
34                                 AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
35 fi
36 if test x = x"$MPILIBS"; then
37         AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"])
38 fi
39 if test x = x"$MPILIBS"; then
40         AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"])
41 fi
42
43 dnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because the
44 dnl latter uses $CPP, not $CC (which may be mpicc).
45 AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then
46         AC_MSG_CHECKING([for mpi.h])
47         AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
48                 AC_MSG_RESULT(no)])
49 fi],
50 [C++], [if test x != x"$MPILIBS"; then
51         AC_MSG_CHECKING([for mpi.h])
52         AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
53                 AC_MSG_RESULT(no)])
54 fi])
55
56 AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"],
57         [C++], [CXX="$acx_mpi_save_CXX"],
58         [Fortran 77], [F77="$acx_mpi_save_F77"])
59
60 AC_SUBST(MPILIBS)
61
62 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
63 if test x = x"$MPILIBS"; then
64         $2
65         :
66 else
67         ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1])
68         :
69 fi
70 ])dnl ACX_MPI