Salome HOME
Copyright update 2022
[tools/configuration.git] / autotools / m4 / check_lam.m4
1 dnl Copyright (C) 2007-2022  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, or (at your option) any later version.
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
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