Salome HOME
GEOM porting to CMake
[modules/geom.git] / configure.ac
1 # Copyright (C) 2007-2013  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 GEOM module], [7.2.0], [webmaster.salome@opencascade.com], [SalomeGEOM])
28 AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
29 AC_CANONICAL_HOST
30 AC_CANONICAL_TARGET
31 AM_INIT_AUTOMAKE([tar-pax -Wno-portability])
32
33
34 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
35 AC_SUBST(XVERSION)
36 VERSION_DEV=0
37 AC_SUBST(VERSION_DEV)
38
39 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
40 MODULE_NAME=geom
41 AC_SUBST(MODULE_NAME)
42
43 echo
44 echo ---------------------------------------------
45 echo Initialize source and build root directories
46 echo ---------------------------------------------
47 echo
48
49 dnl
50 dnl Initialize source and build root directories
51 dnl
52
53 ROOT_BUILDDIR=`pwd`
54 ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
55 cd $ROOT_SRCDIR
56 ROOT_SRCDIR=`pwd`
57 cd $ROOT_BUILDDIR
58
59 AC_SUBST(ROOT_SRCDIR)
60 AC_SUBST(ROOT_BUILDDIR)
61
62 echo
63 echo Source root directory : $ROOT_SRCDIR
64 echo Build  root directory : $ROOT_BUILDDIR
65 echo
66 echo
67
68 if test -z "$AR"; then
69    AC_CHECK_PROGS(AR,ar xar,:,$PATH)
70 fi
71 AC_SUBST(AR)
72
73 dnl Export the AR macro so that it will be placed in the libtool file
74 dnl correctly.
75 export AR
76
77 echo
78 echo ---------------------------------------------
79 echo testing make
80 echo ---------------------------------------------
81 echo
82
83 AC_PROG_MAKE_SET
84 AC_PROG_INSTALL
85 AC_LOCAL_INSTALL
86 dnl
87 dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
88
89 echo
90 echo ---------------------------------------------
91 echo Configuring production
92 echo ---------------------------------------------
93 echo
94 AC_ENABLE_DEBUG(yes)
95 AC_DISABLE_PRODUCTION
96
97 echo ---------------------------------------------
98 echo testing libtool
99 echo ---------------------------------------------
100
101 dnl first, we set static to no!
102 dnl if we want it, use --enable-static
103 AC_ENABLE_STATIC(no)
104
105 AC_LIBTOOL_DLOPEN
106 AC_PROG_LIBTOOL
107
108 dnl Fix up the INSTALL macro if it s a relative path. We want the
109 dnl full-path to the binary instead.
110 case "$INSTALL" in
111    *install-sh*)
112       INSTALL='\${ROOT_BUILDDIR}'/adm_local/unix/config_files/install-sh
113       ;;
114 esac
115
116 echo
117 echo ---------------------------------------------
118 echo testing C/C++
119 echo ---------------------------------------------
120 echo
121
122 cc_ok=no
123 dnl inutil car libtool
124 dnl AC_PROG_CC
125 AC_PROG_CXX
126 AC_CXX_WARNINGS
127 AC_CXX_TEMPLATE_OPTIONS
128 AC_DEPEND_FLAG
129 # AC_CC_WARNINGS([ansi])
130 cc_ok=yes
131
132 dnl Library libdl :
133 AC_CHECK_LIB(dl,dlopen)
134
135 dnl add library libm :
136 AC_CHECK_LIB(m,ceil)
137
138 dnl
139 dnl Well we use sstream which is not in gcc pre-2.95.3
140 dnl We must test if it exists. If not, add it in include !
141 dnl
142
143 AC_CXX_HAVE_SSTREAM
144
145 dnl
146 dnl ---------------------------------------------
147 dnl testing MPICH
148 dnl ---------------------------------------------
149 dnl
150
151 dnl CHECK_MPICH
152
153 echo
154 echo ---------------------------------------------
155 echo testing MPI
156 echo ---------------------------------------------
157 echo
158
159 CHECK_MPI
160
161 echo
162 echo ---------------------------------------------
163 echo testing LEX \& YACC
164 echo ---------------------------------------------
165 echo
166
167 lex_yacc_ok=no
168 AC_PROG_YACC
169 AC_PROG_LEX
170 lex_yacc_ok=yes
171
172 echo
173 echo ---------------------------------------------
174 echo testing python
175 echo ---------------------------------------------
176 echo
177
178 CHECK_PYTHON
179
180 dnl echo
181 dnl echo ---------------------------------------------
182 dnl echo testing java
183 dnl echo ---------------------------------------------
184 dnl echo
185
186 dnl CHECK_JAVA
187
188 echo
189 echo ---------------------------------------------
190 echo testing swig
191 echo ---------------------------------------------
192 echo
193
194 AM_PATH_PYTHON(2.3)
195 CHECK_SWIG
196
197 echo
198 echo ---------------------------------------------
199 echo testing threads
200 echo ---------------------------------------------
201 echo
202
203 ENABLE_PTHREADS
204
205 if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
206 echo
207 echo ---------------------------------------------
208 echo testing omniORB
209 echo ---------------------------------------------
210 echo
211
212 CHECK_OMNIORB
213
214 dnl echo
215 dnl echo ---------------------------------------------
216 dnl echo testing mico
217 dnl echo ---------------------------------------------
218 dnl echo
219
220 dnl CHECK_MICO
221
222 echo
223 echo ---------------------------------------------
224 echo default ORB : omniORB
225 echo ---------------------------------------------
226 echo
227
228 DEFAULT_ORB=omniORB
229
230 echo
231 echo ---------------------------------------------
232 echo testing Corba
233 echo ---------------------------------------------
234 echo
235
236 CHECK_CORBA
237
238 AC_SUBST_FILE(CORBA)
239 corba=make_$ORB
240 CORBA=adm_local/unix/$corba
241
242 fi
243
244 echo
245 echo ---------------------------------------------
246 echo Testing GUI
247 echo ---------------------------------------------
248 echo
249
250 CHECK_GUI_MODULE
251
252 gui_ok=no
253 if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
254   gui_ok=yes
255 fi
256
257 AM_CONDITIONAL(GEOM_ENABLE_GUI, [test "${gui_ok}" = "yes"])
258
259 if test "${SalomeGUI_need}" == "yes"; then
260   if test "${FullGUI_ok}" != "yes"; then
261     AC_MSG_WARN(For configure GEOM module necessary full GUI!)
262   fi
263 elif test "${SalomeGUI_need}" == "auto"; then
264   if test "${FullGUI_ok}" != "yes"; then
265     AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
266   fi
267 elif test "${SalomeGUI_need}" == "no"; then
268   echo Build without GUI option has been chosen
269 fi
270
271 if test "${gui_ok}" = "yes"; then
272     echo
273     echo ---------------------------------------------
274     echo testing openGL
275     echo ---------------------------------------------
276     echo
277
278     CHECK_OPENGL
279
280     echo
281     echo ---------------------------------------------
282     echo testing QT
283     echo ---------------------------------------------
284     echo
285
286     CHECK_QT
287 fi
288
289 echo
290 echo ---------------------------------------------
291 echo testing VTK
292 echo ---------------------------------------------
293 echo
294
295 CHECK_VTK
296
297 echo
298 echo ---------------------------------------------
299 echo testing HDF5
300 echo ---------------------------------------------
301 echo
302
303 CHECK_HDF5
304
305 echo
306 echo ---------------------------------------------
307 echo BOOST Library
308 echo ---------------------------------------------
309 echo
310
311 CHECK_BOOST
312
313 echo
314 echo ---------------------------------------------
315 echo Testing OpenCascade
316 echo ---------------------------------------------
317 echo
318
319 CHECK_CAS
320
321 echo
322 echo ---------------------------------------------
323 echo Testing html generators
324 echo ---------------------------------------------
325 echo
326
327 CHECK_HTML_GENERATORS
328
329 echo
330 echo ---------------------------------------------
331 echo testing sphinx
332 echo ---------------------------------------------
333 echo
334 CHECK_SPHINX
335
336 echo
337 echo ---------------------------------------------
338 echo testing Opencv
339 echo ---------------------------------------------
340 echo
341 CHECK_OPENCV
342 if test "${opencv_ok}" = "yes"; then
343   AC_DEFINE_UNQUOTED(WITH_OPENCV,${WITH_OPENCV})
344 fi
345
346
347 echo
348 echo ---------------------------------------------
349 echo Testing Kernel
350 echo ---------------------------------------------
351 echo
352
353 CHECK_KERNEL
354
355 echo
356 echo ---------------------------------------------
357 echo Summary
358 echo ---------------------------------------------
359 echo
360
361 if test "${SalomeGUI_need}" == "no"; then
362   echo "* Configuration options (without GUI):"
363 else
364   echo "* Configuration options:"
365 fi
366 echo
367
368 obligatory_vars="cc_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok sphinx_ok Kernel_ok"
369 optional_vars="opencv_ok"
370 gui_vars="OpenGL_ok qt_ok gui_ok"
371
372 ###
373 # mandatory products
374 ###
375
376 echo "--- Mandatory products:"
377
378 missing_obligatory=no
379 for var in $obligatory_vars
380 do
381   eval toto=\$$var
382   if test x$toto == "x"; then toto="no" ; fi
383   if test x$toto == "xno"; then missing_obligatory=yes ; fi
384     printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
385     eval echo \$$var
386   #fi
387 done
388 if test x$missing_obligatory == "xyes"; then 
389   AC_MSG_ERROR([one or more obligatory product is missing])
390 fi
391
392 ###
393 # gui products
394 ###
395
396 if test "${SalomeGUI_need}" == "yes"; then
397   # SALOME GUI is mandatory
398   if test "${gui_ok}" != "yes"; then
399     AC_MSG_ERROR([SALOME GUI is missing])
400   fi
401 fi
402
403 if test "${SalomeGUI_need}" != "no"; then
404   echo "--- GUI products (optional):"
405   
406   for var in $gui_vars
407   do
408     eval toto=\$$var
409     if test x$toto == "x"; then toto="no"; fi
410     printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
411     eval echo \$toto
412   done
413 fi
414
415 ###
416 # optional products
417 ###
418
419 echo "--- Other products (optional):"
420
421 for var in $optional_vars
422 do
423    eval toto=\$$var
424    if test x$toto != "x"; then
425      printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
426      eval echo \$$var
427    fi
428 done
429
430 echo
431 echo "* Default ORB : $DEFAULT_ORB"
432 echo
433
434 dnl We don t need to say when we re entering directories if we re using
435 dnl GNU make because make does it for us.
436 if test "X$GMAKE" = "Xyes"; then
437    AC_SUBST(SETX) SETX=":"
438 else
439    AC_SUBST(SETX) SETX="set -x"
440 fi
441
442 echo
443 echo ---------------------------------------------
444 echo generating Makefiles and configure files
445 echo ---------------------------------------------
446 echo
447
448 #AC_OUTPUT_COMMANDS([ \
449 #  chmod +x ./bin/*; \
450 #])
451
452 AC_HACK_LIBTOOL
453 AC_CONFIG_COMMANDS([hack_libtool],[
454 sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
455   $(pwd)/hack_libtool \1 \"\$[@]\" \n\
456 }\n\
457 CC=\"hack_libtool\"%g" libtool
458 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
459 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
460 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
461 ],[])
462
463 # This list is initiated using autoscan and must be updated manually
464 # when adding a new file <filename>.in to manage. When you execute
465 # autoscan, the Makefile list is generated in the output file configure.scan.
466 # This could be helpfull to update de configuration.
467 AC_OUTPUT([ \
468   adm_local/Makefile \
469   adm_local/cmake_files/Makefile \
470   adm_local/unix/Makefile \
471   adm_local/unix/config_files/Makefile \
472   bin/VERSION \
473   bin/Makefile \
474   GEOM_version.h \
475   doc/Makefile \
476   doc/docutils/Makefile \
477   doc/docutils/conf.py \
478   doc/salome/Makefile \
479   doc/salome/examples/Makefile \
480   doc/salome/gui/Makefile \
481   doc/salome/gui/GEOM/Makefile \
482   doc/salome/gui/GEOM/doxyfile \
483   doc/salome/gui/GEOM/doxyfile_py \
484   doc/salome/gui/GEOM/doxyfile_tui \
485   doc/salome/gui/GEOM/static/header.html \
486   doc/salome/gui/GEOM/static/header_py.html \
487   doc/salome/tui/Makefile \
488   doc/salome/tui/doxyfile \
489   doc/salome/tui/static/header.html \
490   src/Makefile \
491   src/AdvancedGUI/Makefile \
492   src/AdvancedEngine/Makefile \
493   src/ARCHIMEDE/Makefile \
494   src/BREPExport/Makefile \
495   src/BREPImport/Makefile \
496   src/BasicGUI/Makefile \
497   src/BlocksGUI/Makefile \
498   src/BooleanGUI/Makefile \
499   src/BuildGUI/Makefile \
500   src/DisplayGUI/Makefile \
501   src/DlgRef/Makefile \
502   src/EntityGUI/Makefile \
503   src/GEOM/Makefile \
504   src/BlockFix/Makefile \
505   src/GEOMAlgo/Makefile \
506   src/GEOMBase/Makefile \
507   src/GEOMClient/Makefile \
508   src/GEOMFiltersSelection/Makefile \
509   src/Material/Makefile \
510   src/GEOMGUI/Makefile \
511   src/GEOMUtils/Makefile \
512   src/GEOMImpl/Makefile \
513   src/GEOMToolsGUI/Makefile \
514   src/GEOM_I/Makefile \
515   src/GEOM_I_Superv/Makefile \
516   src/GEOM_SWIG/Makefile \
517   src/GEOM_SWIG_WITHIHM/Makefile \
518   src/GEOM_PY/Makefile \
519   src/GEOM_PY/structelem/Makefile \
520   src/GenerationGUI/Makefile \
521   src/GroupGUI/Makefile \
522   src/IGESExport/Makefile \
523   src/IGESImport/Makefile \
524   src/MeasureGUI/Makefile \
525   src/NMTDS/Makefile \
526   src/NMTTools/Makefile \
527   src/OBJECT/Makefile \
528   src/OCC2VTK/Makefile \
529   src/OperationGUI/Makefile \
530   src/PrimitiveGUI/Makefile \
531   src/RepairGUI/Makefile \
532   src/SKETCHER/Makefile \
533   src/STEPExport/Makefile \
534   src/STEPImport/Makefile \
535   src/STLExport/Makefile \
536   src/ShHealOper/Makefile \
537   src/ShapeRecognition/Makefile \
538   src/TransformationGUI/Makefile \
539   src/VTKExport/Makefile \
540   resources/Makefile \
541   resources/GEOMCatalog.xml \
542   resources/SalomeApp.xml \
543   resources/Plugin \
544   idl/Makefile \
545   Makefile \
546 ])