Salome HOME
PR: merge from branch BR_auto_V310 tag mergefrom_OCC_development_for_3_2_0a2_10mar06
[modules/kernel.git] / salome_adm / unix / config_files / check_lam.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_LAM],[
24
25 AC_REQUIRE([AC_PROG_CC])dnl
26
27 AC_ARG_WITH(lam,
28   [AC_HELP_STRING([--with-lam=DIR],[root directory path of LAM installation])],
29   WITHLAM="yes",WITHLAM="no")
30
31 MPI_INCLUDES=""
32 MPI_LIBS=""
33 if test "$WITHLAM" = yes; then
34
35   MPIREQUESTED="yes"
36   echo
37   echo ---------------------------------------------
38   echo testing lam
39   echo ---------------------------------------------
40   echo
41   LAM_HOME=$withval
42
43   if test "$LAM_HOME"; then
44     MPI_INCLUDES="-I$LAM_HOME/include"
45     if test "x$LAM_HOME" = "x/usr"
46     then
47       MPI_LIBS=""
48     else
49       MPI_LIBS="-L$LAM_HOME/lib"
50     fi
51   fi
52
53   CPPFLAGS_old="$CPPFLAGS"
54   CPPFLAGS="$MPI_INCLUDES $CPPFLAGS"
55   AC_CHECK_HEADER(mpi.h,WITHLAM="yes",WITHLAM="no")
56
57   if test "$WITHLAM" = "yes";then
58     AC_CHECK_LIB(util,openpty,,WITHLAM="no")
59     LIBS_old="$LIBS"
60     LDFLAGS_old="$LDFLAGS"
61     LDFLAGS="$MPI_LIBS $LDFLAGS"
62   fi
63
64   if test "$WITHLAM" = "yes";then
65
66     LIBS="$LIBS -lmpi++"
67     AC_MSG_CHECKING(for MPI_Init in -lmpi++)
68     AC_TRY_LINK([
69           #include <mpi.h>
70           ], [int argc=0; char **argv=0; MPI_Init(&argc,&argv);],
71           WITHLAM="yes",WITHLAM="no")
72
73     if test "$WITHLAM" = "yes";then
74
75       AC_MSG_RESULT(yes)
76       MPI_LIBS="$MPI_LIBS -lmpi++"
77       AC_CHECK_LIB(mpi++,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no")
78
79     else
80       AC_MSG_RESULT(no)
81
82       LIBS="$LIBS_old"
83       AC_CHECK_LIB(lam,lam_mp_init,WITHLAM="yes",WITHLAM="no")
84       if test "$WITHLAM" = "yes";then
85         MPI_LIBS="$MPI_LIBS -llam"
86         LIBS="$LIBS -llam"
87       fi
88
89       AC_CHECK_LIB(mpi,MPI_Init,WITHLAM="yes",WITHLAM="no")
90       if test "$WITHLAM" = "yes";then
91         MPI_LIBS="-lmpi $MPI_LIBS"
92         LIBS="-lmpi $LIBS"
93       fi
94
95       AC_LANG_SAVE
96       AC_LANG_CPLUSPLUS
97       LIBS="-llammpi++ $LIBS"
98       AC_MSG_CHECKING(for MPI_Init in -llammpi++)
99       AC_TRY_LINK([
100           #include <mpi.h>
101           ], [MPI::Init();],
102           WITHLAM="yes",WITHLAM="no")
103       if test "$WITHLAM" = "yes";then
104         AC_MSG_RESULT(yes)
105         MPI_LIBS="-llammpi++ $MPI_LIBS"
106       else
107         AC_MSG_RESULT(no)
108       fi
109       AC_LANG_RESTORE
110
111       AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no")
112
113     fi
114   fi
115
116   CPPFLAGS="$CPPFLAGS_old"
117   LDFLAGS="$LDFLAGS_old"
118   LIBS="$LIBS_old"
119
120   if test "$WITHLAM" = "yes";then
121      WITHMPI="yes"
122      mpi_ok=yes
123      CPPFLAGS="-DWITHLAM $CPPFLAGS"
124   else
125      mpi_ok=no
126   fi
127
128 fi
129
130
131 ])dnl