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.1], [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])
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,
92 [],[with_onlylauncher="no"])
93 AM_CONDITIONAL(WITHONLYLAUNCHER, test x$with_onlylauncher = xyes)
95 # ----------------------------------------------------------------------------
99 echo ============================================================
100 echo testing general mandatory products - for all configurations
101 echo ============================================================
104 dnl Modification B. Secher portage sur osf
105 AC_CHECK_PROG(SHELL,sh)
108 if test -z "$AR"; then
109 AC_CHECK_PROGS(AR,ar xar,:,$PATH)
114 echo ---------------------------------------------
116 echo ---------------------------------------------
122 echo ---------------------------------------------
123 echo Configuring production
124 echo ---------------------------------------------
128 AC_ENABLE_PRODUCTION(no)
129 AC_ENABLE_MPI_SEQ_CONTAINER(no)
132 echo ---------------------------------------------
134 echo ---------------------------------------------
137 dnl first, we set static to no!
138 dnl if we want it, use --enable-static
144 echo ---------------------------------------------
146 echo ---------------------------------------------
153 AC_CXX_TEMPLATE_OPTIONS
155 # AC_CC_WARNINGS([ansi])
159 AC_CHECK_LIB(dl,dlopen)
161 dnl Library librt : for alpha/osf
162 AC_CHECK_LIB(rt,nanosleep)
164 dnl add library libm :
167 # _CS_gbo We should add all dependent libraries
169 AC_CXX_USE_STD_IOSTREAM
177 echo ---------------------------------------------
179 echo ---------------------------------------------
185 echo ---------------------------------------------
187 echo ---------------------------------------------
193 echo ---------------------------------------------
195 echo ---------------------------------------------
198 dnl _CS_gbo We should use here a variable given from the CHECK_PYTHON
203 echo ---------------------------------------------
205 echo ---------------------------------------------
210 if test x$with_onlylauncher = xno; then
212 echo ---------------------------------------------
214 echo ---------------------------------------------
219 # ----------------------------------------------------------------------------
222 if test x$corba_gen = xtrue; then
225 echo ============================================================
226 echo testing mandatory products for CORBA configurations
227 echo ============================================================
231 dnl ---------------------------------------------
233 dnl ---------------------------------------------
239 echo ---------------------------------------------
240 echo Configuration of the ORB
241 echo ---------------------------------------------
244 echo Testing OMNIORB ...
247 echo Selecting the default ORB
249 echo DEFAULT_ORB : $DEFAULT_ORB
252 CORBA=salome_adm/unix/make_$ORB
256 # The CORBA variable defines the file name that
257 # implements the building rules to be included by Makefile to process
258 # idl files and CORBA specific dependencies (ex: the file
259 # salome_adm/unix/make_omniorb is the default for SALOME). The value
260 # of ORB is defined by CHECK_CORBA.
262 # Note that this checking process is no longer relevant for SALOME
263 # because the possibility of changing the ORB as a plugin is probably
264 # deprecated. The software configuration is clearly omniorb for CORBA
265 # communication. This could be simplify in a near futur.
268 echo ---------------------------------------------
270 echo ---------------------------------------------
277 # ----------------------------------------------------------------------------
280 # --- end test ONLYLAUNCHER
281 # ----------------------------------------------------------------------------
284 echo ============================================================
285 echo testing parallel products
286 echo ============================================================
290 echo ---------------------------------------------
291 echo checking if MPI is requested by user
292 echo ---------------------------------------------
298 echo ---------------------------------------------
299 echo checking if PaCO++ is requested by user
300 echo ---------------------------------------------
306 echo ------------------------------------------------------------
307 echo checking if parallel kernel extensions are requested by user
308 echo ------------------------------------------------------------
311 AC_MSG_CHECKING(whether to enable parallel kernel extension)
312 AC_ARG_ENABLE(parallel_extension,
313 AC_HELP_STRING([--enable-parallel_extension], [parallel kernel extension = [no/yes] (default is no)]),
314 parallel_extension_ok=$enableval,
315 parallel_extension_ok=no)
316 if test "x$parallel_extension_ok" = "xyes"
318 if test "x$PaCO_ok" = "xno"
320 parallel_extension_ok=no
324 if test "x$parallel_extension_ok" = "xyes"
331 AM_CONDITIONAL([WITH_PACO_PARALLEL], [test "x$parallel_extension_ok" = "xyes"])
334 echo ============================================================
335 echo testing optionnal products
336 echo ============================================================
340 echo ---------------------------------------------
342 echo ---------------------------------------------
345 dnl Several batch systems (OpenPBS, LSF, ...) can be operated using
346 dnl the Batch classes library integrated in the KERNEL module. The
347 dnl checking process tests here the presence of underlying batch
348 dnl softwares. If none is detected, the KERNEL is declared to be
355 dnl openpbs_ok is set to yes by CHECK_OPENPBS
361 dnl lsf_ok is set to yes by CHECK_LSF
364 echo testing Local batch system
365 echo --------------------------
368 dnl localbatch_ok is set to yes by CHECK_LOCAL
371 test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes
374 [AC_HELP_STRING([--enable-batch],[Batch [default=yes]])],
375 [case "${enableval}" in
376 yes) test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes;;
378 *) AC_MSG_ERROR(bad value ${enableval} for --enable-batch) ;;
379 esac],[test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes])
381 echo Batch mode = $WITH_BATCH
384 AM_CONDITIONAL(WITH_BATCH, [test x"$WITH_BATCH" = xyes])
387 echo ----------------------------------------------
388 echo testing CPPUNIT only required for unit testing
389 echo ----------------------------------------------
394 echo ============================================================
395 echo testing products required only for documentation generation
396 echo ============================================================
400 echo ---------------------------------------------
401 echo Testing html generators
402 echo ---------------------------------------------
405 CHECK_HTML_GENERATORS
407 # Additional conditional to avoid compilation of non-portable code
408 AM_CONDITIONAL(WINDOWS, 0)
411 echo ============================================================
413 echo ============================================================
416 # This function displays the values of each variable given in arguments
419 for var in $variables
422 if test x$toto != "x"; then
423 printf " %10s : " `echo \$var | sed -e "s,_ok,,"`
429 # --------------------------------------
431 function check_fatal_error {
433 for var in $variables
436 if test x$toto != "xyes"; then
437 echo "FATAL ERROR: some mandatory products are missing."
438 echo "Installing the missing products is required before running the configure script".
444 # --------------------------------------
446 if test x$with_onlylauncher = xno; then
447 if test x$corba_gen = xtrue; then
448 basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok"
450 basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok"
453 basic_mandatory_products="cc_ok threads_ok libxml_ok"
456 echo --- General mandatory products - Light configuration:
457 summary $basic_mandatory_products
458 check_fatal_error $basic_mandatory_products
461 if test x$with_onlylauncher = xno; then
462 corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok"
463 if test x$corba_gen = xtrue; then
464 echo --- CORBA mandatory products - default configuration:
465 summary $corba_mandatory_products
466 check_fatal_error $corba_mandatory_products
468 echo --- CORBA products not required - option --disable-corba-gen
469 if test x"$WITH_BATCH" = xyes; then
470 echo --- BATCH mode mandatory products - default configuration:
472 check_fatal_error "python_ok"
474 echo --- Python not required - option --enable-batch=no
480 parallel_products="mpi_ok PaCO_ok parallel_extension_ok"
481 echo --- Kernel parallel extensions:
482 summary $parallel_products
485 optional_products="cppunit_ok openpbs_ok lsf_ok numpy_ok"
486 echo --- Optional products:
487 echo [" These products are optional because the KERNEL functions"]
488 echo [" using them are built only if the products are detected."]
489 summary $optional_products
492 htmldoc_products="doxygen_ok graphviz_ok rst2html_ok"
494 echo --- Html documentation products: only required for doc production
495 summary $htmldoc_products
498 if test x$with_onlylauncher = xno; then
500 echo "Default ORB : $DEFAULT_ORB"
504 dnl generals files which could be included in every makefile
506 AC_SUBST_FILE(COMMENCE) COMMENCE=salome_adm/unix/make_commence
507 AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
508 AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
511 AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
513 dnl We don t need to say when we re entering directories if we re using
514 dnl GNU make becuase make does it for us.
515 if test "X$GMAKE" = "Xyes"; then
516 AC_SUBST(SETX) SETX=":"
518 AC_SUBST(SETX) SETX="set -x"
522 echo ---------------------------------------------
523 echo generating Makefiles and configure files
524 echo ---------------------------------------------
527 # This list is initiated using autoscan and must be updated manually
528 # when adding a new file <filename>.in to manage. When you execute
529 # autoscan, the Makefile list is generated in the output file configure.scan.
530 # This could be helpfull to update de configuration.
533 ./salome_adm/unix/SALOMEconfig.ref \
534 ./salome_adm/Makefile \
535 ./salome_adm/cmake_files/Makefile \
536 ./salome_adm/unix/Makefile \
537 ./salome_adm/unix/config_files/Makefile \
542 ./doc/salome/Makefile \
543 ./doc/salome/tui/Makefile \
544 ./doc/salome/tui/doxyfile \
545 ./doc/salome/gui/Makefile \
546 ./doc/salome/gui/doxyfile \
548 ./resources/Makefile \
549 ./resources/KERNELCatalog.xml \
550 ./resources/CatalogResources.xml \
552 ./src/Basics/Makefile \
553 ./src/Basics/Test/Makefile \
554 ./src/Batch/Makefile \
555 ./src/Batch_SWIG/Makefile \
556 ./src/Communication/Makefile \
557 ./src/Communication_SWIG/Makefile \
558 ./src/Container/Makefile \
559 ./src/ParallelContainer/Makefile \
562 ./src/DSC/DSC_Basic/Makefile \
563 ./src/DSC/DSC_User/Makefile \
564 ./src/DSC/DSC_User/Basic/Makefile \
565 ./src/DSC/DSC_User/Datastream/Makefile \
566 ./src/DSC/DSC_User/Datastream/Palm/Makefile \
567 ./src/DSC/DSC_User/Datastream/Calcium/Makefile \
568 ./src/DSC/ParallelDSC/Makefile \
569 ./src/DSC/DSC_Python/Makefile \
570 ./src/GenericObj/Makefile \
571 ./src/HDFPersist/Makefile \
572 ./src/KERNEL_PY/Makefile \
573 ./src/Launcher/Makefile \
574 ./src/LifeCycleCORBA/Makefile \
575 ./src/LifeCycleCORBA/Test/Makefile \
576 ./src/LifeCycleCORBA_SWIG/Makefile \
577 ./src/LifeCycleCORBA_SWIG/Test/Makefile \
578 ./src/Logger/Makefile \
579 ./src/Logger/Test/Makefile \
580 ./src/ModuleCatalog/Makefile \
581 ./src/ModuleGenerator/Makefile \
582 ./src/ModuleGenerator/testIDLparser \
583 ./src/MPIContainer/Makefile \
584 ./src/NamingService/Makefile \
585 ./src/NamingService/Test/Makefile \
586 ./src/Notification/Makefile \
587 ./src/NOTIFICATION_SWIG/Makefile \
588 ./src/Registry/Makefile \
589 ./src/ResourcesManager/Makefile \
590 ./src/SALOMEDS/Makefile \
591 ./src/SALOMEDS/Test/Makefile \
592 ./src/SALOMEDSClient/Makefile \
593 ./src/SALOMEDSImpl/Makefile \
594 ./src/SALOMEDSImpl/Test/Makefile \
595 ./src/SALOMELocalTrace/Makefile \
596 ./src/SALOMELocalTrace/Test/Makefile \
597 ./src/SALOMETraceCollector/Makefile \
598 ./src/SALOMETraceCollector/Test/Makefile \
599 ./src/TestContainer/Makefile \
600 ./src/TestMPIContainer/Makefile \
601 ./src/TOOLSDS/Makefile \
602 ./src/UnitTests/Makefile \
603 ./src/Utils/Makefile \
604 ./src/Utils/Test/Makefile \