Salome HOME
Merge from V5_1_main 14/05/2010
[modules/smesh.git] / configure.ac
1 #  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  This library is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU Lesser General Public
5 #  License as published by the Free Software Foundation; either
6 #  version 2.1 of the License.
7 #
8 #  This library is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 #  Lesser General Public License for more details.
12 #
13 #  You should have received a copy of the GNU Lesser General Public
14 #  License along with this library; if not, write to the Free Software
15 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 # Author : Marc Tajchman (CEA)
21 # Date : 28/06/2001
22 # Modified by : Patrick GOLDBRONN (CEA)
23 # Modified by : Marc Tajchman (CEA)
24 # Modified by : Alexander BORODIN (OCN) - autotools usage
25 # Created from configure.in.base
26 #
27 AC_INIT([Salome2 Project SMESH module], [5.1.4], [webmaster.salome@opencascade.com], [SalomeSMESH])
28 AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
29 AC_CANONICAL_HOST
30 AC_CANONICAL_TARGET
31 AM_INIT_AUTOMAKE([-Wno-portability])
32
33 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
34 AC_SUBST(XVERSION)
35
36 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
37 MODULE_NAME=smesh
38 AC_SUBST(MODULE_NAME)
39
40 echo
41 echo ---------------------------------------------
42 echo Initialize source and build root directories
43 echo ---------------------------------------------
44 echo
45
46 dnl
47 dnl Initialize source and build root directories
48 dnl
49
50 ROOT_BUILDDIR=`pwd`
51 ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
52 cd $ROOT_SRCDIR
53 ROOT_SRCDIR=`pwd`
54 cd $ROOT_BUILDDIR
55
56 AC_SUBST(ROOT_SRCDIR)
57 AC_SUBST(ROOT_BUILDDIR)
58
59 echo
60 echo Source root directory : $ROOT_SRCDIR
61 echo Build  root directory : $ROOT_BUILDDIR
62 echo
63 echo
64
65 if test -z "$AR"; then
66    AC_CHECK_PROGS(AR,ar xar,:,$PATH)
67 fi
68 AC_SUBST(AR)
69
70 dnl Export the AR macro so that it will be placed in the libtool file
71 dnl correctly.
72 export AR
73
74 echo
75 echo ---------------------------------------------
76 echo testing make
77 echo ---------------------------------------------
78 echo
79
80 AC_PROG_MAKE_SET
81 AC_PROG_INSTALL
82 AC_LOCAL_INSTALL
83 dnl
84 dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
85
86 echo
87 echo ---------------------------------------------
88 echo Configuring production
89 echo ---------------------------------------------
90 echo
91 AC_ENABLE_DEBUG(yes)
92 AC_DISABLE_PRODUCTION
93
94 echo ---------------------------------------------
95 echo testing libtool
96 echo ---------------------------------------------
97
98 dnl first, we set static to no!
99 dnl if we want it, use --enable-static
100 AC_ENABLE_STATIC(no)
101
102 AC_LIBTOOL_DLOPEN
103 AC_PROG_LIBTOOL
104
105 dnl Fix up the INSTALL macro if it s a relative path. We want the
106 dnl full-path to the binary instead.
107 case "$INSTALL" in
108    *install-sh*)
109       INSTALL='\${ROOT_BUILDDIR}'/adm_local/unix/config_files/install-sh
110       ;;
111 esac
112
113 echo
114 echo ---------------------------------------------
115 echo testing C/C++
116 echo ---------------------------------------------
117 echo
118
119 cc_ok=no
120 dnl inutil car libtool
121 dnl AC_PROG_CC
122 AC_PROG_CXX
123 AC_CXX_WARNINGS
124 AC_CXX_TEMPLATE_OPTIONS
125 AC_DEPEND_FLAG
126 # AC_CC_WARNINGS([ansi])
127 cc_ok=yes
128
129 echo
130 echo ---------------------------------------------
131 echo testing Fortran
132 echo ---------------------------------------------
133 echo
134
135 fortran_ok=no
136 AC_PROG_F77
137 AC_F77_LIBRARY_LDFLAGS
138 AC_PROG_FC
139 AC_FC_LIBRARY_LDFLAGS
140 if test "X$FC" != "X" ; then
141    fortran_ok=yes
142    F77=$FC
143 fi
144
145 dnl AM_CONDITIONAL( USE_GFORTRAN, [test "$F77" = "gfortran"])
146
147 echo
148
149 dnl Library libdl :
150 AC_CHECK_LIB(dl,dlopen)
151
152 dnl add library libm :
153 AC_CHECK_LIB(m,ceil)
154
155 dnl
156 dnl Well we use sstream which is not in gcc pre-2.95.3
157 dnl We must test if it exists. If not, add it in include !
158 dnl
159
160 AC_CXX_HAVE_SSTREAM
161
162 dnl
163 dnl ---------------------------------------------
164 dnl testing MPICH
165 dnl ---------------------------------------------
166 dnl
167
168 CHECK_MPICH
169
170 echo
171 echo ---------------------------------------------
172 echo testing LEX \& YACC
173 echo ---------------------------------------------
174 echo
175
176 lex_yacc_ok=no
177 AC_PROG_YACC
178 AC_PROG_LEX
179 lex_yacc_ok=yes
180
181 echo
182 echo ---------------------------------------------
183 echo testing python
184 echo ---------------------------------------------
185 echo
186
187 CHECK_PYTHON
188
189 dnl echo
190 dnl echo ---------------------------------------------
191 dnl echo testing java
192 dnl echo ---------------------------------------------
193 dnl echo
194
195 dnl CHECK_JAVA
196
197 echo
198 echo ---------------------------------------------
199 echo testing swig
200 echo ---------------------------------------------
201 echo
202
203 AM_PATH_PYTHON(2.3)
204 CHECK_SWIG
205
206 echo
207 echo ---------------------------------------------
208 echo testing threads
209 echo ---------------------------------------------
210 echo
211
212 ENABLE_PTHREADS
213
214 if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
215     echo
216     echo ---------------------------------------------
217     echo testing omniORB
218     echo ---------------------------------------------
219     echo
220
221     CHECK_OMNIORB
222
223 dnl echo
224 dnl echo ---------------------------------------------
225 dnl echo testing mico
226 dnl echo ---------------------------------------------
227 dnl echo
228
229 dnl CHECK_MICO
230
231     echo
232     echo ---------------------------------------------
233     echo default ORB : omniORB
234     echo ---------------------------------------------
235     echo
236
237     DEFAULT_ORB=omniORB
238
239     echo
240     echo ---------------------------------------------
241     echo testing Corba
242     echo ---------------------------------------------
243     echo
244
245     CHECK_CORBA
246
247     AC_SUBST_FILE(CORBA)
248     corba=make_$ORB
249     CORBA=adm_local/unix/$corba
250
251 fi
252
253 echo
254 echo ---------------------------------------------
255 echo Testing GUI
256 echo ---------------------------------------------
257 echo
258
259 CHECK_GUI_MODULE
260
261 gui_ok=no
262 if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
263   gui_ok=yes
264 fi
265
266 AM_CONDITIONAL(SMESH_ENABLE_GUI, [test "${gui_ok}" = "yes"])
267
268 if test "${SalomeGUI_need}" == "yes"; then
269   if test "${FullGUI_ok}" != "yes"; then
270     AC_MSG_WARN(For configure SMESH module necessary full GUI!)
271   fi
272 elif test "${SalomeGUI_need}" == "auto"; then
273   if test "${FullGUI_ok}" != "yes"; then
274     AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
275   fi
276 elif test "${SalomeGUI_need}" == "no"; then
277   echo Build without GUI option has been chosen
278 fi
279
280 if test "${gui_ok}" = "yes"; then
281     echo
282     echo ---------------------------------------------
283     echo testing openGL
284     echo ---------------------------------------------
285     echo
286
287     CHECK_OPENGL
288
289     echo
290     echo ---------------------------------------------
291     echo testing QT
292     echo ---------------------------------------------
293     echo
294
295     CHECK_QT
296
297     echo
298     echo ---------------------------------------------
299     echo testing VTK
300     echo ---------------------------------------------
301     echo
302
303     CHECK_VTK
304 fi
305
306 echo
307 echo ---------------------------------------------
308 echo testing HDF5
309 echo ---------------------------------------------
310 echo
311
312 CHECK_HDF5
313
314 echo
315 echo ---------------------------------------------
316 echo BOOST Library
317 echo ---------------------------------------------
318 echo
319
320 CHECK_BOOST
321
322 echo
323 echo ---------------------------------------------
324 echo Testing OpenCascade
325 echo ---------------------------------------------
326 echo
327
328 CHECK_CAS
329
330 if test "${gui_ok}" = "yes"; then
331
332 echo
333 echo ---------------------------------------------
334 echo Testing qwt
335 echo ---------------------------------------------
336 echo
337
338 CHECK_QWT
339
340 fi
341
342 echo
343 echo ---------------------------------------------
344 echo Testing html generators
345 echo ---------------------------------------------
346 echo
347
348 CHECK_HTML_GENERATORS
349
350 echo
351 echo ---------------------------------------------
352 echo Testing Kernel
353 echo ---------------------------------------------
354 echo
355
356 CHECK_KERNEL
357
358 echo
359 echo ---------------------------------------------
360 echo Testing Geom
361 echo ---------------------------------------------
362 echo
363
364 CHECK_GEOM
365
366 echo
367 echo ---------------------------------------------
368 echo Testing Med
369 echo ---------------------------------------------
370 echo
371
372 CHECK_MED
373
374 CHECK_PLATFORM
375
376 echo
377 echo ---------------------------------------------
378 echo Summary
379 echo ---------------------------------------------
380 echo
381
382 echo Configure
383
384 if test "${gui_ok}" = "yes"; then
385   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok qwt_ok Kernel_ok Geom_ok Med_ok gui_ok"
386 elif test "${SalomeGUI_need}" != "no"; then
387   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok gui_ok"
388 else
389   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok"
390 fi
391
392 for var in $variables
393 do
394    printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
395    eval echo \$$var
396 done
397
398 echo
399 echo "Default ORB   : $DEFAULT_ORB"
400 echo
401
402 dnl We don t need to say when we re entering directories if we re using
403 dnl GNU make becuase make does it for us.
404 if test "X$GMAKE" = "Xyes"; then
405    AC_SUBST(SETX) SETX=":"
406 else
407    AC_SUBST(SETX) SETX="set -x"
408 fi
409
410 dnl AM_CONDITIONAL(GUI_ENABLE_CORBA, [test "$GUI_DISABLE_CORBA" = no])
411 dnl AM_CONDITIONAL(ENABLE_PYCONSOLE, [test "$DISABLE_PYCONSOLE" = no])
412 dnl AM_CONDITIONAL(ENABLE_GLVIEWER, [test "$DISABLE_GLVIEWER" = no])
413 dnl AM_CONDITIONAL(ENABLE_PLOT2DVIEWER, [test "$DISABLE_PLOT2DVIEWER" = no])
414 dnl AM_CONDITIONAL(ENABLE_SUPERVGRAPHVIEWER, [test "$DISABLE_SUPERVGRAPHVIEWER" = no])
415 dnl AM_CONDITIONAL(ENABLE_OCCVIEWER, [test "$DISABLE_OCCVIEWER" = no])
416 dnl AM_CONDITIONAL(ENABLE_VTKVIEWER, [test "$DISABLE_VTKVIEWER" = no])
417 dnl AM_CONDITIONAL(ENABLE_SALOMEOBJECT, [test "$DISABLE_SALOMEOBJECT" = no])
418
419 echo
420 echo ---------------------------------------------
421 echo generating Makefiles and configure files
422 echo ---------------------------------------------
423 echo
424
425 #AC_OUTPUT_COMMANDS([ \
426 #  chmod +x ./bin/*; \
427 #  chmod +x ./bin/salome/*; \
428 #])
429
430 # This list is initiated using autoscan and must be updated manually
431 # when adding a new file <filename>.in to manage. When you execute
432 # autoscan, the Makefile list is generated in the output file configure.scan.
433 # This could be helpfull to update de configuration.
434 AC_OUTPUT([ \
435   adm_local/Makefile \
436   adm_local/cmake_files/Makefile \
437   adm_local/unix/Makefile \
438   adm_local/unix/config_files/Makefile \
439   bin/VERSION \
440   bin/Makefile \
441   SMESH_version.h \
442   doc/Makefile \
443   doc/salome/Makefile \
444   doc/salome/gui/Makefile \
445   doc/salome/gui/SMESH/Makefile \
446   doc/salome/gui/SMESH/doxyfile \
447   doc/salome/gui/SMESH/doxyfile_py \
448   doc/salome/gui/SMESH/static/header.html \
449   doc/salome/tui/Makefile \
450   doc/salome/tui/doxyfile \
451   doc/salome/tui/static/header.html \
452   src/Makefile \
453   src/Controls/Makefile \
454   src/Driver/Makefile \
455   src/DriverDAT/Makefile \
456   src/DriverMED/Makefile \
457   src/DriverSTL/Makefile \
458   src/DriverUNV/Makefile \
459   src/MEFISTO2/Makefile \
460   src/OBJECT/Makefile \
461   src/PluginUtils/Makefile \
462   src/SMDS/Makefile \
463   src/SMESH/Makefile \
464   src/SMESHClient/Makefile \
465   src/SMESHDS/Makefile \
466   src/SMESHFiltersSelection/Makefile \
467   src/SMESHGUI/Makefile \
468   src/SMESH_I/Makefile \
469   src/SMESH_SWIG/Makefile \
470   src/SMESH_SWIG_WITHIHM/Makefile \
471   src/StdMeshers/Makefile \
472   src/StdMeshersGUI/Makefile \
473   src/StdMeshers_I/Makefile \
474   resources/Makefile \
475   resources/SMESHCatalog.xml \
476   idl/Makefile \
477   Makefile
478 ])