Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/kernel.git] / salome_adm / unix / config_files / check_mpi.m4
1 dnl  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 dnl  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 dnl 
4 dnl  This library is free software; you can redistribute it and/or 
5 dnl  modify it under the terms of the GNU Lesser General Public 
6 dnl  License as published by the Free Software Foundation; either 
7 dnl  version 2.1 of the License. 
8 dnl 
9 dnl  This library is distributed in the hope that it will be useful, 
10 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 dnl  Lesser General Public License for more details. 
13 dnl 
14 dnl  You should have received a copy of the GNU Lesser General Public 
15 dnl  License along with this library; if not, write to the Free Software 
16 dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 dnl 
18 dnl  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 dnl
20 dnl
21 dnl
22
23 AC_DEFUN([CHECK_MPI],[
24
25 AC_REQUIRE([AC_PROG_CC])dnl
26
27 AC_ARG_WITH(mpi_lib,
28    [AC_HELP_STRING([--with-mpi_lib=DIR],[directory path of MPICH lib installation])],
29    MPILIBREQUESTED="$withval")
30
31 AC_ARG_WITH(mpi,
32    [AC_HELP_STRING([--with-mpi=DIR],[root directory path of MPICH installation])],
33    MPIREQUESTED="yes",MPIREQUESTED="no")
34
35 MPI_INCLUDES=""
36 MPI_LIBS=""
37 WITHMPI=no
38 mpi_ok=no
39 if test x"$MPIREQUESTED" = xyes; then
40
41   echo
42   echo ---------------------------------------------
43   echo testing mpi
44   echo ---------------------------------------------
45   echo
46
47   if test "x$withval" != "xyes"; then
48     MPI_HOME=$withval
49     MPI_INCLUDES="-I$MPI_HOME/include"
50     if test "x$MPI_HOME" = "x/usr"
51     then
52       MPI_LIBS=""
53     else
54       MPI_LIBS="-L$MPI_HOME/lib"
55     fi
56   fi
57
58   if test x"$MPILIBREQUESTED" != x; then
59     MPI_LIBS="-L$MPILIBREQUESTED"
60   fi
61
62   CPPFLAGS_old="$CPPFLAGS"
63   CPPFLAGS="$MPI_INCLUDES $CPPFLAGS"
64   AC_CHECK_HEADER(mpi.h,WITHMPI="yes",WITHMPI="no")
65   CPPFLAGS="$CPPFLAGS_old"
66
67   if test "$WITHMPI" = "yes";then
68     LIBS_old="$LIBS"
69     LDFLAGS_old="$LDFLAGS"
70     LDFLAGS="$MPI_LIBS $LDFLAGS"
71     AC_CHECK_LIB(elan,elan_init,MPI_LIBS="$MPI_LIBS -lelan")
72     AC_CHECK_LIB(mpi,MPI_Init,WITHMPI="yes",WITHMPI="no")
73     AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no")
74     LDFLAGS="$LDFLAGS_old"
75     LIBS="$LIBS_old"
76   fi
77
78   if test "$WITHMPI" = "yes";then
79     mpi_ok=yes
80     MPI_LIBS="$MPI_LIBS -lmpi -lmpio -lmpiCC"
81   else
82     mpi_ok=no
83   fi
84
85 fi
86
87 if test "$WITHMPI" = no; then
88 dnl
89 dnl ---------------------------------------------
90 dnl testing MPICH
91 dnl ---------------------------------------------
92 dnl
93
94   CHECK_MPICH
95
96   if test "$WITHMPICH" = no; then
97 dnl
98 dnl ---------------------------------------------
99 dnl testing LAM
100 dnl ---------------------------------------------
101 dnl
102
103     CHECK_LAM
104
105   fi
106
107   if test "$WITHLAM" = no; then
108 dnl
109 dnl ---------------------------------------------
110 dnl testing OPENMPI
111 dnl ---------------------------------------------
112 dnl
113
114     CHECK_OPENMPI
115
116   fi
117
118 fi
119
120 if test x$WITHMPI2 = xyes; then
121   CPPFLAGS="-DHAVE_MPI2 $CPPFLAGS"
122   CORBA_IDLCXXFLAGS="-DHAVE_MPI2 $CORBA_IDLCXXFLAGS"
123   CORBA_IDLPYFLAGS="-DHAVE_MPI2 $CORBA_IDLPYFLAGS"
124 fi
125
126 AC_SUBST(WITHMPI)
127 AC_SUBST(MPI_INCLUDES)
128 AC_SUBST(MPI_LIBS)
129 AC_SUBST(mpi_ok)
130 AM_CONDITIONAL(MPI_IS_OK, [test x"$mpi_ok" = xyes])
131 ])dnl