Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/med.git] / adm_local_without_kernel / unix / config_files / check_lam.m4
1 dnl Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 dnl
3 dnl This library is free software; you can redistribute it and/or
4 dnl modify it under the terms of the GNU Lesser General Public
5 dnl License as published by the Free Software Foundation; either
6 dnl version 2.1 of the License.
7 dnl
8 dnl This library is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
10 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 dnl Lesser General Public License for more details.
12 dnl
13 dnl You should have received a copy of the GNU Lesser General Public
14 dnl License along with this library; if not, write to the Free Software
15 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 dnl
17 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 dnl
19
20 AC_DEFUN([CHECK_LAM],[
21
22 AC_REQUIRE([AC_PROG_CC])dnl
23
24 AC_ARG_WITH(lam,
25   [AC_HELP_STRING([--with-lam=DIR],[root directory path of LAM installation])],
26   WITHLAM="yes",WITHLAM="no")
27
28 MPI_INCLUDES=""
29 MPI_LIBS=""
30 if test "$WITHLAM" = yes; then
31
32   MPIREQUESTED="yes"
33   echo
34   echo ---------------------------------------------
35   echo testing lam
36   echo ---------------------------------------------
37   echo
38   LAM_HOME=$withval
39
40   if test "$LAM_HOME"; then
41     MPI_INCLUDES="-I$LAM_HOME/include"
42     if test "x$LAM_HOME" = "x/usr"
43     then
44       MPI_LIBS=""
45     else
46       MPI_LIBS="-L$LAM_HOME/lib"
47     fi
48   fi
49
50   CPPFLAGS_old="$CPPFLAGS"
51   CPPFLAGS="$MPI_INCLUDES $CPPFLAGS"
52   AC_CHECK_HEADER(mpi.h,WITHLAM="yes",WITHLAM="no")
53
54   if test "$WITHLAM" = "yes";then
55     AC_CHECK_LIB(util,openpty,,WITHLAM="no")
56     LIBS_old="$LIBS"
57     LDFLAGS_old="$LDFLAGS"
58     LDFLAGS="$MPI_LIBS $LDFLAGS"
59   fi
60
61   if test "$WITHLAM" = "yes";then
62
63     LIBS="$LIBS -lmpi++"
64     AC_MSG_CHECKING(for MPI_Init in -lmpi++)
65     AC_TRY_LINK([
66           #include <mpi.h>
67           ], [int argc=0; char **argv=0; MPI_Init(&argc,&argv);],
68           WITHLAM="yes",WITHLAM="no")
69
70     if test "$WITHLAM" = "yes";then
71
72       AC_MSG_RESULT(yes)
73       MPI_LIBS="$MPI_LIBS -lmpi++"
74       AC_CHECK_LIB(mpi++,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no")
75
76     else
77       AC_MSG_RESULT(no)
78
79       LIBS="$LIBS_old"
80       AC_CHECK_LIB(lam,lam_mp_init,WITHLAM="yes",WITHLAM="no")
81       if test "$WITHLAM" = "yes";then
82         MPI_LIBS="$MPI_LIBS -llam"
83         LIBS="$LIBS -llam"
84       fi
85
86       AC_CHECK_LIB(mpi,MPI_Init,WITHLAM="yes",WITHLAM="no")
87       if test "$WITHLAM" = "yes";then
88         MPI_LIBS="-lmpi $MPI_LIBS"
89         LIBS="-lmpi $LIBS"
90       fi
91
92       AC_LANG_SAVE
93       AC_LANG_CPLUSPLUS
94       LIBS="-llammpi++ $LIBS"
95       AC_MSG_CHECKING(for MPI_Init in -llammpi++)
96       AC_TRY_LINK([
97           #include <mpi.h>
98           ], [MPI::Init();],
99           WITHLAM="yes",WITHLAM="no")
100       if test "$WITHLAM" = "yes";then
101         AC_MSG_RESULT(yes)
102         MPI_LIBS="-llammpi++ $MPI_LIBS"
103       else
104         AC_MSG_RESULT(no)
105       fi
106       AC_LANG_RESTORE
107
108       AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no")
109
110     fi
111   fi
112
113   CPPFLAGS="$CPPFLAGS_old"
114   LDFLAGS="$LDFLAGS_old"
115   LIBS="$LIBS_old"
116
117   if test "$WITHLAM" = "yes";then
118      WITHMPI="yes"
119      mpi_ok=yes
120      CPPFLAGS="-DWITHLAM $CPPFLAGS"
121   else
122      mpi_ok=no
123   fi
124
125 fi
126
127
128 ])dnl