1 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 # ================================================================
23 # Process this file with autoconf to produce a configure script
24 # ================================================================
27 AC_INIT([Salome2 Project], [5.1.2], [paul.rascle@edf.fr], [SalomeKERNEL])
29 # AC_CONFIG_AUX_DIR defines an alternative directory where to find the auxiliary
30 # scripts such as config.guess, install-sh, ...
31 AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
34 AM_INIT_AUTOMAKE([tar-pax -Wno-portability])
35 #AC_CONFIG_HEADER([config.h])
37 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
40 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
45 echo ---------------------------------------------
46 echo Initialize source and build root directories
47 echo ---------------------------------------------
51 # This function return on stdout the absolute path of the filename in
53 # $ filename="../KERNEL_SRC/configure
54 # $ absfilename=`absolute_path $filename`
55 function absolute_path {
58 apath=`dirname $filename`
65 # Build directory, where the configure script is executed.
67 # Source directory, where the configure script is located.
68 ROOT_SRCDIR=`absolute_path $0`
71 AC_SUBST(ROOT_BUILDDIR)
74 echo Source root directory : $ROOT_SRCDIR
75 echo Build root directory : $ROOT_BUILDDIR
77 # ----------------------------------------------------------------------------
80 AC_ARG_ENABLE(corba_gen,
81 [AC_HELP_STRING([--enable-corba-gen],[Generate CORBA stuff [default=yes]])],
82 [case "${enableval}" in
83 yes) corba_gen=true ;;
84 no) corba_gen=false ;;
85 *) AC_MSG_ERROR(bad value ${enableval} for --enable-corba-gen) ;;
86 esac],[corba_gen=true])
87 AM_CONDITIONAL(CORBA_GEN, test x$corba_gen = xtrue)
89 # ---- option to build only launcher, resources manager and batch classes
90 AC_ARG_WITH(onlylauncher,
91 [AC_HELP_STRING([--with-onlylauncher],[Build only launcher, resources manager and batch classes [default=no]])],
93 [with_onlylauncher="no"])
94 AM_CONDITIONAL(WITHONLYLAUNCHER, test x$with_onlylauncher = xyes)
95 if test "$with_onlylauncher" != "yes"; then
96 AC_DEFINE([HAVE_SALOME_CONFIG], [], [True if SALOMEconfig.h file is used])
99 # ----------------------------------------------------------------------------
103 echo ============================================================
104 echo testing general mandatory products - for all configurations
105 echo ============================================================
108 dnl Modification B. Secher portage sur osf
109 AC_CHECK_PROG(SHELL,sh)
112 if test -z "$AR"; then
113 AC_CHECK_PROGS(AR,ar xar,:,$PATH)
118 echo ---------------------------------------------
120 echo ---------------------------------------------
126 echo ---------------------------------------------
127 echo Configuring production
128 echo ---------------------------------------------
132 AC_ENABLE_PRODUCTION(no)
133 AC_ENABLE_MPI_SEQ_CONTAINER(no)
136 echo ---------------------------------------------
138 echo ---------------------------------------------
141 dnl first, we set static to no!
142 dnl if we want it, use --enable-static
148 echo ---------------------------------------------
150 echo ---------------------------------------------
157 AC_CXX_TEMPLATE_OPTIONS
159 # AC_CC_WARNINGS([ansi])
163 AC_CHECK_LIB(dl,dlopen)
165 dnl Library librt : for alpha/osf
166 AC_CHECK_LIB(rt,nanosleep)
168 dnl add library libm :
171 # _CS_gbo We should add all dependent libraries
173 AC_CXX_USE_STD_IOSTREAM
181 echo ---------------------------------------------
182 echo testing Fortran INTEGER size for CALCIUM
183 echo ---------------------------------------------
189 echo ---------------------------------------------
191 echo ---------------------------------------------
197 echo ---------------------------------------------
199 echo ---------------------------------------------
205 echo ---------------------------------------------
207 echo ---------------------------------------------
210 dnl _CS_gbo We should use here a variable given from the CHECK_PYTHON
215 echo ---------------------------------------------
217 echo ---------------------------------------------
222 if test x$with_onlylauncher = xno; then
224 echo ---------------------------------------------
226 echo ---------------------------------------------
231 # ----------------------------------------------------------------------------
234 if test x$corba_gen = xtrue; then
237 echo ============================================================
238 echo testing mandatory products for CORBA configurations
239 echo ============================================================
243 dnl ---------------------------------------------
245 dnl ---------------------------------------------
251 echo ---------------------------------------------
252 echo Configuration of the ORB
253 echo ---------------------------------------------
256 echo Testing OMNIORB ...
259 echo Selecting the default ORB
261 echo DEFAULT_ORB : $DEFAULT_ORB
264 CORBA=salome_adm/unix/make_$ORB
268 # The CORBA variable defines the file name that
269 # implements the building rules to be included by Makefile to process
270 # idl files and CORBA specific dependencies (ex: the file
271 # salome_adm/unix/make_omniorb is the default for SALOME). The value
272 # of ORB is defined by CHECK_CORBA.
274 # Note that this checking process is no longer relevant for SALOME
275 # because the possibility of changing the ORB as a plugin is probably
276 # deprecated. The software configuration is clearly omniorb for CORBA
277 # communication. This could be simplify in a near futur.
280 echo ---------------------------------------------
282 echo ---------------------------------------------
289 # ----------------------------------------------------------------------------
292 # --- end test ONLYLAUNCHER
293 # ----------------------------------------------------------------------------
296 echo ============================================================
297 echo testing parallel products
298 echo ============================================================
302 echo ---------------------------------------------
303 echo checking if MPI is requested by user
304 echo ---------------------------------------------
310 echo ---------------------------------------------
311 echo checking if PaCO++ is requested by user
312 echo ---------------------------------------------
318 echo ------------------------------------------------------------
319 echo checking if parallel kernel extensions are requested by user
320 echo ------------------------------------------------------------
323 AC_MSG_CHECKING(whether to enable parallel kernel extension)
324 AC_ARG_ENABLE(parallel_extension,
325 AC_HELP_STRING([--enable-parallel_extension], [parallel kernel extension = [no/yes] (default is no)]),
326 parallel_extension_ok=$enableval,
327 parallel_extension_ok=no)
328 if test "x$parallel_extension_ok" = "xyes"
330 if test "x$PaCO_ok" = "xno"
332 parallel_extension_ok=no
336 if test "x$parallel_extension_ok" = "xyes"
343 AM_CONDITIONAL([WITH_PACO_PARALLEL], [test "x$parallel_extension_ok" = "xyes"])
346 echo ============================================================
347 echo testing optionnal products
348 echo ============================================================
352 echo ---------------------------------------------
354 echo ---------------------------------------------
357 dnl Several batch systems (OpenPBS, LSF, ...) can be operated using
358 dnl the Batch classes library integrated in the KERNEL module. The
359 dnl checking process tests here the presence of underlying batch
360 dnl softwares. If none is detected, the KERNEL is declared to be
367 dnl openpbs_ok is set to yes by CHECK_OPENPBS
373 dnl lsf_ok is set to yes by CHECK_LSF
376 echo testing Local batch system
377 echo --------------------------
380 dnl localbatch_ok is set to yes by CHECK_LOCAL
383 test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes
386 [AC_HELP_STRING([--enable-batch],[Batch [default=yes]])],
387 [case "${enableval}" in
388 yes) test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes;;
390 *) AC_MSG_ERROR(bad value ${enableval} for --enable-batch) ;;
391 esac],[test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes])
393 echo Batch mode = $WITH_BATCH
396 AM_CONDITIONAL(WITH_BATCH, [test x"$WITH_BATCH" = xyes])
399 echo ----------------------------------------------
400 echo testing CPPUNIT only required for unit testing
401 echo ----------------------------------------------
406 echo ============================================================
407 echo testing products required only for documentation generation
408 echo ============================================================
412 echo ---------------------------------------------
413 echo Testing html generators
414 echo ---------------------------------------------
417 CHECK_HTML_GENERATORS
419 # Additional conditional to avoid compilation of non-portable code
420 AM_CONDITIONAL(WINDOWS, [ test ])
423 echo ============================================================
425 echo ============================================================
428 # This function displays the values of each variable given in arguments
431 for var in $variables
434 if test x$toto != "x"; then
435 printf " %10s : " `echo \$var | sed -e "s,_ok,,"`
441 # --------------------------------------
443 function check_fatal_error {
445 for var in $variables
448 if test x$toto != "xyes"; then
449 echo "FATAL ERROR: some mandatory products are missing."
450 echo "Installing the missing products is required before running the configure script".
456 # --------------------------------------
458 if test x$with_onlylauncher = xno; then
459 if test x$corba_gen = xtrue; then
460 basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok"
462 basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok"
465 basic_mandatory_products="cc_ok threads_ok libxml_ok"
468 echo --- General mandatory products - Light configuration:
469 summary $basic_mandatory_products
470 check_fatal_error $basic_mandatory_products
473 if test x$with_onlylauncher = xno; then
474 corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok"
475 if test x$corba_gen = xtrue; then
476 echo --- CORBA mandatory products - default configuration:
477 summary $corba_mandatory_products
478 check_fatal_error $corba_mandatory_products
480 echo --- CORBA products not required - option --disable-corba-gen
481 if test x"$WITH_BATCH" = xyes; then
482 echo --- BATCH mode mandatory products - default configuration:
484 check_fatal_error "python_ok"
486 echo --- Python not required - option --enable-batch=no
492 parallel_products="mpi_ok PaCO_ok parallel_extension_ok"
493 echo --- Kernel parallel extensions:
494 summary $parallel_products
497 optional_products="cppunit_ok openpbs_ok lsf_ok numpy_ok"
498 echo --- Optional products:
499 echo [" These products are optional because the KERNEL functions"]
500 echo [" using them are built only if the products are detected."]
501 summary $optional_products
504 htmldoc_products="doxygen_ok graphviz_ok rst2html_ok"
506 echo --- Html documentation products: only required for doc production
507 summary $htmldoc_products
510 if test x$with_onlylauncher = xno; then
512 echo "Default ORB : $DEFAULT_ORB"
516 dnl generals files which could be included in every makefile
518 AC_SUBST_FILE(COMMENCE) COMMENCE=salome_adm/unix/make_commence
519 AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
520 AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
523 AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
525 dnl We don t need to say when we re entering directories if we re using
526 dnl GNU make becuase make does it for us.
527 if test "X$GMAKE" = "Xyes"; then
528 AC_SUBST(SETX) SETX=":"
530 AC_SUBST(SETX) SETX="set -x"
534 echo ---------------------------------------------
535 echo generating Makefiles and configure files
536 echo ---------------------------------------------
539 # This list is initiated using autoscan and must be updated manually
540 # when adding a new file <filename>.in to manage. When you execute
541 # autoscan, the Makefile list is generated in the output file configure.scan.
542 # This could be helpfull to update de configuration.
545 salome_adm/unix/SALOMEconfig.ref \
546 salome_adm/Makefile \
547 salome_adm/cmake_files/Makefile \
548 salome_adm/unix/Makefile \
549 salome_adm/unix/config_files/Makefile \
554 doc/salome/Makefile \
555 doc/salome/tui/Makefile \
556 doc/salome/tui/doxyfile \
557 doc/salome/gui/Makefile \
558 doc/salome/gui/doxyfile \
560 idl/Calcium_Ports.idl \
562 resources/KERNELCatalog.xml \
563 resources/CatalogResources.xml \
565 src/Basics/Makefile \
566 src/Basics/Test/Makefile \
568 src/Batch_SWIG/Makefile \
569 src/Communication/Makefile \
570 src/Communication_SWIG/Makefile \
571 src/Container/Makefile \
572 src/ParallelContainer/Makefile \
575 src/DSC/DSC_Basic/Makefile \
576 src/DSC/DSC_User/Makefile \
577 src/DSC/DSC_User/Basic/Makefile \
578 src/DSC/DSC_User/Datastream/Makefile \
579 src/DSC/DSC_User/Datastream/Palm/Makefile \
580 src/DSC/DSC_User/Datastream/Calcium/Makefile \
581 src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx \
582 src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx \
583 src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h \
584 src/DSC/ParallelDSC/Makefile \
585 src/DSC/DSC_Python/Makefile \
586 src/GenericObj/Makefile \
587 src/HDFPersist/Makefile \
588 src/KERNEL_PY/Makefile \
589 src/Launcher/Makefile \
590 src/LifeCycleCORBA/Makefile \
591 src/LifeCycleCORBA/Test/Makefile \
592 src/LifeCycleCORBA_SWIG/Makefile \
593 src/LifeCycleCORBA_SWIG/Test/Makefile \
594 src/Logger/Makefile \
595 src/Logger/Test/Makefile \
596 src/ModuleCatalog/Makefile \
597 src/ModuleGenerator/Makefile \
598 src/ModuleGenerator/testIDLparser \
599 src/MPIContainer/Makefile \
600 src/NamingService/Makefile \
601 src/NamingService/Test/Makefile \
602 src/Notification/Makefile \
603 src/NOTIFICATION_SWIG/Makefile \
604 src/Registry/Makefile \
605 src/ResourcesManager/Makefile \
606 src/SALOMEDS/Makefile \
607 src/SALOMEDS/Test/Makefile \
608 src/SALOMEDSClient/Makefile \
609 src/SALOMEDSImpl/Makefile \
610 src/SALOMEDSImpl/Test/Makefile \
611 src/SALOMELocalTrace/Makefile \
612 src/SALOMELocalTrace/Test/Makefile \
613 src/SALOMETraceCollector/Makefile \
614 src/SALOMETraceCollector/Test/Makefile \
615 src/TestContainer/Makefile \
616 src/TestMPIContainer/Makefile \
617 src/TOOLSDS/Makefile \
618 src/UnitTests/Makefile \
620 src/Utils/Test/Makefile \