Salome HOME
0021481: [CEA 538] autoconf and med 3
[modules/smesh.git] / configure.ac
1 # Copyright (C) 2007-2011  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], [6.4.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
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 dnl CHECK_MPICH
169
170 echo
171 echo ---------------------------------------------
172 echo testing MPI
173 echo ---------------------------------------------
174 echo
175
176 CHECK_MPI
177
178 echo
179 echo ---------------------------------------------
180 echo testing LEX \& YACC
181 echo ---------------------------------------------
182 echo
183
184 lex_yacc_ok=no
185 AC_PROG_YACC
186 AC_PROG_LEX
187 lex_yacc_ok=yes
188
189 echo
190 echo ---------------------------------------------
191 echo testing python
192 echo ---------------------------------------------
193 echo
194
195 CHECK_PYTHON
196
197 dnl echo
198 dnl echo ---------------------------------------------
199 dnl echo testing java
200 dnl echo ---------------------------------------------
201 dnl echo
202
203 dnl CHECK_JAVA
204
205 echo
206 echo ---------------------------------------------
207 echo testing swig
208 echo ---------------------------------------------
209 echo
210
211 AM_PATH_PYTHON(2.3)
212 CHECK_SWIG
213
214 echo
215 echo ---------------------------------------------
216 echo testing threads
217 echo ---------------------------------------------
218 echo
219
220 ENABLE_PTHREADS
221
222 if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
223     echo
224     echo ---------------------------------------------
225     echo testing omniORB
226     echo ---------------------------------------------
227     echo
228
229     CHECK_OMNIORB
230
231 dnl echo
232 dnl echo ---------------------------------------------
233 dnl echo testing mico
234 dnl echo ---------------------------------------------
235 dnl echo
236
237 dnl CHECK_MICO
238
239     echo
240     echo ---------------------------------------------
241     echo default ORB : omniORB
242     echo ---------------------------------------------
243     echo
244
245     DEFAULT_ORB=omniORB
246
247     echo
248     echo ---------------------------------------------
249     echo testing Corba
250     echo ---------------------------------------------
251     echo
252
253     CHECK_CORBA
254
255     AC_SUBST_FILE(CORBA)
256     corba=make_$ORB
257     CORBA=adm_local/unix/$corba
258
259 fi
260
261 echo
262 echo ---------------------------------------------
263 echo Testing GUI
264 echo ---------------------------------------------
265 echo
266
267 CHECK_GUI_MODULE
268
269 gui_ok=no
270 if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
271   gui_ok=yes
272 fi
273
274 AM_CONDITIONAL(SMESH_ENABLE_GUI, [test "${gui_ok}" = "yes"])
275
276 if test "${SalomeGUI_need}" == "yes"; then
277   if test "${FullGUI_ok}" != "yes"; then
278     AC_MSG_WARN(For configure SMESH module necessary full GUI!)
279   fi
280 elif test "${SalomeGUI_need}" == "auto"; then
281   if test "${FullGUI_ok}" != "yes"; then
282     AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
283   fi
284 elif test "${SalomeGUI_need}" == "no"; then
285   echo Build without GUI option has been chosen
286 fi
287
288 if test "${gui_ok}" = "yes"; then
289     echo
290     echo ---------------------------------------------
291     echo testing openGL
292     echo ---------------------------------------------
293     echo
294
295     CHECK_OPENGL
296
297     echo
298     echo ---------------------------------------------
299     echo testing QT
300     echo ---------------------------------------------
301     echo
302
303     CHECK_QT
304
305     echo
306     echo ---------------------------------------------
307     echo testing sip
308     echo ---------------------------------------------
309     echo
310
311     CHECK_SIP
312
313     echo
314     echo ---------------------------------------------
315     echo testing pyqt
316     echo ---------------------------------------------
317     echo
318
319     CHECK_PYQT
320
321     echo
322     echo ---------------------------------------------
323     echo Testing qwt
324     echo ---------------------------------------------
325     echo
326
327     CHECK_QWT
328 fi
329
330 echo
331 echo ---------------------------------------------
332 echo testing VTK
333 echo ---------------------------------------------
334 echo
335
336 CHECK_VTK
337
338 echo
339 echo ---------------------------------------------
340 echo testing HDF5
341 echo ---------------------------------------------
342 echo
343
344 CHECK_HDF5
345
346 echo
347 echo ---------------------------------------------
348 echo testing MED3
349 echo ---------------------------------------------
350 echo
351
352 CHECK_MED3
353
354 echo
355 echo ---------------------------------------------
356 echo BOOST Library
357 echo ---------------------------------------------
358 echo
359
360 CHECK_BOOST
361
362 echo
363 echo ---------------------------------------------
364 echo Testing OpenCascade
365 echo ---------------------------------------------
366 echo
367
368 CHECK_CAS
369
370 echo
371 echo ---------------------------------------------
372 echo Testing html generators
373 echo ---------------------------------------------
374 echo
375
376 CHECK_HTML_GENERATORS
377
378 echo
379 echo ---------------------------------------------
380 echo testing sphinx
381 echo ---------------------------------------------
382 echo
383 CHECK_SPHINX
384
385 echo
386 echo ---------------------------------------------
387 echo testing libxm
388 echo ---------------------------------------------
389 echo
390 dnl Check the libxml that will be required to use the SALOME launcher
391 CHECK_LIBXML
392
393 echo
394 echo ---------------------------------------------
395 echo Testing Kernel
396 echo ---------------------------------------------
397 echo
398
399 CHECK_KERNEL
400
401 echo
402 echo ---------------------------------------------
403 echo Testing Geom
404 echo ---------------------------------------------
405 echo
406
407 CHECK_GEOM
408
409 echo
410 echo ---------------------------------------------
411 echo Testing Med
412 echo ---------------------------------------------
413 echo
414
415 CHECK_MED
416
417 CHECK_PLATFORM
418
419 echo
420 echo ---------------------------------------------
421 echo Testing CGNS library
422 echo ---------------------------------------------
423 echo
424
425 CHECK_CGNS
426
427 echo
428 echo ---------------------------------------------
429 echo Summary
430 echo ---------------------------------------------
431 echo
432
433 echo Configure
434
435 if test "${gui_ok}" = "yes"; then
436   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 omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok qwt_ok Kernel_ok Geom_ok Med_ok gui_ok"
437 elif test "${SalomeGUI_need}" != "no"; then
438   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok cgns_ok med3_ok omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok Kernel_ok Geom_ok Med_ok gui_ok"
439 else
440   variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok cgns_ok med3_ok omniORB_ok occ_ok doxygen_ok graphviz_ok sphinx_ok Kernel_ok Geom_ok Med_ok"
441 fi
442
443 for var in $variables
444 do
445    printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
446    eval echo \$$var
447 done
448
449 echo
450 echo "Default ORB   : $DEFAULT_ORB"
451 echo
452
453 dnl We don t need to say when we re entering directories if we re using
454 dnl GNU make becuase make does it for us.
455 if test "X$GMAKE" = "Xyes"; then
456    AC_SUBST(SETX) SETX=":"
457 else
458    AC_SUBST(SETX) SETX="set -x"
459 fi
460
461 dnl AM_CONDITIONAL(GUI_ENABLE_CORBA, [test "$GUI_DISABLE_CORBA" = no])
462 dnl AM_CONDITIONAL(ENABLE_PYCONSOLE, [test "$DISABLE_PYCONSOLE" = no])
463 dnl AM_CONDITIONAL(ENABLE_GLVIEWER, [test "$DISABLE_GLVIEWER" = no])
464 dnl AM_CONDITIONAL(ENABLE_PLOT2DVIEWER, [test "$DISABLE_PLOT2DVIEWER" = no])
465 dnl AM_CONDITIONAL(ENABLE_SUPERVGRAPHVIEWER, [test "$DISABLE_SUPERVGRAPHVIEWER" = no])
466 dnl AM_CONDITIONAL(ENABLE_OCCVIEWER, [test "$DISABLE_OCCVIEWER" = no])
467 dnl AM_CONDITIONAL(ENABLE_VTKVIEWER, [test "$DISABLE_VTKVIEWER" = no])
468 dnl AM_CONDITIONAL(ENABLE_SALOMEOBJECT, [test "$DISABLE_SALOMEOBJECT" = no])
469
470 dnl Build with SMESH cancel compute feature
471 AC_DEFINE(WITH_SMESH_CANCEL_COMPUTE)
472
473 echo
474 echo ---------------------------------------------
475 echo generating Makefiles and configure files
476 echo ---------------------------------------------
477 echo
478
479 #AC_OUTPUT_COMMANDS([ \
480 #  chmod +x ./bin/*; \
481 #  chmod +x ./bin/salome/*; \
482 #])
483
484 AC_HACK_LIBTOOL
485 AC_CONFIG_COMMANDS([hack_libtool],[
486 sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
487   $(pwd)/hack_libtool \1 \"\$[@]\" \n\
488 }\n\
489 CC=\"hack_libtool\"%g" libtool
490 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
491 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
492 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
493 ],[])
494
495 # This list is initiated using autoscan and must be updated manually
496 # when adding a new file <filename>.in to manage. When you execute
497 # autoscan, the Makefile list is generated in the output file configure.scan.
498 # This could be helpfull to update de configuration.
499 AC_OUTPUT([ \
500   adm_local/Makefile \
501   adm_local/cmake_files/Makefile \
502   adm_local/unix/Makefile \
503   adm_local/unix/config_files/Makefile \
504   bin/VERSION \
505   bin/Makefile \
506   SMESH_version.h \
507   doc/Makefile \
508   doc/docutils/Makefile \
509   doc/docutils/conf.py \
510   doc/salome/Makefile \
511   doc/salome/gui/Makefile \
512   doc/salome/gui/SMESH/Makefile \
513   doc/salome/gui/SMESH/doxyfile \
514   doc/salome/gui/SMESH/doxyfile_py \
515   doc/salome/gui/SMESH/static/header.html \
516   doc/salome/gui/SMESH/static/header_py.html \
517   doc/salome/tui/Makefile \
518   doc/salome/tui/doxyfile \
519   doc/salome/tui/static/header.html \
520   src/Makefile \
521   src/Controls/Makefile \
522   src/Driver/Makefile \
523   src/DriverDAT/Makefile \
524   src/DriverMED/Makefile \
525   src/DriverSTL/Makefile \
526   src/DriverUNV/Makefile \
527   src/DriverCGNS/Makefile \
528   src/MEFISTO2/Makefile \
529   src/OBJECT/Makefile \
530   src/PluginUtils/Makefile \
531   src/SMDS/Makefile \
532   src/SMESH/Makefile \
533   src/SMESHUtils/Makefile \
534   src/SMESHClient/Makefile \
535   src/SMESHDS/Makefile \
536   src/SMESHFiltersSelection/Makefile \
537   src/SMESHGUI/Makefile \
538   src/SMESH_I/Makefile \
539   src/SMESH_SWIG/Makefile \
540   src/SMESH_SWIG_WITHIHM/Makefile \
541   src/StdMeshers/Makefile \
542   src/StdMeshersGUI/Makefile \
543   src/StdMeshers_I/Makefile \
544   src/SMESH_PY/Makefile \
545   src/Tools/Makefile \
546   src/Tools/MeshCut/Makefile \
547   src/Tools/padder/Makefile \
548   src/Tools/padder/meshjob/Makefile \
549   src/Tools/padder/meshjob/idl/Makefile \
550   src/Tools/padder/meshjob/impl/Makefile \
551   src/Tools/padder/spadderpy/Makefile \
552   src/Tools/padder/spadderpy/padder.cfg \
553   src/Tools/padder/spadderpy/gui/Makefile \
554   src/Tools/padder/spadderpy/plugin/Makefile \
555   src/Tools/padder/spadderpy/plugin/envPlugins.sh \
556   src/Tools/padder/resources/Makefile \
557   src/Tools/padder/resources/appligen/Makefile \
558   src/Tools/padder/resources/appligen/appligen.sh \
559   src/Tools/padder/resources/appligen/config_appli.xml \
560   src/Tools/padder/resources/padderexe/Makefile \
561   src/Tools/padder/resources/padderexe/envPadder.sh \
562   src/Tools/padder/unittests/Makefile \
563   src/Tools/padder/unittests/autotest.sh \
564   src/Tools/padder/doc/Makefile \
565   src/Tools/padder/doc/doxyfile \
566   resources/Makefile \
567   resources/SMESHCatalog.xml \
568   resources/SalomeApp.xml \
569   idl/Makefile \
570   Makefile
571 ])