Salome HOME
8e2100f5e95207d560f22a6c6884ee59139a0e28
[modules/med.git] / configure.ac
1 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22 # Author : Marc Tajchman (CEA)
23 # Date : 28/06/2001
24 # Modified by : Patrick GOLDBRONN (CEA)
25 # Modified by : Marc Tajchman (CEA)
26 # Modified by : Mikhail PONIKAROV (OCN)
27 #
28 AC_INIT([Salome2 Project MED module], [5.1.0], [webmaster.salome@opencascade.com], [SalomeMED])
29 AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
30 AC_CANONICAL_HOST
31 AC_CANONICAL_TARGET
32 AM_INIT_AUTOMAKE([tar-pax])
33
34 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
35 AC_SUBST(XVERSION)
36
37 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
38 MODULE_NAME=med
39 AC_SUBST(MODULE_NAME)
40
41 dnl
42 dnl Initialize source and build root directories
43 dnl
44 ROOT_BUILDDIR=`pwd`
45 ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
46 cd $ROOT_SRCDIR
47 ROOT_SRCDIR=`pwd`
48 cd $ROOT_BUILDDIR
49
50 AC_SUBST(ROOT_SRCDIR)
51 AC_SUBST(ROOT_BUILDDIR)
52
53 echo
54 echo Source root directory : $ROOT_SRCDIR
55 echo Build  root directory : $ROOT_BUILDDIR
56 echo
57 echo
58
59 dnl remember MED_WITH_KERNEL set by build configure
60 MED_WITH_KERNEL=yes
61 MED_WITH_GUI=yes
62 old_with_kernel=${MED_WITH_KERNEL}
63
64 dnl
65 dnl Check --with-kernel option
66 echo
67 dnl  ---------------------------------------------
68                  WITH_KERNEL
69 dnl  ---------------------------------------------
70 dnl
71
72 dnl   Update and re-run configure if there was  build_configure --without-kernel
73 dnl   but configure --with-kernel=DIR is being called
74
75 if test "x${old_with_kernel}" != "x${MED_WITH_KERNEL}"; then
76     if test "x${old_with_kernel}" = "xno" ; then
77          if test ! -d "${KERNEL_ROOT_DIR}"; then
78              echo "failed : KERNEL_ROOT_DIR variable is not correct !"
79              exit
80          fi
81          kernel_check_in_aclocal=`grep KERNEL_ROOT_DIR ${ROOT_SRCDIR}/aclocal.m4`
82          if test "x${kernel_check_in_aclocal}" = "x"; then
83              echo "Configuration changed: without KERNEL -> with KERNEL"
84              echo -n "Updating 'configure' script ...  "
85              cd $ROOT_SRCDIR
86              if build_configure --with-kernel={MED_WITH_KERNEL} --with-gui={MED_WITH_GUI}; then
87                echo "... done"
88              else
89                echo "... failed"
90                cd $ROOT_BUILDDIR
91                exit 1
92              fi
93              cd $ROOT_BUILDDIR
94              $0 $*
95              exit
96          fi
97     fi
98 fi
99
100 AM_CONDITIONAL(MED_ENABLE_KERNEL, [test "$MED_WITH_KERNEL" = yes])
101 AM_CONDITIONAL(MED_ENABLE_GUI, [test "$MED_WITH_GUI" = yes])
102
103 dnl Modification B. Secher portage sur osf CCRT
104 AC_CHECK_PROG(SHELL,sh,,)
105 AC_SUBST(SHELL)
106
107 if test -z "$AR"; then
108    AC_CHECK_PROGS(AR,ar xar,:,$PATH)
109 fi
110 AC_SUBST(AR)
111
112 dnl Export the AR macro so that it will be placed in the libtool file
113 dnl correctly.
114 export AR
115
116 echo
117 echo ---------------------------------------------
118 echo testing make
119 echo ---------------------------------------------
120 echo
121
122 AC_PROG_MAKE_SET
123 AC_PROG_INSTALL
124 dnl 
125 dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
126
127 AC_ENABLE_DEBUG(yes)
128 AC_DISABLE_PRODUCTION
129
130 echo ---------------------------------------------
131 echo testing libtool
132 echo ---------------------------------------------
133
134 dnl first, we set static to no!
135 dnl if we want it, use --enable-static
136 AC_ENABLE_STATIC(no)
137
138 AC_LIBTOOL_DLOPEN
139 AC_PROG_LIBTOOL
140
141 dnl Fix up the INSTALL macro if it s a relative path. We want the
142 dnl full-path to the binary instead.
143 case "$INSTALL" in
144    *install-sh*)
145       INSTALL='\${ROOT_BUILDDIR}'/salome_adm/unix/config_files/install-sh
146       ;;
147 esac
148
149 echo
150 echo ---------------------------------------------
151 echo testing C/C++
152 echo ---------------------------------------------
153 echo
154
155 cc_ok=no
156 dnl inutil car libtool
157 dnl AC_PROG_CC
158 AC_PROG_CXX
159 AC_CXX_WARNINGS
160 AC_CXX_TEMPLATE_OPTIONS
161 AC_DEPEND_FLAG
162 # AC_CC_WARNINGS([ansi])
163 cc_ok=yes
164
165 dnl Library libdl :
166 AC_CHECK_LIB(dl,dlopen)
167
168 dnl Library librt : for alpha/osf
169 AC_CHECK_LIB(rt,nanosleep)
170
171 dnl add library libm :
172 AC_CHECK_LIB(m,ceil)
173
174 dnl 
175 dnl Check if we use std iostream by default or if we must add
176 dnl a compiler directive for that
177 dnl
178
179 AC_CXX_USE_STD_IOSTREAM
180
181 dnl 
182 dnl Well we use sstream which is not in gcc pre-2.95.3
183 dnl We must test if it exists. If not, add it in include !
184 dnl
185
186 AC_CXX_HAVE_SSTREAM
187 AM_CONDITIONAL(MED_ENABLE_SSTREAM, [test "$HAVE_SSTREAM" = yes])
188
189 dnl
190 dnl ---------------------------------------------
191 dnl testing linker
192 dnl ---------------------------------------------
193 dnl
194
195 AC_LINKER_OPTIONS
196
197 echo
198 echo ---------------------------------------------
199 echo testing threads
200 echo ---------------------------------------------
201 echo
202
203 ENABLE_PTHREADS
204
205 echo
206 echo ---------------------------------------------
207 echo testing python
208 echo ---------------------------------------------
209 echo
210
211 CHECK_PYTHON
212
213 echo
214 echo ---------------------------------------------
215 echo testing swig
216 echo ---------------------------------------------
217 echo
218
219 AM_PATH_PYTHON(2.3)
220 CHECK_SWIG
221 AM_CONDITIONAL(MED_SWIG_1_3_21, [test "$SWIG_VERSION" = 1.3.21])
222
223 echo
224 echo ---------------------------------------------
225 echo testing HDF5
226 echo ---------------------------------------------
227 echo
228
229 CHECK_HDF5
230
231 echo
232 echo ---------------------------------------------
233 echo BOOST Library
234 echo ---------------------------------------------
235 echo
236
237 CHECK_BOOST
238
239 echo
240 echo ---------------------------------------------
241 echo testing MED2
242 echo ---------------------------------------------
243 echo
244
245 CHECK_MED2
246
247 echo
248 echo ---------------------------------------------
249 echo "MED_WITH_KERNEL: ${MED_WITH_KERNEL}"
250 echo "MED_WITH_GUI   : ${MED_WITH_GUI}"
251 echo ---------------------------------------------
252
253 openpbs_ok=no
254 # CHECK_OPENPBS ONLY if MED_WITH_KERNEL is yes
255
256 lsf_ok=no
257 # CHECK_LSF ONLY if MED_WITH_KERNEL is yes
258
259 echo
260 echo ----------------------------------------------
261 echo testing CPPUNIT only required for unit testing
262 echo ----------------------------------------------
263 echo
264
265 CHECK_CPPUNIT
266
267 echo
268 echo ---------------------------------------------
269 echo checking SPLITTER
270 echo ---------------------------------------------
271 echo
272
273 AC_ENABLE_SPLITTER(yes)
274 AM_CONDITIONAL(MED_ENABLE_SPLITTER, [test "$ENABLE_SPLITTER" = yes])
275
276 if test "x$ENABLE_SPLITTER" = "xyes"; then
277
278     echo  
279     echo --------------------------------------------- 
280     echo testing METIS 
281     echo ---------------------------------------------
282     echo 
283     metis_ok=no 
284     CHECK_METIS dnl metis_ok is set to yes by CHECK_METIS
285     
286
287     echo  
288     echo --------------------------------------------- 
289     echo testing SCOTCH 
290     echo ---------------------------------------------
291     echo scotch_ok=no 
292     CHECK_SCOTCH 
293     dnl scotch_ok is set to yes by CHECK_SCOTCH  
294
295
296     echo        
297     echo --------------------------------------------- 
298     echo testing LIBXML2
299     echo ---------------------------------------------
300     echo libxml_ok=no 
301     CHECK_LIBXML 
302     dnl libxml_ok is set to yes by CHECK_LIBXML         
303
304 fi
305
306 AM_CONDITIONAL(MED_ENABLE_METIS, [test "$ENABLE_METIS" = yes])
307 AM_CONDITIONAL(MED_ENABLE_SCOTCH, [test "$ENABLE_SCOTCH" = yes])
308
309 dnl
310 dnl ---------------------------------------------
311 dnl testing MPI
312 dnl ---------------------------------------------
313 dnl
314
315 CHECK_MPI
316 #CHECK_MPICH
317 AM_CONDITIONAL(MED_WITHMPI, [test "$WITHMPI" = yes])
318
319 echo
320 echo ---------------------------------------------
321 echo Testing FVM library generators
322 echo ---------------------------------------------
323 echo
324
325 CHECK_FVM
326 AM_CONDITIONAL(MED_ENABLE_FVM, [test "$ENABLE_FVM" = yes])
327
328 echo
329 echo ---------------------------------------------
330 echo Testing html generators
331 echo ---------------------------------------------
332 echo
333
334 CHECK_HTML_GENERATORS
335
336 if test "${MED_WITH_KERNEL}" = "yes"; then
337 {
338         echo
339         echo ---------------------------------------------
340         echo testing OpenPBS
341         echo ---------------------------------------------
342         echo
343
344         CHECK_OPENPBS
345
346         echo
347         echo ---------------------------------------------
348         echo testing LSF
349         echo ---------------------------------------------
350         echo
351
352         CHECK_LSF
353
354         dnl
355         dnl ---------------------------------------------
356         dnl testing sockets
357         dnl ---------------------------------------------
358         dnl
359
360         CHECK_SOCKETS
361
362         dnl
363         dnl ---------------------------------------------
364         dnl testing Batch
365         dnl ---------------------------------------------
366         dnl
367
368         WITH_BATCH=no
369         test x$openpbs_ok = xyes || test x$lsf_ok = xyes && WITH_BATCH=yes
370         AC_SUBST(WITH_BATCH)
371
372         if test "${MED_WITH_GUI}" = "yes"; then
373                 echo
374                 echo ---------------------------------------------
375                 echo testing LEX \& YACC
376                 echo ---------------------------------------------
377                 echo
378
379                 lex_yacc_ok=no
380                 AC_PROG_YACC
381                 AC_PROG_LEX
382                 lex_yacc_ok=yes
383         fi
384
385         echo
386         echo ---------------------------------------------
387         echo testing omniORB
388         echo ---------------------------------------------
389         echo
390
391         CHECK_OMNIORB
392
393         echo
394         echo ---------------------------------------------
395         echo default ORB : omniORB
396         echo ---------------------------------------------
397         echo
398
399         DEFAULT_ORB=omniORB
400         CHECK_CORBA
401
402         AC_SUBST_FILE(CORBA)
403         corba=make_$ORB
404         CORBA=adm_local/unix/$corba
405
406         if test "${MED_WITH_GUI}" = "yes"; then
407
408                 echo
409                 echo ---------------------------------------------
410                 echo testing openGL
411                 echo ---------------------------------------------
412                 echo
413
414                 CHECK_OPENGL
415
416                 echo
417                 echo ---------------------------------------------
418                 echo testing QT
419                 echo ---------------------------------------------
420                 echo
421
422                 CHECK_QT
423
424                 echo
425                 echo ---------------------------------------------
426                 echo testing VTK
427                 echo ---------------------------------------------
428                 echo
429
430                 CHECK_VTK
431
432                 echo
433                 echo ---------------------------------------------
434                 echo Testing OpenCascade
435                 echo ---------------------------------------------
436                 echo
437
438                 CHECK_CAS
439         fi
440
441         echo
442         echo ---------------------------------------------
443         echo Testing Kernel
444         echo ---------------------------------------------
445         echo
446
447         CHECK_KERNEL
448
449         dnl echo
450         dnl echo ---------------------------------------------
451         dnl echo testing mico
452         dnl echo ---------------------------------------------
453         dnl echo
454
455         dnl CHECK_MICO
456 }
457 else
458 {
459         WITHIHM="no"
460         WITHOPENPBS="no"
461         
462         AC_SUBST(WITHIHM)
463         AC_SUBST(WITHOPENPBS)
464 }
465 fi # MED_WITH_KERNEL
466
467 if test "${MED_WITH_GUI}" = "yes"; then
468 {
469     echo
470     echo ---------------------------------------------
471     echo Testing GUI
472     echo ---------------------------------------------
473     echo
474
475     CHECK_SALOME_GUI
476
477     echo
478     echo ---------------------------------------------
479     echo Testing full GUI
480     echo ---------------------------------------------
481     echo
482
483     CHECK_CORBA_IN_GUI
484     if test "x${CORBA_IN_GUI}" != "xyes"; then
485       echo "failed : For configure MED module necessary full GUI !"
486       exit
487     fi
488 }
489 fi # MED_WITH_GUI
490
491 echo
492 echo ---------------------------------------------
493 echo Summary
494 echo ---------------------------------------------
495 echo
496
497 if test "$MED_WITH_KERNEL" = "no"; then 
498    echo "Configure (without Kernel)"
499 else
500    echo Configure
501 fi
502
503 if test "${MED_WITH_GUI}" = "yes"; then
504   variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok med2_ok omniORB_ok sip_ok pyqt_ok qwt_ok occ_ok doxygen_ok Kernel_ok SalomeGUI_ok"
505 else
506   variables="cc_ok python_ok swig_ok threads_ok hdf5_ok med2_ok omniORB_ok doxygen_ok Kernel_ok"
507 fi
508
509 if test "x$ENABLE_SPLITTER" = "xyes"; then
510   variables="$variables metis_ok scotch_ok libxml_ok"
511 fi
512
513 for var in $variables
514 do
515    eval toto=\$$var
516    if test x$toto != "x"; then
517      printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
518      eval echo \$$var
519    fi
520 done
521
522 dnl optional variables 
523
524 echo "---Optional:"
525
526 variables="mpi_ok fvm_ok cppunit_ok"
527 if test "${MED_WITH_KERNEL}" = "yes"; then
528    variables="$variables openpbs_ok lsf_ok graphviz_ok"
529 fi
530
531 for var in $variables
532 do
533    eval toto=\$$var
534    if test x$toto != "x"; then
535      printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
536      eval echo \$$var
537    fi
538 done
539
540 echo
541 echo "Default ORB   : $DEFAULT_ORB"
542 echo
543
544 dnl We don t need to say when we re entering directories if we re using
545 dnl GNU make becuase make does it for us.
546 if test "X$GMAKE" = "Xyes"; then
547    AC_SUBST(SETX) SETX=":"
548 else
549    AC_SUBST(SETX) SETX="set -x"
550 fi
551
552 if test -n "${NO_MED_TRACE+X}"; then
553     CPPFLAGS="${CPPFLAGS} -D_NO_MED_TRACE_"
554 fi
555
556 echo
557 echo ---------------------------------------------
558 echo generating Makefiles and configure files
559 echo ---------------------------------------------
560 echo
561
562 AC_OUTPUT_COMMANDS([ \
563         chmod +x ./bin/* \
564 ])
565
566 AC_OUTPUT([ \
567         ./salome_adm/unix/SALOMEconfig.h \
568         ./adm_local_without_kernel/unix/SALOMEconfig.h \
569         Makefile \
570         ./MED_version.h \
571         ./adm_local/unix/config_files/Makefile \
572         ./adm_local/unix/Makefile \
573         ./adm_local/cmake_files/Makefile \
574         ./adm_local/Makefile \
575         ./adm_local_without_kernel/unix/config_files/Makefile \
576         ./adm_local_without_kernel/unix/Makefile \
577         ./adm_local_without_kernel/Makefile \
578         ./resources/Makefile
579         ./resources/MEDCatalog.xml \
580         ./bin/Makefile \
581         ./bin/VERSION \
582         ./idl/Makefile \
583         ./src/Makefile \
584         ./src/MEDWrapper/Makefile \
585         ./src/MEDWrapper/Base/Makefile \
586         ./src/MEDWrapper/Factory/Makefile \
587         ./src/MEDWrapper/V2_1/Makefile \
588         ./src/MEDWrapper/V2_1/Core/Makefile \
589         ./src/MEDWrapper/V2_1/Wrapper/Makefile \
590         ./src/MEDWrapper/V2_2/Makefile \
591         ./src/MEDMEM/Doxyfile_med_devel \
592         ./src/MEDMEM/Doxyfile_med_user \
593         ./src/MEDMEM/Makefile \
594         ./src/INTERPOLATION/Makefile \
595         ./src/MEDMEM_SWIG/Makefile \
596         ./src/MEDMEMBinTest/Makefile \
597         ./src/MEDMEMCppTest/Makefile \
598         ./src/INTERP_KERNEL/Makefile \
599         ./src/INTERP_KERNEL/Bases/Makefile \
600         ./src/INTERP_KERNEL/Geometric2D/Makefile \
601         ./src/INTERP_KERNELTest/Makefile \
602         ./src/MEDCoupling/Makefile \
603         ./src/MEDCoupling/Test/Makefile \
604         ./src/MEDSPLITTER/Makefile \
605         ./src/MEDSPLITTER/Test/Makefile \
606         ./src/MEDSPLITTER_Swig/Makefile \
607         ./src/MULTIPR/Makefile \
608         ./src/ParaMEDMEM/Makefile \
609         ./src/ParaMEDMEM/MEDLoader/Makefile \
610         ./src/ParaMEDMEM/Test/Makefile \
611         ./src/ParaMEDMEM_Swig/Makefile \
612         ./src/MEDMEM_I/Makefile \
613         ./src/MED/Makefile \
614         ./src/MedCorba_Swig/Makefile \
615         ./src/MED_SWIG/Makefile \
616         ./src/MedClient/Makefile \
617         ./src/MedClient/src/Makefile \
618         ./src/MedClient/test/Makefile \
619         ./src/MedClient/test/environ/Makefile \
620         ./src/MedClient/test/environ/runContainer \
621         ./src/MedClient/test/environ/runEnvironTests \
622         ./src/MedClient/test/environ/runTestMedCorba \
623         ./src/MedClient/test/environ/stopContainer \
624         ./src/MedClient/test/environ/csh/init1 \
625         ./src/MedClient/test/environ/csh/init2 \
626         ./src/MedClient/test/environ/csh/init3 \
627         ./src/MedClient/test/environ/csh/Makefile \
628         ./src/MedClient/test/environ/csh/runContainer \
629         ./src/MedClient/test/environ/csh/runEnvironTests \
630         ./src/MedClient/test/environ/csh/stopContainer \
631         ./src/MedClient/test/test1/Makefile \
632         ./src/MedClient/test/test2/Makefile \
633         ./src/MEDGUI/Makefile \
634         ./doc/Makefile \
635         ./doc/MEDMEM/Makefile \
636         ./doc/MEDMEM/MEDMEM_Content.tex \
637         ./doc/MEDMEM/MEDMEM_UML_light.png \
638         ./doc/MEDMEM/MEDMEM_UML.png \
639         ./doc/MEDMEM/MEDMEM_UsersGuide.tex \
640         ./doc/salome/Makefile \
641         ./doc/salome/tui/Makefile \
642         ./doc/salome/tui/doxyfile \
643         ./doc/doxygen/Makefile \
644         ./doc/doxygen/Doxyfile_med_user \
645 ])
646
647 dnl To avoid recompiling half of the sources because of SALOMEconfig.h recreating
648 touch -d 01Jan2007 ./salome_adm/unix/SALOMEconfig.h