Salome HOME
Revert "Synchronize adm files"
[modules/med.git] / adm_local / unix / config_files / check_parmetis.m4
1 dnl Copyright (C) 2007-2014  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 #for a future use...see further down AC_DEFUN([CHECK_PARMETISV4]
24
25 #for use with ParMETIS V3
26 AC_DEFUN([CHECK_PARMETIS],[
27 AC_REQUIRE([AC_PROG_CC])dnl
28 AC_REQUIRE([AC_PROG_CPP])dnl
29 AC_REQUIRE([CHECK_MPI])dnl
30
31 AC_CHECKING(for ParMETIS V3 Library)
32
33 AC_LANG_SAVE
34 AC_LANG_C
35
36 PARMETIS_CPPFLAGS=""
37 PARMETIS_LIBS=""
38 ENABLE_PARMETIS="no"
39
40 AC_CHECKING(for ParMETIS location)
41 AC_ARG_WITH(parmetis,
42             [  --with-parmetis=DIR      root directory path to ParMETIS library installation ],
43             [PARMETISDIR="$withval"
44              AC_MSG_RESULT("select $withval as path to ParMETIS library")])
45
46 AC_MSG_RESULT(\$PARMETISDIR = ${PARMETISDIR})
47
48 CPPFLAGS_old="${CPPFLAGS}"
49 LIBS_old=$LIBS
50
51 if test "x${PARMETISDIR}" != "x" ; then
52   PARMETIS_CPPFLAGS="-DMED_ENABLE_PARMETIS -I${PARMETISDIR} ${MPI_INCLUDES}"
53   PARMETIS_LIBS="-L${PARMETISDIR} -lparmetis -lmetis ${MPI_LIBS}"
54 fi
55
56 parmetis_ok=no
57 parmetis_headers_ok=no
58 parmetis_binaries_ok=no
59
60 dnl ParMETIS headers
61 AC_CHECKING(for ParMETIS headers)
62 CPPFLAGS="${CPPFLAGS_old} ${PARMETIS_CPPFLAGS}"
63
64 parmetis_include_dir_ok=yes
65 if test "x${PARMETISDIR}" != "x" ; then
66   AC_CHECK_FILE(${PARMETISDIR}/parmetis.h,
67                 parmetis_include_dir_ok=yes,
68                 parmetis_include_dir_ok=no)
69 fi
70
71 if test "x${parmetis_include_dir_ok}" = "xyes" ; then
72   AC_TRY_COMPILE([#include <parmetis.h>],
73                  [ParMETIS_V3_PartGeom(0,0,0,0,0)],
74                  parmetis_headers_ok=yes,
75                  parmetis_headers_ok=no)
76 fi
77
78 if test "x${parmetis_headers_ok}" = "xyes" ; then
79   AC_MSG_RESULT(\$PARMETIS_CPPFLAGS = ${PARMETIS_CPPFLAGS})
80 fi
81 AC_MSG_RESULT(for ParMETIS headers: $parmetis_headers_ok)
82
83 if test "x${parmetis_headers_ok}" = "xyes" ; then
84   dnl ParMETIS binaries
85   AC_CHECKING(for ParMETIS binaries)
86   parmetis_lib_dir_ok=yes
87   AC_CHECK_FILE(${PARMETISDIR}/libparmetis.a,
88                 parmetis_lib_dir_ok=yes,
89                 parmetis_lib_dir_ok=no)
90
91   if test "x${parmetis_lib_dir_ok}" = "xyes" ; then
92     LIBS="${LIBS_old} ${PARMETIS_LIBS}"
93     AC_TRY_LINK([#include <parmetis.h>],
94                 [ParMETIS_V3_PartGeom(0,0,0,0,0)],
95                 parmetis_binaries_ok=yes,
96                 parmetis_binaries_ok=no)
97   fi
98 fi
99
100 if test "x${parmetis_binaries_ok}" = "xyes" ; then
101   AC_MSG_RESULT(\$PARMETIS_LIBS = ${PARMETIS_LIBS})
102 fi
103 AC_MSG_RESULT(for ParMETIS binaries: $parmetis_binaries_ok)
104
105 CPPFLAGS="${CPPFLAGS_old}"
106 LIBS="${LIBS_old}"
107
108 if test "x${parmetis_headers_ok}" = "xyes" ; then
109   if test "x${parmetis_binaries_ok}" = "xyes" ; then
110     parmetis_ok=yes
111     ENABLE_PARMETIS="yes"
112     # ParMETIS includes METIS, so we redefine METIS cppflags and libs
113     # And metis.h #include parmetis.h + mpi.h
114     metis_ok=yes
115     ENABLE_METIS="yes"
116     METISDIR=${PARMETISDIR}
117     METIS_CPPFLAGS="-DMED_ENABLE_METIS -I${METISDIR}/METISLib ${PARMETIS_CPPFLAGS}"
118     METIS_LIBS="-L${METISDIR} -lmetis ${MPI_LIBS}"
119   fi
120 fi
121
122 AC_MSG_RESULT(for ParMETIS: $parmetis_ok)
123
124 AC_SUBST(ENABLE_PARMETIS)
125 AC_SUBST(PARMETIS_CPPFLAGS)
126 AC_SUBST(PARMETIS_LIBS)
127 AC_SUBST(ENABLE_METIS)
128 AC_SUBST(METIS_CPPFLAGS)
129 AC_SUBST(METIS_LIBS)
130
131 AC_LANG_RESTORE
132
133 ])dnl
134
135 #for a future use...
136 AC_DEFUN([CHECK_PARMETISV4],[
137 AC_REQUIRE([AC_PROG_CC])dnl
138 AC_REQUIRE([AC_PROG_CPP])dnl
139 AC_REQUIRE([CHECK_MPI])dnl
140
141 AC_CHECKING(for ParMETIS V4 Library)
142
143 AC_LANG_SAVE
144 AC_LANG_C
145
146 PARMETIS_CPPFLAGS=""
147 PARMETIS_LIBS=""
148 ENABLE_PARMETIS="no"
149
150 AC_CHECKING(for ParMETIS location)
151 AC_ARG_WITH(parmetis,
152             [  --with-parmetis=DIR      root directory path to ParMETIS library installation ],
153             [PARMETISDIR="$withval"
154              AC_MSG_RESULT("select $withval as path to ParMETIS library")])
155
156 AC_MSG_RESULT(\$PARMETISDIR = ${PARMETISDIR})
157
158 CPPFLAGS_old="${CPPFLAGS}"
159 LIBS_old=$LIBS
160
161 if test "x${PARMETISDIR}" != "x" ; then
162   PARMETIS_CPPFLAGS="-DMED_ENABLE_PARMETIS -I${PARMETISDIR}/include ${MPI_INCLUDES}"
163   PARMETIS_LIBS="-L${PARMETISDIR}/lib -lparmetis -lmetis ${MPI_LIBS}"
164 fi
165
166 parmetis_ok=no
167 parmetis_headers_ok=no
168 parmetis_binaries_ok=no
169
170 dnl ParMETIS headers
171 AC_CHECKING(for ParMETIS headers)
172 CPPFLAGS="${CPPFLAGS_old} ${PARMETIS_CPPFLAGS}"
173
174 parmetis_include_dir_ok=yes
175 if test "x${PARMETISDIR}" != "x" ; then
176   AC_CHECK_FILE(${PARMETISDIR}/include/parmetis.h,
177                 parmetis_headers_ok=yes,
178                 parmetis_headers_ok=no)
179 fi
180
181 if test "x${parmetis_headers_ok}" = "xyes" ; then
182   AC_MSG_RESULT(\$PARMETIS_CPPFLAGS = ${PARMETIS_CPPFLAGS})
183 fi
184 AC_MSG_RESULT(for ParMETIS headers: $parmetis_headers_ok)
185
186 if test "x${parmetis_headers_ok}" = "xyes" ; then
187   dnl ParMETIS binaries
188   AC_CHECKING(for ParMETIS binaries)
189   AC_CHECK_FILE(${PARMETISDIR}/lib/libparmetis.a,
190                 parmetis_binaries_ok=yes,
191                 parmetis_binaries_ok=no)
192 fi
193
194 if test "x${parmetis_binaries_ok}" = "xyes" ; then
195   AC_MSG_RESULT(\$PARMETIS_LIBS = ${PARMETIS_LIBS})
196 fi
197 AC_MSG_RESULT(for ParMETIS binaries: $parmetis_binaries_ok)
198
199 CPPFLAGS="${CPPFLAGS_old}"
200 LIBS="${LIBS_old}"
201
202 if test "x${parmetis_headers_ok}" = "xyes" ; then
203   if test "x${parmetis_binaries_ok}" = "xyes" ; then
204     parmetis_ok=yes
205     ENABLE_PARMETIS="yes"
206   fi
207 fi
208
209 AC_MSG_RESULT(for ParMETIS: $parmetis_ok)
210
211 AC_SUBST(ENABLE_PARMETIS)
212 AC_SUBST(PARMETIS_CPPFLAGS)
213 AC_SUBST(PARMETIS_LIBS)
214
215 AC_LANG_RESTORE
216
217 ])dnl