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