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)
131 echo ---------------------------------------------
133 echo ---------------------------------------------
136 dnl first, we set static to no!
137 dnl if we want it, use --enable-static
143 echo ---------------------------------------------
145 echo ---------------------------------------------
152 AC_CXX_TEMPLATE_OPTIONS
154 # AC_CC_WARNINGS([ansi])
158 AC_CHECK_LIB(dl,dlopen)
160 dnl Library librt : for alpha/osf
161 AC_CHECK_LIB(rt,nanosleep)
163 dnl add library libm :
166 # _CS_gbo We should add all dependent libraries
168 AC_CXX_USE_STD_IOSTREAM
176 echo ---------------------------------------------
178 echo ---------------------------------------------
184 echo ---------------------------------------------
186 echo ---------------------------------------------
192 echo ---------------------------------------------
194 echo ---------------------------------------------
197 dnl _CS_gbo We should use here a variable given from the CHECK_PYTHON
202 echo ---------------------------------------------
204 echo ---------------------------------------------
209 if test x$with_onlylauncher = xno; then
211 echo ---------------------------------------------
213 echo ---------------------------------------------
218 # ----------------------------------------------------------------------------
221 if test x$corba_gen = xtrue; then
224 echo ============================================================
225 echo testing mandatory products for CORBA configurations
226 echo ============================================================
230 dnl ---------------------------------------------
232 dnl ---------------------------------------------
238 echo ---------------------------------------------
239 echo Configuration of the ORB
240 echo ---------------------------------------------
243 echo Testing OMNIORB ...
246 echo Selecting the default ORB
248 echo DEFAULT_ORB : $DEFAULT_ORB
251 CORBA=salome_adm/unix/make_$ORB
255 # The CORBA variable defines the file name that
256 # implements the building rules to be included by Makefile to process
257 # idl files and CORBA specific dependencies (ex: the file
258 # salome_adm/unix/make_omniorb is the default for SALOME). The value
259 # of ORB is defined by CHECK_CORBA.
261 # Note that this checking process is no longer relevant for SALOME
262 # because the possibility of changing the ORB as a plugin is probably
263 # deprecated. The software configuration is clearly omniorb for CORBA
264 # communication. This could be simplify in a near futur.
267 echo ---------------------------------------------
269 echo ---------------------------------------------
276 # ----------------------------------------------------------------------------
279 # --- end test ONLYLAUNCHER
280 # ----------------------------------------------------------------------------
283 echo ============================================================
284 echo testing parallel products
285 echo ============================================================
289 echo ---------------------------------------------
290 echo checking if MPI is requested by user
291 echo ---------------------------------------------
297 echo ---------------------------------------------
298 echo checking if PaCO++ is requested by user
299 echo ---------------------------------------------
305 echo ------------------------------------------------------------
306 echo checking if parallel kernel extensions are requested by user
307 echo ------------------------------------------------------------
310 AC_MSG_CHECKING(whether to enable parallel kernel extension)
311 AC_ARG_ENABLE(parallel_extension,
312 AC_HELP_STRING([--enable-parallel_extension], [parallel kernel extension = [no/yes] (default is no)]),
313 parallel_extension_ok=$enableval,
314 parallel_extension_ok=no)
315 if test "x$parallel_extension_ok" = "xyes"
317 if test "x$PaCO_ok" = "xno"
319 parallel_extension_ok=no
323 if test "x$parallel_extension_ok" = "xyes"
330 AM_CONDITIONAL([WITH_PACO_PARALLEL], [test "x$parallel_extension_ok" = "xyes"])
333 echo ============================================================
334 echo testing optionnal products
335 echo ============================================================
339 echo ---------------------------------------------
341 echo ---------------------------------------------
344 dnl Several batch systems (OpenPBS, LSF, ...) can be operated using
345 dnl the Batch classes library integrated in the KERNEL module. The
346 dnl checking process tests here the presence of underlying batch
347 dnl softwares. If none is detected, the KERNEL is declared to be
354 dnl openpbs_ok is set to yes by CHECK_OPENPBS
360 dnl lsf_ok is set to yes by CHECK_LSF
363 echo testing Local batch system
364 echo --------------------------
367 dnl localbatch_ok is set to yes by CHECK_LOCAL
370 test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes
373 [AC_HELP_STRING([--enable-batch],[Batch [default=yes]])],
374 [case "${enableval}" in
375 yes) test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes;;
377 *) AC_MSG_ERROR(bad value ${enableval} for --enable-batch) ;;
378 esac],[test x$openpbs_ok = xyes || test x$lsf_ok = xyes || test x$localbatch_ok = xyes && WITH_BATCH=yes])
380 echo Batch mode = $WITH_BATCH
383 AM_CONDITIONAL(WITH_BATCH, [test x"$WITH_BATCH" = xyes])
386 echo ----------------------------------------------
387 echo testing CPPUNIT only required for unit testing
388 echo ----------------------------------------------
393 echo ============================================================
394 echo testing products required only for documentation generation
395 echo ============================================================
399 echo ---------------------------------------------
400 echo Testing html generators
401 echo ---------------------------------------------
404 CHECK_HTML_GENERATORS
407 echo ============================================================
409 echo ============================================================
412 # This function displays the values of each variable given in arguments
415 for var in $variables
418 if test x$toto != "x"; then
419 printf " %10s : " `echo \$var | sed -e "s,_ok,,"`
425 # --------------------------------------
427 function check_fatal_error {
429 for var in $variables
432 if test x$toto != "xyes"; then
433 echo "FATAL ERROR: some mandatory products are missing."
434 echo "Installing the missing products is required before running the configure script".
440 # --------------------------------------
442 if test x$with_onlylauncher = xno; then
443 if test x$corba_gen = xtrue; then
444 basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok"
446 basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok"
449 basic_mandatory_products="cc_ok threads_ok libxml_ok"
452 echo --- General mandatory products - Light configuration:
453 summary $basic_mandatory_products
454 check_fatal_error $basic_mandatory_products
457 if test x$with_onlylauncher = xno; then
458 corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok"
459 if test x$corba_gen = xtrue; then
460 echo --- CORBA mandatory products - default configuration:
461 summary $corba_mandatory_products
462 check_fatal_error $corba_mandatory_products
464 echo --- CORBA products not required - option --disable-corba-gen
465 if test x"$WITH_BATCH" = xyes; then
466 echo --- BATCH mode mandatory products - default configuration:
468 check_fatal_error "python_ok"
470 echo --- Python not required - option --enable-batch=no
476 parallel_products="mpi_ok PaCO_ok parallel_extension_ok"
477 echo --- Kernel parallel extensions:
478 summary $parallel_products
481 optional_products="cppunit_ok openpbs_ok lsf_ok numpy_ok"
482 echo --- Optional products:
483 echo [" These products are optional because the KERNEL functions"]
484 echo [" using them are built only if the products are detected."]
485 summary $optional_products
488 htmldoc_products="doxygen_ok graphviz_ok rst2html_ok"
490 echo --- Html documentation products: only required for doc production
491 summary $htmldoc_products
494 if test x$with_onlylauncher = xno; then
496 echo "Default ORB : $DEFAULT_ORB"
500 dnl generals files which could be included in every makefile
502 AC_SUBST_FILE(COMMENCE) COMMENCE=salome_adm/unix/make_commence
503 AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
504 AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
507 AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
509 dnl We don t need to say when we re entering directories if we re using
510 dnl GNU make becuase make does it for us.
511 if test "X$GMAKE" = "Xyes"; then
512 AC_SUBST(SETX) SETX=":"
514 AC_SUBST(SETX) SETX="set -x"
518 echo ---------------------------------------------
519 echo generating Makefiles and configure files
520 echo ---------------------------------------------
523 # This list is initiated using autoscan and must be updated manually
524 # when adding a new file <filename>.in to manage. When you execute
525 # autoscan, the Makefile list is generated in the output file configure.scan.
526 # This could be helpfull to update de configuration.
529 ./salome_adm/unix/SALOMEconfig.ref \
530 ./salome_adm/Makefile \
531 ./salome_adm/cmake_files/Makefile \
532 ./salome_adm/unix/Makefile \
533 ./salome_adm/unix/config_files/Makefile \
538 ./doc/salome/Makefile \
539 ./doc/salome/tui/Makefile \
540 ./doc/salome/tui/doxyfile \
541 ./doc/salome/gui/Makefile \
542 ./doc/salome/gui/doxyfile \
544 ./resources/Makefile \
545 ./resources/KERNELCatalog.xml \
546 ./resources/CatalogResources.xml \
548 ./src/Basics/Makefile \
549 ./src/Basics/Test/Makefile \
550 ./src/Batch/Makefile \
551 ./src/Batch_SWIG/Makefile \
552 ./src/Communication/Makefile \
553 ./src/Communication_SWIG/Makefile \
554 ./src/Container/Makefile \
555 ./src/ParallelContainer/Makefile \
558 ./src/DSC/DSC_Basic/Makefile \
559 ./src/DSC/DSC_User/Makefile \
560 ./src/DSC/DSC_User/Basic/Makefile \
561 ./src/DSC/DSC_User/Datastream/Makefile \
562 ./src/DSC/DSC_User/Datastream/Palm/Makefile \
563 ./src/DSC/DSC_User/Datastream/Calcium/Makefile \
564 ./src/DSC/ParallelDSC/Makefile \
565 ./src/DSC/DSC_Python/Makefile \
566 ./src/GenericObj/Makefile \
567 ./src/HDFPersist/Makefile \
568 ./src/KERNEL_PY/Makefile \
569 ./src/Launcher/Makefile \
570 ./src/LifeCycleCORBA/Makefile \
571 ./src/LifeCycleCORBA/Test/Makefile \
572 ./src/LifeCycleCORBA_SWIG/Makefile \
573 ./src/LifeCycleCORBA_SWIG/Test/Makefile \
574 ./src/Logger/Makefile \
575 ./src/Logger/Test/Makefile \
576 ./src/ModuleCatalog/Makefile \
577 ./src/ModuleGenerator/Makefile \
578 ./src/ModuleGenerator/testIDLparser \
579 ./src/MPIContainer/Makefile \
580 ./src/NamingService/Makefile \
581 ./src/NamingService/Test/Makefile \
582 ./src/Notification/Makefile \
583 ./src/NOTIFICATION_SWIG/Makefile \
584 ./src/Registry/Makefile \
585 ./src/ResourcesManager/Makefile \
586 ./src/SALOMEDS/Makefile \
587 ./src/SALOMEDS/Test/Makefile \
588 ./src/SALOMEDSClient/Makefile \
589 ./src/SALOMEDSImpl/Makefile \
590 ./src/SALOMEDSImpl/Test/Makefile \
591 ./src/SALOMELocalTrace/Makefile \
592 ./src/SALOMELocalTrace/Test/Makefile \
593 ./src/SALOMETraceCollector/Makefile \
594 ./src/SALOMETraceCollector/Test/Makefile \
595 ./src/TestContainer/Makefile \
596 ./src/TestMPIContainer/Makefile \
597 ./src/TOOLSDS/Makefile \
598 ./src/UnitTests/Makefile \
599 ./src/Utils/Makefile \
600 ./src/Utils/Test/Makefile \