Salome HOME
51899e35e1e63be7c097f3ba3b628800d9c9f16f
[modules/smesh.git] / configure.ac
1 # Copyright (C) 2007-2012  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], [7.0.0], [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 VERSION_DEV=1
36 AC_SUBST(VERSION_DEV)
37
38 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
39 MODULE_NAME=smesh
40 AC_SUBST(MODULE_NAME)
41
42 echo
43 echo ---------------------------------------------
44 echo Initialize source and build root directories
45 echo ---------------------------------------------
46 echo
47
48 dnl
49 dnl Initialize source and build root directories
50 dnl
51
52 ROOT_BUILDDIR=`pwd`
53 ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
54 cd $ROOT_SRCDIR
55 ROOT_SRCDIR=`pwd`
56 cd $ROOT_BUILDDIR
57
58 AC_SUBST(ROOT_SRCDIR)
59 AC_SUBST(ROOT_BUILDDIR)
60
61 echo
62 echo Source root directory : $ROOT_SRCDIR
63 echo Build  root directory : $ROOT_BUILDDIR
64 echo
65 echo
66
67 if test -z "$AR"; then
68    AC_CHECK_PROGS(AR,ar xar,:,$PATH)
69 fi
70 AC_SUBST(AR)
71
72 dnl Export the AR macro so that it will be placed in the libtool file
73 dnl correctly.
74 export AR
75
76 echo
77 echo ---------------------------------------------
78 echo testing make
79 echo ---------------------------------------------
80 echo
81
82 AC_PROG_MAKE_SET
83 AC_PROG_INSTALL
84 AC_LOCAL_INSTALL
85 dnl
86 dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
87
88 echo
89 echo ---------------------------------------------
90 echo Configuring production
91 echo ---------------------------------------------
92 echo
93 AC_ENABLE_DEBUG(yes)
94 AC_DISABLE_PRODUCTION
95
96 echo ---------------------------------------------
97 echo testing libtool
98 echo ---------------------------------------------
99
100 dnl first, we set static to no!
101 dnl if we want it, use --enable-static
102 AC_ENABLE_STATIC(no)
103
104 AC_LIBTOOL_DLOPEN
105 AC_PROG_LIBTOOL
106
107 dnl Fix up the INSTALL macro if it s a relative path. We want the
108 dnl full-path to the binary instead.
109 case "$INSTALL" in
110    *install-sh*)
111       INSTALL='\${ROOT_BUILDDIR}'/adm_local/unix/config_files/install-sh
112       ;;
113 esac
114
115 echo
116 echo ---------------------------------------------
117 echo testing C/C++
118 echo ---------------------------------------------
119 echo
120
121 cc_ok=no
122 dnl inutil car libtool
123 dnl AC_PROG_CC
124 AC_PROG_CXX
125 AC_CXX_WARNINGS
126 AC_CXX_TEMPLATE_OPTIONS
127 AC_DEPEND_FLAG
128 # AC_CC_WARNINGS([ansi])
129 cc_ok=yes
130
131 echo
132 echo ---------------------------------------------
133 echo testing Fortran
134 echo ---------------------------------------------
135 echo
136
137 fortran_ok=no
138 AC_PROG_F77
139 AC_F77_LIBRARY_LDFLAGS
140 AC_PROG_FC
141 AC_FC_LIBRARY_LDFLAGS
142 if test "X$FC" != "X" ; then
143    fortran_ok=yes
144    F77=$FC
145 fi
146
147 dnl AM_CONDITIONAL( USE_GFORTRAN, [test "$F77" = "gfortran"])
148
149 echo
150
151 dnl Library libdl :
152 AC_CHECK_LIB(dl,dlopen)
153
154 dnl add library libm :
155 AC_CHECK_LIB(m,ceil)
156
157 dnl
158 dnl Well we use sstream which is not in gcc pre-2.95.3
159 dnl We must test if it exists. If not, add it in include !
160 dnl
161
162 AC_CXX_HAVE_SSTREAM
163
164 dnl
165 dnl ---------------------------------------------
166 dnl testing MPICH
167 dnl ---------------------------------------------
168 dnl
169
170 dnl CHECK_MPICH
171
172 echo
173 echo ---------------------------------------------
174 echo testing MPI
175 echo ---------------------------------------------
176 echo
177
178 CHECK_MPI
179
180 echo
181 echo ---------------------------------------------
182 echo testing LEX \& YACC
183 echo ---------------------------------------------
184 echo
185
186 lex_yacc_ok=no
187 AC_PROG_YACC
188 AC_PROG_LEX
189 lex_yacc_ok=yes
190
191 echo
192 echo ---------------------------------------------
193 echo testing python
194 echo ---------------------------------------------
195 echo
196
197 CHECK_PYTHON
198
199 dnl echo
200 dnl echo ---------------------------------------------
201 dnl echo testing java
202 dnl echo ---------------------------------------------
203 dnl echo
204
205 dnl CHECK_JAVA
206
207 echo
208 echo ---------------------------------------------
209 echo testing swig
210 echo ---------------------------------------------
211 echo
212
213 AM_PATH_PYTHON(2.3)
214 CHECK_SWIG
215
216 echo
217 echo ---------------------------------------------
218 echo testing threads
219 echo ---------------------------------------------
220 echo
221
222 ENABLE_PTHREADS
223
224 if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
225     echo
226     echo ---------------------------------------------
227     echo testing omniORB
228     echo ---------------------------------------------
229     echo
230
231     CHECK_OMNIORB
232
233 dnl echo
234 dnl echo ---------------------------------------------
235 dnl echo testing mico
236 dnl echo ---------------------------------------------
237 dnl echo
238
239 dnl CHECK_MICO
240
241     echo
242     echo ---------------------------------------------
243     echo default ORB : omniORB
244     echo ---------------------------------------------
245     echo
246
247     DEFAULT_ORB=omniORB
248
249     echo
250     echo ---------------------------------------------
251     echo testing Corba
252     echo ---------------------------------------------
253     echo
254
255     CHECK_CORBA
256
257     AC_SUBST_FILE(CORBA)
258     corba=make_$ORB
259     CORBA=adm_local/unix/$corba
260
261 fi
262
263 echo
264 echo ---------------------------------------------
265 echo Testing GUI
266 echo ---------------------------------------------
267 echo
268
269 CHECK_GUI_MODULE
270
271 gui_ok=no
272 if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
273   gui_ok=yes
274 fi
275
276 AM_CONDITIONAL(SMESH_ENABLE_GUI, [test "${gui_ok}" = "yes"])
277
278 if test "${SalomeGUI_need}" == "yes"; then
279   if test "${FullGUI_ok}" != "yes"; then
280     AC_MSG_WARN(For configure SMESH module necessary full GUI!)
281   fi
282 elif test "${SalomeGUI_need}" == "auto"; then
283   if test "${FullGUI_ok}" != "yes"; then
284     AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
285   fi
286 elif test "${SalomeGUI_need}" == "no"; then
287   echo Build without GUI option has been chosen
288 fi
289
290 if test "${gui_ok}" = "yes"; then
291     echo
292     echo ---------------------------------------------
293     echo testing openGL
294     echo ---------------------------------------------
295     echo
296
297     CHECK_OPENGL
298
299     echo
300     echo ---------------------------------------------
301     echo testing QT
302     echo ---------------------------------------------
303     echo
304
305     CHECK_QT
306
307     echo
308     echo ---------------------------------------------
309     echo testing sip
310     echo ---------------------------------------------
311     echo
312
313     CHECK_SIP
314
315     echo
316     echo ---------------------------------------------
317     echo testing pyqt
318     echo ---------------------------------------------
319     echo
320
321     CHECK_PYQT
322
323     echo
324     echo ---------------------------------------------
325     echo Testing qwt
326     echo ---------------------------------------------
327     echo
328
329     CHECK_QWT
330 fi
331
332 echo
333 echo ---------------------------------------------
334 echo testing VTK
335 echo ---------------------------------------------
336 echo
337
338 CHECK_VTK
339
340 echo
341 echo ---------------------------------------------
342 echo testing HDF5
343 echo ---------------------------------------------
344 echo
345
346 CHECK_HDF5
347
348 echo
349 echo ---------------------------------------------
350 echo testing MED3
351 echo ---------------------------------------------
352 echo
353
354 CHECK_MED3
355
356 echo
357 echo ---------------------------------------------
358 echo BOOST Library
359 echo ---------------------------------------------
360 echo
361
362 CHECK_BOOST
363
364 echo
365 echo ---------------------------------------------
366 echo Testing OpenCascade
367 echo ---------------------------------------------
368 echo
369
370 CHECK_CAS
371
372 echo
373 echo ---------------------------------------------
374 echo Testing html generators
375 echo ---------------------------------------------
376 echo
377
378 CHECK_HTML_GENERATORS
379
380 echo
381 echo ---------------------------------------------
382 echo testing sphinx
383 echo ---------------------------------------------
384 echo
385 CHECK_SPHINX
386
387 echo
388 echo ---------------------------------------------
389 echo testing libxm
390 echo ---------------------------------------------
391 echo
392 dnl Check the libxml that will be required to use the SALOME launcher
393 CHECK_LIBXML
394
395 echo
396 echo ---------------------------------------------
397 echo Testing Kernel
398 echo ---------------------------------------------
399 echo
400
401 CHECK_KERNEL
402
403 echo
404 echo ---------------------------------------------
405 echo Testing Geom
406 echo ---------------------------------------------
407 echo
408
409 CHECK_GEOM
410
411 echo
412 echo ---------------------------------------------
413 echo Testing Med
414 echo ---------------------------------------------
415 echo
416
417 CHECK_MED
418
419 CHECK_PLATFORM
420
421 echo
422 echo ---------------------------------------------
423 echo Testing CGNS library
424 echo ---------------------------------------------
425 echo
426
427 CHECK_CGNS
428
429 echo
430 echo ---------------------------------------------
431 echo Testing PADDER library
432 echo ---------------------------------------------
433 echo
434
435 CHECK_CGAL
436 CHECK_PADDER
437
438 echo
439 echo ---------------------------------------------
440 echo Testing TBB library
441 echo ---------------------------------------------
442 echo
443
444 CHECK_TBB
445
446 echo
447 echo ---------------------------------------------
448 echo Summary
449 echo ---------------------------------------------
450 echo
451
452 echo Configure
453
454 if test "${gui_ok}" = "yes"; then
455   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok cgns_ok tbb_ok omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok qwt_ok Kernel_ok Geom_ok Med_ok gui_ok"
456 elif test "${SalomeGUI_need}" != "no"; then
457   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok cgns_ok tbb_ok med3_ok omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok Kernel_ok Geom_ok Med_ok gui_ok"
458 else
459   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok cgns_ok tbb_ok med3_ok omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok Kernel_ok Geom_ok Med_ok"
460 fi
461
462 for var in $variables
463 do
464    printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
465    eval echo \$$var
466 done
467
468 echo
469 echo "Default ORB   : $DEFAULT_ORB"
470 echo
471
472 echo "Optionnal products (for plugins):"
473 optional_vars="cgal_ok padder_ok"
474 for var in $optional_vars
475 do
476    printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
477    eval echo \$$var
478 done
479
480
481
482 dnl We don t need to say when we re entering directories if we re using
483 dnl GNU make becuase make does it for us.
484 if test "X$GMAKE" = "Xyes"; then
485    AC_SUBST(SETX) SETX=":"
486 else
487    AC_SUBST(SETX) SETX="set -x"
488 fi
489
490 dnl AM_CONDITIONAL(GUI_ENABLE_CORBA, [test "$GUI_DISABLE_CORBA" = no])
491 dnl AM_CONDITIONAL(ENABLE_PYCONSOLE, [test "$DISABLE_PYCONSOLE" = no])
492 dnl AM_CONDITIONAL(ENABLE_GLVIEWER, [test "$DISABLE_GLVIEWER" = no])
493 dnl AM_CONDITIONAL(ENABLE_PLOT2DVIEWER, [test "$DISABLE_PLOT2DVIEWER" = no])
494 dnl AM_CONDITIONAL(ENABLE_SUPERVGRAPHVIEWER, [test "$DISABLE_SUPERVGRAPHVIEWER" = no])
495 dnl AM_CONDITIONAL(ENABLE_OCCVIEWER, [test "$DISABLE_OCCVIEWER" = no])
496 dnl AM_CONDITIONAL(ENABLE_VTKVIEWER, [test "$DISABLE_VTKVIEWER" = no])
497 dnl AM_CONDITIONAL(ENABLE_SALOMEOBJECT, [test "$DISABLE_SALOMEOBJECT" = no])
498
499 dnl Build with SMESH cancel compute feature
500 AC_DEFINE(WITH_SMESH_CANCEL_COMPUTE)
501
502 echo
503 echo ---------------------------------------------
504 echo generating Makefiles and configure files
505 echo ---------------------------------------------
506 echo
507
508 #AC_OUTPUT_COMMANDS([ \
509 #  chmod +x ./bin/*; \
510 #  chmod +x ./bin/salome/*; \
511 #])
512
513 AC_HACK_LIBTOOL
514 AC_CONFIG_COMMANDS([hack_libtool],[
515 sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
516   $(pwd)/hack_libtool \1 \"\$[@]\" \n\
517 }\n\
518 CC=\"hack_libtool\"%g" libtool
519 sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool
520 sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool
521 sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1  if ! test -d \$sss; then continue; fi\n\1  ssss=\$(cd \$sss; pwd)\n\1  if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1    case \$ssss in\n\1      /usr/lib | /usr/lib64 ) ;;\n\1      * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1    esac\n\1  fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool
522 ],[])
523
524 # This list is initiated using autoscan and must be updated manually
525 # when adding a new file <filename>.in to manage. When you execute
526 # autoscan, the Makefile list is generated in the output file configure.scan.
527 # This could be helpfull to update de configuration.
528 AC_OUTPUT([ \
529   adm_local/Makefile \
530   adm_local/cmake_files/Makefile \
531   adm_local/unix/Makefile \
532   adm_local/unix/config_files/Makefile \
533   bin/VERSION \
534   bin/Makefile \
535   SMESH_version.h \
536   doc/Makefile \
537   doc/docutils/Makefile \
538   doc/docutils/conf.py \
539   doc/salome/Makefile \
540   doc/salome/gui/Makefile \
541   doc/salome/gui/SMESH/Makefile \
542   doc/salome/gui/SMESH/doxyfile \
543   doc/salome/gui/SMESH/doxyfile_py \
544   doc/salome/gui/SMESH/static/header.html \
545   doc/salome/gui/SMESH/static/header_py.html \
546   doc/salome/tui/Makefile \
547   doc/salome/tui/doxyfile \
548   doc/salome/tui/static/header.html \
549   src/Makefile \
550   src/Controls/Makefile \
551   src/Driver/Makefile \
552   src/DriverDAT/Makefile \
553   src/DriverMED/Makefile \
554   src/DriverSTL/Makefile \
555   src/DriverUNV/Makefile \
556   src/DriverGMF/Makefile \
557   src/DriverCGNS/Makefile \
558   src/MEFISTO2/Makefile \
559   src/OBJECT/Makefile \
560   src/PluginUtils/Makefile \
561   src/SMDS/Makefile \
562   src/SMESH/Makefile \
563   src/SMESHUtils/Makefile \
564   src/SMESHClient/Makefile \
565   src/SMESHDS/Makefile \
566   src/SMESHFiltersSelection/Makefile \
567   src/SMESHGUI/Makefile \
568   src/SMESH_I/Makefile \
569   src/SMESH_SWIG/Makefile \
570   src/SMESH_SWIG_WITHIHM/Makefile \
571   src/StdMeshers/Makefile \
572   src/StdMeshersGUI/Makefile \
573   src/StdMeshers_I/Makefile \
574   src/SMESH_PY/Makefile \
575   src/Tools/Makefile \
576   src/Tools/MeshCut/Makefile \
577   src/Tools/padder/Makefile \
578   src/Tools/padder/meshjob/Makefile \
579   src/Tools/padder/meshjob/idl/Makefile \
580   src/Tools/padder/meshjob/impl/Makefile \
581   src/Tools/padder/spadderpy/Makefile \
582   src/Tools/padder/spadderpy/padder.cfg \
583   src/Tools/padder/spadderpy/gui/Makefile \
584   src/Tools/padder/spadderpy/plugin/Makefile \
585   src/Tools/padder/spadderpy/plugin/envPlugins.sh \
586   src/Tools/padder/resources/Makefile \
587   src/Tools/padder/resources/appligen/Makefile \
588   src/Tools/padder/resources/appligen/appligen.sh \
589   src/Tools/padder/resources/appligen/config_appli.xml \
590   src/Tools/padder/resources/padderexe/Makefile \
591   src/Tools/padder/resources/padderexe/envPadder.sh \
592   src/Tools/padder/unittests/Makefile \
593   src/Tools/padder/unittests/autotest.sh \
594   src/Tools/padder/doc/Makefile \
595   src/Tools/padder/doc/doxyfile \
596   resources/Makefile \
597   resources/SMESHCatalog.xml \
598   resources/SalomeApp.xml \
599   idl/Makefile \
600   Makefile
601 ])