1 dnl -*- mode: autoconf -*-
4 dnl template for the configuration script for the Alice HLT
5 dnl framework and components
7 dnl ------------------------------------------------------------------
9 dnl Take either the AliRoot tag as version id or the current revision
10 AC_INIT([Alice High Level Trigger] ,
11 m4_esyscmd([url=`svn info 2> /dev/null | grep "URL:" | cut -d: -f3 | sed -e 's|[/]*HLT[/]*$||' | sed -e 's|^[/]*||g' | cut -d '/' -f 4`; \
12 revision=`svn info 2> /dev/null | grep "Revision:" | cut -d ' ' -f 2 | cut -d '/' -f 4`; \
13 if test "x$url" != "x"; then echo -n $url; \
14 elif test "x$revision" != "x"; then echo -n $revision ; \
15 elif test -e .revision && test x`cat .revision` != x; then \
18 echo -n invalid-version; \
20 [Matthias.Richter@ift.uib.no],
23 dnl ------------------------------------------------------------------
24 dnl the package from CVS contains the old Makefiles as well. In order to
25 dnl prevent them from becoming overwritten, we require a separate build
27 if test "`dirname $0`" = "." ; then
28 AC_ERROR([please run the script from a separate build directory])
31 dnl ------------------------------------------------------------------
33 AC_PREFIX_DEFAULT(${PWD})
34 AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
42 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
44 dnl ------------------------------------------------------------------
45 dnl A warning posted into the auto-generated files
46 dnl Does NOT concern this file ;-)
47 AUTOGENERATED_WARNING="!!!!!!! DO NOT EDIT THIS FILE !!!!!!"
48 AC_SUBST([AUTOGENERATED_WARNING])
50 dnl ------------------------------------------------------------------
54 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
55 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
57 ROOTBINDIR=`dirname $ROOTEXEC`
58 AC_SUBST([ROOTBINDIR])
60 dnl test for additional required root libraries and headers
62 if test "x$have_root" = "x1"; then
64 save_CPPFLAGS=$CPPFLAGS
67 CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
69 # we check for the libSTEER library which is linked to
70 # - the ROOT libs libGeom libMinuit libVMC libEG
71 # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
72 # - ROOT libCint needs also libdl
73 # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
75 # - from Jan 07 libESD also depends on libXMLIO
76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
77 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
78 for CHECKLIB in $ROOT_CHECKLIBS ; do
79 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
80 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
81 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
84 # TBuffer.h has been made pure virtual in root v5-15-02 and one
85 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
86 AC_CHECK_HEADERS([TBufferFile.h])
88 # TView.h has been made pure virtual right after root v5-15-02 and one
89 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
90 AC_CHECK_HEADERS([TView3D.h])
92 CPPFLAGS=$save_CPPFLAGS
98 dnl ------------------------------------------------------------------
99 # TODO: make this configurable through arguments
100 #Define whether you want to run with ALIROOT or only ROOT
101 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
102 ALIHLT_USEPACKAGE=ALIROOT
103 #ALIHLT_USEPACKAGE=ROOT
104 #ALIHLT_USEPACKAGE=STANDALONE
105 AC_DEFINE(use_aliroot)
107 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
108 save_CPPFLAGS=$CPPFLAGS
109 save_LDFLAGS=$LDFLAGS
112 dnl ------------------------------------------------------------------
113 dnl check for AliRoot features
116 AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
117 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
120 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
121 dnl ------------------------------------------------------------------
122 dnl Try to estimate the system architecture
123 case $host_os:$host_cpu in
124 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
125 linux*) alice_target='linux' ;;
126 *) alice_target='unknown' ;;
128 if test "x$alice_target" = "xunknown" ; then
129 if test -z $ALICE_TARGET ; then
130 AC_MSG_ERROR([Can not estimate system architecture.
131 To avoid the problem, set the ALICE_TARGET variable appropriately.
132 Please send the following information to Matthias.Richter@ift.uib.no:
133 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
135 AC_MSG_NOTICE([Unknown system architecture.
136 Please send the following information to Matthias.Richter@ift.uib.no:
137 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
140 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
141 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
142 overriding $ALICE_TARGET by $alice_target])
144 ALICE_TARGET=$alice_target
146 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
147 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
148 ALIROOTINCDIR=${ALICE_ROOT}/include
149 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
150 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
151 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
154 AC_MSG_CHECKING([for AliRoot])
155 if test "x$ALICE_ROOT" != "x" \
156 && test -d ${ALIROOTBINDIR} \
157 && test -d ${ALIROOTLIBDIR} \
158 && test -d ${ALIROOTINCDIR}; then
159 have_aliroot=$ALICE_ROOT
165 AC_MSG_RESULT([$have_aliroot])
167 if test ! "x$have_aliroot" = "xno" ; then
168 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
170 ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
171 save_CPPFLAGS=$CPPFLAGS
172 save_LDFLAGS=$LDFLAGS
174 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
175 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
177 # check for certain AliRoot libraries/files/features
178 # libSTEERBase present since Aug 7 2007
179 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
181 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
183 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
185 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
187 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
191 AC_CHECK_LIB([$CHECKLIB],[_init],
192 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
193 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
195 AC_CHECK_LIB([$CHECKLIB],[_init],
196 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
197 have_alirawdata=$CHECKLIB])],
198 [# second pass with -RAWData
200 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
201 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
202 #include <AliRawReaderFile.h>
203 #include <AliRawReaderDate.h>
204 #include <AliRawReaderRoot.h>],
205 [AliRawReaderMemory mreader;
206 AliRawReaderFile freader;
207 AliRawReaderDate dreader(NULL,0);
208 AliRawReaderRoot rreader(NULL,0);])],
209 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
210 have_alirawdata=$CHECKLIB],
211 [have_alirawdata=no])
212 ]) dnl AC_CHECK_LIB RAWDatabase
213 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
214 AC_MSG_RESULT([$have_alirawdata])
216 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
217 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
219 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
221 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
223 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
226 dnl check whether AliLog supports notification callback
228 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
229 have_alilog_notification=no
230 if test ! "x$have_aliroot" = "xno" ; then
231 AC_MSG_CHECKING([whether AliLog supports notification callback])
232 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
233 [AliLog::AliLogNotification fct])],
234 [have_alilog_notification=yes],
235 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
236 AC_MSG_RESULT([$have_alilog_notification])
239 if test "x$have_aliroot" = "xno" ; then
240 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
241 # but library dependencies might not be resolved completely
243 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
244 This can happen from time to time due to development in AliRoot. You can
245 force compilation of detector libs by --enable-<detector>, but be aware
246 of unresolved references at runtime.])
247 AC_MSG_WARN([ ------------------------------------------ ])
248 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
249 AC_MSG_WARN([ please include config.log ])
250 AC_MSG_WARN([ ------------------------------------------ ])
256 dnl ESD copy function added May 9 2008 rev 25667
259 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
264 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
265 AC_MSG_CHECKING(for ESD assignment operator)
266 AC_MSG_RESULT([$have_esd_copy])
269 dnl required header files and libraries for modules
271 if test ! "x$have_aliroot" = "xno" ; then
272 # the HLTTPCLib needs to link agains TPCbase and TPCrec
273 # TPC library for AliTPCParam and AliSimDigits used in
274 # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx
275 # from May 07 TPCbase depends on libGui.so
276 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
278 AC_MSG_CHECKING(for required classes in TPC libraries)
279 if test ! "x$have_alitpc" = "xno" ; then
280 ALITPC_LIBS="-lGui -lTPCbase -lTPCrec"
281 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliSimDigits.h>
283 #include <AliTPCParam.h>
284 #include <AliTPCParamSR.h>
285 #include <AliTPCDigitsArray.h>
286 #include <AliTPCClustersArray.h>
287 #include <AliTPCcluster.h>
288 #include <AliTPCClustersRow.h>],
291 AliTPCParamSR paramsr;
292 AliTPCDigitsArray digarray;
293 AliTPCClustersArray clustarray;
295 AliTPCClustersRow row])],
296 [AC_DEFINE(HAVE_ALITPC)],
300 AC_MSG_RESULT([$have_alitpc])
302 AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
303 AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
306 if test ! "x$have_aliroot" = "xno" ; then
307 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
308 # which is stored in the TPC/mapping/Patchx.data files from
309 # AliRoot version v4-04-Release (May 2006)
310 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
311 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
312 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
313 [have_tpc_mapping=yes
314 AC_SUBST(TPC_PAD_MAPPING_PATH)
315 AC_DEFINE(HAVE_TPC_MAPPING)],
319 AC_MSG_CHECKING([for TPC mapping layout])
320 AC_MSG_RESULT([$have_tpc_mapping])
323 dnl Check for the interface of AliExternalTrackParam which has been changed
324 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
326 externaltrackparam_version=1
327 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
328 [AliExternalTrackParam trackparam;
329 Double_t param[[5]]; Double_t covar[[15]];
330 trackparam.Set(0., 0., param, covar);])],
331 [externaltrackparam_version=2],
332 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
333 AC_MSG_CHECKING(for version of AliExternalTrackParam)
334 AC_MSG_RESULT($externaltrackparam_version)
336 CPPFLAGS=$save_CPPFLAGS
337 LDFLAGS=$save_LDFLAGS
339 fi # if test ! "x$have_aliroot" = "xno"
342 AC_SUBST([ALICE_ROOT])
343 AC_SUBST([ALIROOT_CPPFLAGS])
344 AC_SUBST([ALIROOT_LDFLAGS])
345 AC_SUBST([ALIROOTBINDIR])
346 AC_SUBST([ALIROOTLIBDIR])
347 AC_SUBST([ALIROOT_LIBS])
348 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
350 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
352 AC_SUBST([HLTBASE_CPPFLAGS])
353 AC_SUBST([HLTBASE_LDFLAGS])
355 dnl ------------------------------------------------------------------
356 dnl check for the HLT PubSub Framework
357 dnl namely for the existence of the HOMER library
358 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
359 dnl package. It os though possible to choose an external. library
360 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
361 dnl got the name libAliHLTHOMER
362 AC_MSG_CHECKING([for HLT PubSub Framework])
363 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
365 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
366 if test -z $with_pubsub || ! test -d $with_pubsub ; then
369 AC_MSG_RESULT([$with_pubsub])
373 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
374 if test "x$with_pubsub" != "xno" ; then
375 save_CPPFLAGS=$CPPFLAGS
376 save_LDFLAGS=$LDFLAGS
378 # currently the different versions of the HLT PubSub framework have a different
380 if test -d ${with_pubsub}/include/HOMER ; then
381 # the 'early' location of the include files with separated HOMER sub dirs
382 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
383 elif test -d ${with_pubsub}/include/Util/HOMER ; then
384 # location for HLT Framework versions after Sep 2006
385 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
386 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
387 # fall back if include files were not installed (versions after Sep 06)
388 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
390 # fall back if include files were not installed (versions before Sep 06)
391 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
393 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
395 AC_ARG_ENABLE(pubsub-debug,
396 [AC_HELP_STRING([--disable-pubsub-debug],
397 [force the production version of the PubSub framework])],
398 [],[enable_pubsub_debug=yes])
400 HOMER_TARGET="`uname -s`-`uname -m`"
401 AC_MSG_CHECKING([for HLT PubSub Framework release type])
402 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
403 homer_type="production"
404 HOMER_TARGET="${HOMER_TARGET}-release"
405 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
407 HOMER_TARGET="${HOMER_TARGET}-debug"
409 AC_MSG_RESULT([${homer_type}])
410 HOMERREADER_HEADER=HOMERReader.h
411 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
412 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
413 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
414 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
415 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
419 AC_CHECK_HEADER([$HOMERREADER_HEADER],
420 [ AC_CHECK_LIB([HOMER],[_init],
422 HOMER_LIBS="-lHOMER"],
423 [ AC_CHECK_LIB([HOMERReader],[_init],
425 HOMER_LIBS="-lHOMERReader"])])
426 LIBS="$LIBS $HOMER_LIBS"
427 AC_MSG_CHECKING([version of HOMER library])
428 dnl The Homer library has no versioning, so we do our own
429 dnl version description
430 dnl ----------------------------------------------------------------------
431 dnl 1 inintial version
432 dnl 2 GetBlockStatusFlags added to the interface
433 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
434 [HOMERReader reader("dummy", 0);
435 reader.GetBlockStatusFlags(0);])],
438 AC_MSG_RESULT([$HOMER_VERSION])
440 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
444 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
446 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
447 HOMERREADER_HEADER=AliHLTHOMERReader.h
448 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
454 if test "x$with_homer" = "xno" ; then
459 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
460 AC_DEFINE(HAVE_HOMERREADER)
462 CPPFLAGS="$save_CPPFLAGS"
463 LDFLAGS="$save_LDFLAGS"
466 AC_SUBST([HOMERREADER_HEADER])
467 AC_SUBST([HOMER_INBUILT_LIB])
468 AC_SUBST([HOMER_CPPFLAGS])
469 AC_SUBST([HOMER_LDFLAGS])
470 AC_SUBST([HOMER_LIBDIR])
471 AC_SUBST([HOMER_BINDIR])
472 AC_SUBST([HOMER_LIBS])
474 dnl ------------------------------------------------------------------
476 [AC_HELP_STRING([--disable-all],
477 [disable all detector modules, individual modules can be switched on by --enable-det])],
478 [disable_all=yes],[])
480 dnl ------------------------------------------------------------------
481 AC_MSG_CHECKING([whether to impose strict coding conventions])
482 AC_ARG_ENABLE(strict,
483 [AC_HELP_STRING([--disable-strict],
484 [disable coding convention checks ])],
485 [],[enable_strict=yes])
486 if test "x$enable_strict" = "xyes" ; then
487 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall"
489 AC_MSG_RESULT([$enable_strict])
491 dnl ------------------------------------------------------------------
492 AC_MSG_CHECKING([whether to compile sample library])
493 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
494 AC_ARG_ENABLE(sample,
495 [AC_HELP_STRING([--disable-sample],
496 [compile the sample library ])],
498 [if test "x$have_aliroot" = "xno" ; then
499 enable_sample="no...requires.AliRoot"
505 if test "x$enable_sample" = "xyes" ; then
506 AC_DEFINE(HLT_SAMPLE)
508 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
509 AC_MSG_RESULT([$enable_sample])
511 dnl ------------------------------------------------------------------
512 AC_MSG_CHECKING([whether to compile util library])
513 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
515 [AC_HELP_STRING([--disable-util],
516 [compile the util library ])],
518 [if test "x$have_aliroot" = "xno" ; then
519 enable_util="no...requires.AliRoot"
525 if test "x$enable_util" = "xyes" ; then
528 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
529 AC_MSG_RESULT([$enable_util])
531 dnl ------------------------------------------------------------------
532 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
534 CHECK_HLTMODULE([tpc],
536 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
537 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
538 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
539 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
541 if test "x$enable_module" = "xmissheader"; then
542 enable_module="no...missing.headers"
543 enable_tpc="no...missing.headers"
544 elif test "x$have_alitpc" = "xno" ; then
545 enable_module="no...requires.AliRoot.TPC.libraries"
546 enable_tpc="no...requires.AliRoot.TPC.libraries"
547 elif test "x$enable_module" = "xforce"; then
550 enable_tpc=$enable_module
553 if test "x$enable_tpc" = "xyes" ; then
556 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
557 AC_MSG_CHECKING([whether to compile TPC library])
558 AC_MSG_RESULT([$enable_module])
559 AC_SUBST([ALITPC_LIBS])
561 dnl ------------------------------------------------------------------
562 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
564 CHECK_HLTMODULE([rcu],
566 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
567 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
568 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
569 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
571 if test "x$enable_module" = "xmissheader"; then
572 enable_module="no...missing.headers"
573 enable_rcu="no...missing.headers"
574 elif test "x$have_alircu" = "xno" ; then
575 enable_module="no...requires.AliRoot.RAW.libraries"
576 enable_rcu="no...requires.AliRoot.RAW.libraries"
577 elif test "x$enable_module" = "xforce"; then
581 save_CPPFLAGS=$CPPFLAGS
582 save_LDFLAGS=$LDFLAGS
584 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
585 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
586 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
587 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
588 [AliAltroDecoder decoder;
589 decoder.CopyBackward(NULL, 0);])],
590 [enable_rcu=$enable_module],
591 [enable_module="no...requires.AliRoot>v4-10-Release"
592 enable_rcu="no...requires.AliRoot>v4-10-Release"])
593 CPPFLAGS=$save_CPPFLAGS
594 LDFLAGS=$save_LDFLAGS
599 if test "x$enable_rcu" = "xyes" ; then
602 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
603 AC_MSG_CHECKING([whether to compile RCU library])
604 AC_MSG_RESULT([$enable_module])
605 AC_SUBST([ALIRCU_LIBS])
607 dnl ------------------------------------------------------------------
608 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
611 CHECK_HLTMODULE([phos],
612 [], [$ALIROOT_CPPFLAGS],
613 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
614 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
615 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
617 if test "x$enable_module" = "xmissheader"; then
618 enable_module="no...requires.AliRoot>v4-05-07"
619 enable_phos="no...requires.AliRoot>v4-05-07"
620 elif test "x$enable_module" = "xforce"; then
623 have_alicalorawstream=no
624 if test ! "x$have_aliroot" = "xno" ; then
626 save_CPPFLAGS="$CPPFLAGS"
627 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
628 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
629 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
630 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
631 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
632 #include <AliCaloRawStream.h>],
634 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
635 have_alicalorawstream=yes],
637 AC_MSG_RESULT([$have_alicalorawstream])
639 CPPFLAGS="$save_CPPFLAGS"
641 if test "x$have_alicalorawstream" != "xyes"; then
642 enable_phos="no...requires.AliRoot>v4-05-07"
644 enable_phos=$enable_module
648 if test "x$enable_phos" = "xyes" ; then
650 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
652 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
653 AC_MSG_CHECKING([whether to compile PHOS library])
654 AC_MSG_RESULT([$enable_module])
655 AC_SUBST([ALIPHOS_LIBS])
657 dnl ------------------------------------------------------------------
658 AH_TEMPLATE([HLT_TRD],[hlt trd library])
661 CHECK_HLTMODULE([trd],
663 [MLP], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
664 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
665 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
667 if test "x$enable_module" = "xmissheader"; then
668 enable_module="no...requires.AliRoot>v4-07-Release"
669 enable_trd="no...requires.AliRoot>v4-07-Release"
670 elif test "x$enable_module" = "xforce"; then
673 enable_trd=$enable_module
674 if test "x$enable_trd" = "xyes" ; then
676 save_CPPFLAGS="$CPPFLAGS"
677 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
678 AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
679 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
680 [AliTRDclusterizer c;
681 c.SetRawVersion(0)])],
683 [enable_trd="no...requires.AliRoot>v4-07-Release"])
684 AC_MSG_RESULT([$enable_trd])
686 CPPFLAGS="$save_CPPFLAGS"
690 if test "x$enable_trd" = "xyes" ; then
692 ALITRD_LIBS=$ALIHLTMODULE_LIBS
694 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
695 AC_MSG_CHECKING([whether to compile TRD library])
696 AC_MSG_RESULT([$enable_module])
697 AC_SUBST([ALITRD_LIBS])
699 dnl ------------------------------------------------------------------
700 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
703 CHECK_HLTMODULE([dimuon],
704 [AliMpExMap.h AliMUONTriggerIO.h],
705 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
706 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
707 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
708 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
710 if test "x$enable_module" = "xmissheader"; then
711 enable_module="no...requires.AliRoot>=v4-08-Release"
712 enable_muon="no...requires.AliRoot>=v4-08-Release"
713 elif test "x$enable_module" = "xforce"; then
716 enable_muon=$enable_module
719 if test "x$enable_muon" = "xyes" ; then
721 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
723 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
724 AC_MSG_CHECKING([whether to compile MUON library])
725 AC_MSG_RESULT([$enable_module])
726 AC_SUBST([ALIMUON_LIBS])
728 dnl ------------------------------------------------------------------
729 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
732 CHECK_HLTMODULE([trigger],
733 [], [$ALIROOT_CPPFLAGS],
734 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
735 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
736 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
738 if test "x$enable_module" = "xmissheader"; then
739 enable_module="no...header.missing"
740 enable_trigger="no...header.missing"
741 elif test "x$enable_module" = "xforce"; then
744 enable_trigger=$enable_module
747 if test "x$enable_trigger" = "xyes" ; then
748 AC_DEFINE(HLT_TRIGGER)
749 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
751 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
752 AC_MSG_CHECKING([whether to compile Trigger library])
753 AC_MSG_RESULT([$enable_module])
754 AC_SUBST([ALITRIGGER_LIBS])
756 dnl ------------------------------------------------------------------
757 AH_TEMPLATE([HLT_ITS],[hlt its library])
760 CHECK_HLTMODULE([its],
761 [], [$ALIROOT_CPPFLAGS],
762 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
763 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
764 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
766 if test "x$enable_module" = "xmissheader"; then
767 enable_module="no...header.missing"
768 enable_its="no...header.missing"
769 elif test "x$enable_module" = "xforce"; then
772 enable_its=$enable_module
775 if test "x$enable_its" = "xyes" ; then
777 ALIITS_LIBS=$ALIHLTMODULE_LIBS
779 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
780 AC_MSG_CHECKING([whether to compile ITS library])
781 AC_MSG_RESULT([$enable_module])
782 AC_SUBST([ALIITS_LIBS])
784 dnl ------------------------------------------------------------------
785 AH_TEMPLATE([HLT_COMP],[hlt comp library])
788 CHECK_HLTMODULE([comp],
789 [], [$ALIROOT_CPPFLAGS],
790 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
791 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
792 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
794 if test "x$enable_module" = "xmissheader"; then
795 enable_module="no...header.missing"
796 enable_comp="no...header.missing"
797 elif test "x$enable_module" = "xforce"; then
800 enable_comp=$enable_module
803 if test "x$enable_comp" = "xyes" ; then
805 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
807 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
808 AC_MSG_CHECKING([whether to compile comp library])
809 AC_MSG_RESULT([$enable_module])
810 AC_SUBST([ALICOMP_LIBS])
812 dnl ------------------------------------------------------------------
813 AC_MSG_CHECKING([whether to disable AliRoot logging])
814 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
815 AC_ARG_ENABLE(aliroot-logging,
816 [AC_HELP_STRING([--disable-aliroot-logging],
817 [disable logging through AliRoot logging methods])],
818 [],[enable_aliroot_logging=no])
819 if test "x$have_aliroot" = "xno" ; then
820 enable_aliroot_logging=yes # this means 'disable'
822 if test "x$enable_aliroot_logging" != "xno" ; then
823 AC_DEFINE(NOALIROOT_LOGGING)
825 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
826 AC_MSG_RESULT([$enable_aliroot_logging])
828 dnl ------------------------------------------------------------------
829 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
830 AH_TEMPLATE([DOMC],[MC saving])
831 AC_ARG_ENABLE(mc-saving,
832 [AC_HELP_STRING([--enable-mc-saving],
833 [enable saving MC data through the chain])],
834 [],[enable_mc_saving=no])
835 if test "x$enable_mc_saving" = "xyes" ; then
838 AC_MSG_RESULT([$enable_mc_saving])
840 dnl ------------------------------------------------------------------
841 dnl certainly something old, but we keep the define
842 AC_MSG_CHECKING([whether to use ROWHOUGH])
843 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
844 AC_ARG_ENABLE(rowhough,
845 [AC_HELP_STRING([--enable-rowhough],
847 [],[enable_rowhough=no])
848 if test "x$enable_rowhough" = "xyes" ; then
849 AC_DEFINE(USEROWHOUGH)
851 AC_MSG_RESULT([$enable_rowhough])
853 dnl ------------------------------------------------------------------
854 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
855 dnl stand-alone build system. This is most likely something old we can
856 dnl get rid off later, or do something more reasonable. Since the define
857 dnl needs the quotes they have to be escaped. This works well for the
858 dnl Makefile but not for the configure script. So we have to add the
859 dnl defines after all the other checks.
860 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
861 if test ! "x$have_aliroot" = "xno" ; then
862 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
865 dnl ------------------------------------------------------------------
869 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
870 AC_PATH_PROG(PERL, perl)
871 AC_PATH_PROG(DOXYGEN, doxygen)
872 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
874 [AC_HELP_STRING([--enable-dot],
875 [enable dot documentation generator])],
879 AC_PATH_PROG(DOT, dot)
880 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
882 DOT_PATH=`dirname $DOT`
887 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
888 dnl echo $HAVE_SRC_SUBDIR
889 dnl if ! test -d $HAVE_SRC_SUBDIR; then
892 dnl AC_SUBST([HAVE_SRC_SUBDIR])
894 dnl ------------------------------------------------------------------
895 AC_MSG_NOTICE([---------------------------------------------- ])
896 AC_MSG_NOTICE([ build summary ])
897 AC_MSG_NOTICE([---------------------------------------------- ])
899 AC_CONFIG_FILES([Makefile
905 BASE/interface/Makefile
909 doc/doxymodule.conf])
911 dnl AliRoot and installation directory for libraries
913 AC_MSG_NOTICE([AliRoot: $have_aliroot])
914 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
915 if test "x$have_aliroot" != "xno"; then
916 AC_CONFIG_FILES([sim/Makefile
922 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
923 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
924 AC_MSG_NOTICE([libdir set to $libdir])
927 AC_MSG_NOTICE([compile sample library: $enable_sample])
928 if test "x$enable_sample" = "xyes"; then
929 AC_CONFIG_FILES([SampleLib/Makefile])
932 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
933 if test "x$enable_rcu" = "xyes"; then
934 AC_CONFIG_FILES([RCU/Makefile
939 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
940 if test "x$enable_tpc" = "xyes"; then
941 AC_CONFIG_FILES([TPCLib/Makefile
943 TPCLib/mapping2array.cxx
944 TPCLib/OnlineDisplay/Makefile
948 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
949 if test "x$enable_phos" = "xyes"; then
950 AC_CONFIG_FILES([PHOS/Makefile])
953 AC_MSG_NOTICE([compile TRD library: $enable_trd])
954 if test "x$enable_trd" = "xyes"; then
955 AC_CONFIG_FILES([TRD/Makefile])
958 AC_MSG_NOTICE([compile MUON library: $enable_muon])
959 if test "x$enable_muon" = "xyes"; then
960 AC_CONFIG_FILES([MUON/Makefile])
963 AC_MSG_NOTICE([compile ITS library: $enable_its])
964 if test "x$enable_its" = "xyes"; then
965 AC_CONFIG_FILES([ITS/Makefile])
968 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
969 if test "x$enable_trigger" = "xyes"; then
970 AC_CONFIG_FILES([trigger/Makefile])
973 AC_MSG_NOTICE([compile comp library: $enable_comp])
974 if test "x$enable_comp" = "xyes"; then
975 AC_CONFIG_FILES([comp/Makefile])