Salome HOME
Fix compilation problem on Calibre 5 configuration (f77 vs gfortran)
[modules/smesh.git] / configure.ac
1 #
2 # Author : Marc Tajchman (CEA)
3 # Date : 28/06/2001
4 # Modified by : Patrick GOLDBRONN (CEA)
5 # Modified by : Marc Tajchman (CEA)
6 # Modified by : Alexander BORODIN (OCN) - autotools usage
7 #
8 # Created from configure.in.base
9 #
10
11
12 AC_INIT([Salome2 Project SMESH module], [4.1.3], [webmaster.salome@opencascade.com], [salome])
13 AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
14 AC_CANONICAL_HOST
15 AC_CANONICAL_TARGET
16 AM_INIT_AUTOMAKE
17
18 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
19 AC_SUBST(XVERSION)
20
21 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
22 MODULE_NAME=smesh
23 AC_SUBST(MODULE_NAME)
24
25 echo
26 echo ---------------------------------------------
27 echo Initialize source and build root directories
28 echo ---------------------------------------------
29 echo
30
31 dnl
32 dnl Initialize source and build root directories
33 dnl
34
35 ROOT_BUILDDIR=`pwd`
36 ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
37 cd $ROOT_SRCDIR
38 ROOT_SRCDIR=`pwd`
39 cd $ROOT_BUILDDIR
40
41 AC_SUBST(ROOT_SRCDIR)
42 AC_SUBST(ROOT_BUILDDIR)
43
44 echo
45 echo Source root directory : $ROOT_SRCDIR
46 echo Build  root directory : $ROOT_BUILDDIR
47 echo
48 echo
49
50 if test -z "$AR"; then
51    AC_CHECK_PROGS(AR,ar xar,:,$PATH)
52 fi
53 AC_SUBST(AR)
54
55 dnl Export the AR macro so that it will be placed in the libtool file
56 dnl correctly.
57 export AR
58
59 echo
60 echo ---------------------------------------------
61 echo testing make
62 echo ---------------------------------------------
63 echo
64
65 AC_PROG_MAKE_SET
66 AC_PROG_INSTALL
67 dnl
68 dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
69
70 echo
71 echo ---------------------------------------------
72 echo Coniguring production
73 echo ---------------------------------------------
74 echo
75 AC_ENABLE_DEBUG(yes)
76 AC_DISABLE_PRODUCTION
77
78 echo ---------------------------------------------
79 echo testing libtool
80 echo ---------------------------------------------
81
82 dnl first, we set static to no!
83 dnl if we want it, use --enable-static
84 AC_ENABLE_STATIC(no)
85
86 AC_LIBTOOL_DLOPEN
87 AC_PROG_LIBTOOL
88
89 dnl Fix up the INSTALL macro if it s a relative path. We want the
90 dnl full-path to the binary instead.
91 case "$INSTALL" in
92    *install-sh*)
93       INSTALL='\${ROOT_BUILDDIR}'/salome_adm/unix/config_files/install-sh
94       ;;
95 esac
96
97 echo
98 echo ---------------------------------------------
99 echo testing C/C++
100 echo ---------------------------------------------
101 echo
102
103 cc_ok=no
104 dnl inutil car libtool
105 dnl AC_PROG_CC
106 AC_PROG_CXX
107 AC_CXX_WARNINGS
108 AC_CXX_TEMPLATE_OPTIONS
109 AC_DEPEND_FLAG
110 # AC_CC_WARNINGS([ansi])
111 cc_ok=yes
112
113 echo
114 echo ---------------------------------------------
115 echo testing Fortran
116 echo ---------------------------------------------
117 echo
118
119 fortran_ok=no
120 AC_PROG_F77
121 AC_F77_LIBRARY_LDFLAGS
122 AC_PROG_FC
123 AC_FC_LIBRARY_LDFLAGS
124 if test "X$FC" != "X" ; then
125     fortran_ok=yes
126     F77=$FC
127 fi
128
129 dnl AM_CONDITIONAL( USE_GFORTRAN, [test "$F77" = "gfortran"])
130
131 echo
132
133 dnl Library libdl :
134 AC_CHECK_LIB(dl,dlopen)
135
136 dnl add library libm :
137 AC_CHECK_LIB(m,ceil)
138
139 dnl
140 dnl Well we use sstream which is not in gcc pre-2.95.3
141 dnl We must test if it exists. If not, add it in include !
142 dnl
143
144 AC_CXX_HAVE_SSTREAM
145
146 dnl
147 dnl ---------------------------------------------
148 dnl testing MPICH
149 dnl ---------------------------------------------
150 dnl
151
152 CHECK_MPICH
153
154 echo
155 echo ---------------------------------------------
156 echo testing LEX \& YACC
157 echo ---------------------------------------------
158 echo
159
160 lex_yacc_ok=no
161 AC_PROG_YACC
162 AC_PROG_LEX
163 lex_yacc_ok=yes
164
165 echo
166 echo ---------------------------------------------
167 echo testing python
168 echo ---------------------------------------------
169 echo
170
171 CHECK_PYTHON
172
173 dnl echo
174 dnl echo ---------------------------------------------
175 dnl echo testing java
176 dnl echo ---------------------------------------------
177 dnl echo
178
179 dnl CHECK_JAVA
180
181 echo
182 echo ---------------------------------------------
183 echo testing swig
184 echo ---------------------------------------------
185 echo
186
187 AM_PATH_PYTHON(2.3)
188 CHECK_SWIG
189
190 echo
191 echo ---------------------------------------------
192 echo testing threads
193 echo ---------------------------------------------
194 echo
195
196 ENABLE_PTHREADS
197
198 SMESH_WITH_GUI=yes
199
200 AM_CONDITIONAL(SMESH_ENABLE_GUI, [test "${SMESH_WITH_GUI}" = "yes"])
201
202 if test "${SMESH_WITH_GUI}" = "yes"; then
203
204 echo
205 echo ---------------------------------------------
206 echo testing msg2qm
207 echo ---------------------------------------------
208 echo
209
210 CHECK_MSG2QM
211
212 fi
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
254 if test "${SMESH_WITH_GUI}" = "yes"; then
255     echo
256     echo ---------------------------------------------
257     echo testing openGL
258     echo ---------------------------------------------
259     echo
260
261     CHECK_OPENGL
262
263     echo
264     echo ---------------------------------------------
265     echo testing QT
266     echo ---------------------------------------------
267     echo
268
269     CHECK_QT
270
271     echo
272     echo ---------------------------------------------
273     echo testing VTK
274     echo ---------------------------------------------
275     echo
276
277     CHECK_VTK
278
279     echo
280     echo ---------------------------------------------
281     echo Testing GUI
282     echo ---------------------------------------------
283     echo
284
285     CHECK_SALOME_GUI
286
287     echo
288     echo ---------------------------------------------
289     echo Testing full GUI
290     echo ---------------------------------------------
291     echo
292
293     CHECK_CORBA_IN_GUI
294     if test "x${CORBA_IN_GUI}" != "xyes"; then
295       echo "failed : For configure SMESH module necessary full GUI !"
296       exit
297     fi
298 fi
299
300 echo
301 echo ---------------------------------------------
302 echo testing HDF5
303 echo ---------------------------------------------
304 echo
305
306 CHECK_HDF5
307
308 echo
309 echo ---------------------------------------------
310 echo BOOST Library
311 echo ---------------------------------------------
312 echo
313
314 CHECK_BOOST
315
316 echo
317 echo ---------------------------------------------
318 echo Testing OpenCascade
319 echo ---------------------------------------------
320 echo
321
322 CHECK_CAS
323
324 if test "${SMESH_WITH_GUI}" = "yes"; then
325
326 echo
327 echo ---------------------------------------------
328 echo Testing qwt
329 echo ---------------------------------------------
330 echo
331
332 CHECK_QWT
333
334 fi
335
336 echo
337 echo ---------------------------------------------
338 echo Testing html generators
339 echo ---------------------------------------------
340 echo
341
342 CHECK_HTML_GENERATORS
343
344 echo
345 echo ---------------------------------------------
346 echo Testing Kernel
347 echo ---------------------------------------------
348 echo
349
350 CHECK_KERNEL
351
352 echo
353 echo ---------------------------------------------
354 echo Testing Geom
355 echo ---------------------------------------------
356 echo
357
358 CHECK_GEOM
359
360 echo
361 echo ---------------------------------------------
362 echo Testing Med
363 echo ---------------------------------------------
364 echo
365
366 CHECK_MED
367
368 CHECK_PLATFORM
369
370 echo
371 echo ---------------------------------------------
372 echo Summary
373 echo ---------------------------------------------
374 echo
375
376 echo Configure
377 if test "${SMESH_WITH_GUI}" = "yes"; then
378 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"
379 fi
380
381 if test "${SMESH_WITH_GUI}" = "no"; then
382 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"
383 fi
384
385 for var in $variables
386 do
387    printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
388    eval echo \$$var
389 done
390
391 echo
392 echo "Default ORB   : $DEFAULT_ORB"
393 echo
394
395 dnl We don t need to say when we re entering directories if we re using
396 dnl GNU make becuase make does it for us.
397 if test "X$GMAKE" = "Xyes"; then
398    AC_SUBST(SETX) SETX=":"
399 else
400    AC_SUBST(SETX) SETX="set -x"
401 fi
402
403 dnl AM_CONDITIONAL(GUI_ENABLE_CORBA, [test "$GUI_DISABLE_CORBA" = no])
404 dnl AM_CONDITIONAL(ENABLE_PYCONSOLE, [test "$DISABLE_PYCONSOLE" = no])
405 dnl AM_CONDITIONAL(ENABLE_GLVIEWER, [test "$DISABLE_GLVIEWER" = no])
406 dnl AM_CONDITIONAL(ENABLE_PLOT2DVIEWER, [test "$DISABLE_PLOT2DVIEWER" = no])
407 dnl AM_CONDITIONAL(ENABLE_SUPERVGRAPHVIEWER, [test "$DISABLE_SUPERVGRAPHVIEWER" = no])
408 dnl AM_CONDITIONAL(ENABLE_OCCVIEWER, [test "$DISABLE_OCCVIEWER" = no])
409 dnl AM_CONDITIONAL(ENABLE_VTKVIEWER, [test "$DISABLE_VTKVIEWER" = no])
410 dnl AM_CONDITIONAL(ENABLE_SALOMEOBJECT, [test "$DISABLE_SALOMEOBJECT" = no])
411
412 echo
413 echo ---------------------------------------------
414 echo copying resource files, shell scripts, and
415 echo xml files
416 echo ---------------------------------------------
417 echo
418
419
420 dnl copy shells and utilities contained in the bin directory
421 dnl excluding .in files (treated in AC-OUTPUT below) and CVS
422 dnl directory
423
424 mkdir -p bin/salome
425 cd bin/salome
426
427 for i in $ROOT_SRCDIR/bin/*
428 do
429   local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
430   case "$local_bin" in
431         *.in | *~)                    ;;
432         ./bin/CVS | ./bin/salome)                    ;;
433         *) $INSTALL $i . ; echo $local_bin ;;
434   esac
435 done
436 cd $ROOT_BUILDDIR
437
438 echo
439 echo ---------------------------------------------
440 echo generating Makefiles and configure files
441 echo ---------------------------------------------
442 echo
443
444 AC_OUTPUT_COMMANDS([ \
445   chmod +x ./bin/*; \
446   chmod +x ./bin/salome/*; \
447 ])
448
449 # This list is initiated using autoscan and must be updated manually
450 # when adding a new file <filename>.in to manage. When you execute
451 # autoscan, the Makefile list is generated in the output file configure.scan.
452 # This could be helpfull to update de configuration.
453 AC_OUTPUT([ \
454   ./salome_adm/unix/SALOMEconfig.h \
455   ./adm_local/Makefile \
456   ./adm_local/unix/Makefile \
457   ./adm_local/unix/config_files/Makefile \
458   ./bin/VERSION \
459   ./bin/Makefile \
460   ./SMESH_version.h \
461   ./doc/Makefile \
462   ./doc/salome/Makefile \
463   ./doc/salome/gui/Makefile \
464   ./doc/salome/gui/SMESH/doxyfile \
465   ./doc/salome/gui/SMESH/doxyfile_py \
466   ./doc/salome/tui/Makefile \
467   ./doc/salome/tui/SMESH/doxyfile \
468   ./doc/salome/tui/SMESH/sources/static/tree.js \
469   ./src/Makefile \
470   ./src/Controls/Makefile \
471   ./src/Driver/Makefile \
472   ./src/DriverDAT/Makefile \
473   ./src/DriverMED/Makefile \
474   ./src/DriverSTL/Makefile \
475   ./src/DriverUNV/Makefile \
476   ./src/MEFISTO2/Makefile \
477   ./src/OBJECT/Makefile \
478   ./src/SMDS/Makefile \
479   ./src/SMESH/Makefile \
480   ./src/SMESHClient/Makefile \
481   ./src/SMESHDS/Makefile \
482   ./src/SMESHFiltersSelection/Makefile \
483   ./src/SMESHGUI/Makefile \
484   ./src/SMESH_I/Makefile \
485   ./src/SMESH_SWIG/Makefile \
486   ./src/SMESH_SWIG_WITHIHM/Makefile \
487   ./src/StdMeshers/Makefile \
488   ./src/StdMeshersGUI/Makefile \
489   ./src/StdMeshers_I/Makefile \
490   ./resources/Makefile \
491   ./resources/SMESHCatalog.xml \
492   ./idl/Makefile \
493   Makefile
494 ])