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)
35 AM_INIT_AUTOMAKE([-Wno-portability])
43 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
45 dnl ------------------------------------------------------------------
46 dnl A warning posted into the auto-generated files
47 dnl Does NOT concern this file ;-)
48 AUTOGENERATED_WARNING="!!!!!!! DO NOT EDIT THIS FILE !!!!!!"
49 AC_SUBST([AUTOGENERATED_WARNING])
51 dnl ------------------------------------------------------------------
55 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
56 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
58 ROOTBINDIR=`dirname $ROOTEXEC`
59 AC_SUBST([ROOTBINDIR])
61 dnl test for additional required root libraries and headers
63 if test "x$have_root" = "x1"; then
65 save_CPPFLAGS=$CPPFLAGS
68 CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
70 # we check for the libSTEER library which is linked to
71 # - the ROOT libs libGeom libMinuit libVMC libEG
72 # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
73 # - ROOT libCint needs also libdl
74 # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
76 # - from Jan 07 libESD also depends on libXMLIO
77 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
78 # - libCDB.so depends on libXMLParser since Mar 11 2009 r 31411
79 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer XMLParser'
80 for CHECKLIB in $ROOT_CHECKLIBS ; do
81 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
82 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
83 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
86 # TBuffer.h has been made pure virtual in root v5-15-02 and one
87 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
88 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
90 # TView.h has been made pure virtual right after root v5-15-02 and one
91 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
92 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
94 CPPFLAGS=$save_CPPFLAGS
100 dnl ------------------------------------------------------------------
101 # TODO: make this configurable through arguments
102 #Define whether you want to run with ALIROOT or only ROOT
103 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
104 ALIHLT_USEPACKAGE=ALIROOT
105 #ALIHLT_USEPACKAGE=ROOT
106 #ALIHLT_USEPACKAGE=STANDALONE
107 AC_DEFINE(use_aliroot)
109 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
110 save_CPPFLAGS=$CPPFLAGS
111 save_LDFLAGS=$LDFLAGS
114 dnl ------------------------------------------------------------------
115 dnl check for AliRoot features
118 AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
119 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
122 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
123 dnl ------------------------------------------------------------------
124 dnl Try to estimate the system architecture
125 case $host_os:$host_cpu in
126 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
127 linux*) alice_target='linux' ;;
128 *) alice_target='unknown' ;;
130 if test "x$alice_target" = "xunknown" ; then
131 if test -z $ALICE_TARGET ; then
132 AC_MSG_ERROR([Can not estimate system architecture.
133 To avoid the problem, set the ALICE_TARGET variable appropriately.
134 Please send the following information to Matthias.Richter@ift.uib.no:
135 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
137 AC_MSG_NOTICE([Unknown system architecture.
138 Please send the following information to Matthias.Richter@ift.uib.no:
139 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
142 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
143 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
144 overriding $ALICE_TARGET by $alice_target])
146 ALICE_TARGET=$alice_target
148 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
149 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
150 ALIROOTINCDIR=${ALICE_ROOT}/include
151 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
152 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
153 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
156 AC_MSG_CHECKING([for AliRoot])
157 if test "x$ALICE_ROOT" != "x" \
158 && test -d ${ALIROOTBINDIR} \
159 && test -d ${ALIROOTLIBDIR} \
160 && test -d ${ALIROOTINCDIR}; then
161 have_aliroot=$ALICE_ROOT
167 AC_MSG_RESULT([$have_aliroot])
169 if test ! "x$have_aliroot" = "xno" ; then
170 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
171 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
172 ALIROOT_LIBS="$ADD_ROOTLIBS"
173 save_CPPFLAGS=$CPPFLAGS
174 save_LDFLAGS=$LDFLAGS
176 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
177 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
179 # check for certain AliRoot libraries/files/features
180 # libSTEERBase present since Aug 7 2007
181 # ###########################################
182 # temporary workaround for circular dependency libSTEERbase libSTEER
183 # https://savannah.cern.ch/bugs/index.php?49914
184 # disable the sequence of checks and load libraries in parallel
185 ALIROOT_LIBS="$ALIROOT_LIBS -lAOD -lCDB -lRAWDatabase -lRAWDatarec -lESD -lSTEER"
186 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
188 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
190 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
192 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
194 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
195 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
197 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
199 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
201 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
203 AC_CHECK_LIB([$CHECKLIB],[_init],
204 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
205 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER"
207 AC_CHECK_LIB([$CHECKLIB],[_init],
208 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
209 have_alirawdata=$CHECKLIB])],
210 [# second pass with -RAWData
212 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
213 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
214 #include <AliRawReaderFile.h>
215 #include <AliRawReaderDate.h>
216 #include <AliRawReaderRoot.h>],
217 [AliRawReaderMemory mreader;
218 AliRawReaderFile freader;
219 AliRawReaderDate dreader(NULL,0);
220 AliRawReaderRoot rreader(NULL,0);])],
221 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
222 have_alirawdata=$CHECKLIB],
223 [have_alirawdata=no])
224 ]) dnl AC_CHECK_LIB RAWDatabase
225 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
226 AC_MSG_RESULT([$have_alirawdata])
228 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
230 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
232 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
234 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
237 dnl check whether AliLog supports notification callback
238 dnl 2010-03-03: revision 38921 introduces AliLog::GetRootLogger in order to make AliLog
239 dnl a pure sigleton, introduce a 2-level check here
241 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
242 have_alilog_notification=no
243 if test ! "x$have_aliroot" = "xno" ; then
244 AC_MSG_CHECKING([whether AliLog supports notification callback])
245 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
246 [AliLog* logger=AliLog::GetRootLogger();])],
247 [have_alilog_notification=yes],
248 [AC_DEFINE(NO_ALILOG_GETROOTLOGGER)
249 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
250 [AliLog::AliLogNotification fct])],
251 [have_alilog_notification=yes],
252 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
254 AC_MSG_RESULT([$have_alilog_notification])
257 if test "x$have_aliroot" = "xno" ; then
258 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
259 # but library dependencies might not be resolved completely
261 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
262 This can happen from time to time due to development in AliRoot. You can
263 force compilation of detector libs by --enable-<detector>, but be aware
264 of unresolved references at runtime.])
265 AC_MSG_WARN([ ------------------------------------------ ])
266 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
267 AC_MSG_WARN([ please include config.log ])
268 AC_MSG_WARN([ ------------------------------------------ ])
274 dnl ESD supports non-std content
277 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
278 #include <AliExternalTrackParam.h>
280 #include <TClonesArray.h>],
282 esd.CreateStdContent();
283 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
284 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
285 a->SetName("SomeObject");
287 esd.WriteToTree(tree);
288 if (!tree->FindBranch("SomeObject")) return 1;
290 [have_esd_nonstd=yes],
291 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
292 AC_MSG_CHECKING(whether ESD supports non standard content)
293 AC_MSG_RESULT([$have_esd_nonstd])
296 dnl ESD copy function added May 9 2008 rev 25667
298 if test "x$have_esd_nonstd" != "xyes"; then
300 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
305 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
306 AC_MSG_CHECKING(for ESD assignment operator)
307 AC_MSG_RESULT([$have_esd_copy])
311 dnl AliRawReaderMemory support for multiple buffers added
312 dnl revision 26829 Jun 2008
314 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
315 have_rawreadermemory_multbuffers=no
316 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
317 [AliRawReaderMemory rr;
318 rr.AddBuffer(NULL, 0, 0);])],
319 [have_rawreadermemory_multbuffers=yes],
320 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
321 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
322 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
325 dnl Changes in the magnetic field implementation
326 dnl revision 30848 Feb 1 2009
328 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
330 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMagF.h>],
331 [int test=AliMagF::k5kG;])],
332 [have_alimagf30848=yes],
333 [AC_DEFINE(HAVE_NOT_ALIMAGF30848)])
334 AC_MSG_CHECKING(AliMagF contains field definitions)
335 AC_MSG_RESULT([$have_alimagf30848])
338 dnl Cleanup of the RunLoader implementation
339 dnl revision 30859 Feb 2 2009
341 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
342 have_alirunloader30859=no
343 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRunLoader.h>],
344 [AliRunLoader* rl=AliRunLoader::Instance();])],
345 [have_alirunloader30859=yes],
346 [AC_DEFINE(HAVE_NOT_ALIRUNLOADER30859)])
347 AC_MSG_CHECKING(AliRunLoader::Instance)
348 AC_MSG_RESULT([$have_alirunloader30859])
351 AC_CHECK_HEADER([AliQAv1.h], [have_aliqav1=yes], [])
352 AM_CONDITIONAL(EN_HLT_QA, test x$have_aliqav1 = xyes)
353 AC_CHECK_HEADER([AliESDHLTDecision.h], [], [AC_DEFINE(HAVE_NOT_ALIESDHLTDECISION)])
356 dnl required header files and libraries for modules
360 dnl Check for the interface of AliExternalTrackParam which has been changed
361 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
363 externaltrackparam_version=1
364 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
365 [AliExternalTrackParam trackparam;
366 Double_t param[[5]]; Double_t covar[[15]];
367 trackparam.Set(0., 0., param, covar);])],
368 [externaltrackparam_version=2],
369 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
370 AC_MSG_CHECKING(for version of AliExternalTrackParam)
371 AC_MSG_RESULT($externaltrackparam_version)
373 dnl The AliShuttleInterface was changed in rev 29388. Some return types
374 dnl had been const, now changed according to gcc 4.3 warnings
375 AC_MSG_CHECKING(for version of AliShuttleInterface.h)
376 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
377 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
378 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
379 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
380 [class dummy : public AliShuttleInterface {
382 const UInt_t GetStartTimeDCSQuery() {;}
384 [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
385 alishuttleinterface_version=pre.rev.29388],
386 [alishuttleinterface_version=up.to.date])
387 AC_MSG_RESULT([$alishuttleinterface_version])
389 CPPFLAGS=$save_CPPFLAGS
390 LDFLAGS=$save_LDFLAGS
392 fi # if test ! "x$have_aliroot" = "xno"
395 AC_SUBST([ALICE_ROOT])
396 AC_SUBST([ALIROOT_CPPFLAGS])
397 AC_SUBST([ALIROOT_LDFLAGS])
398 AC_SUBST([ALIROOTBINDIR])
399 AC_SUBST([ALIROOTLIBDIR])
401 ALIROOT_LIBS="$ALIROOT_LIBS $ADD_ROOTLIBS"
402 AC_SUBST([ALIROOT_LIBS])
403 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
405 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
407 AC_SUBST([HLTBASE_CPPFLAGS])
408 AC_SUBST([HLTBASE_LDFLAGS])
410 dnl ------------------------------------------------------------------
411 dnl check for the HLT PubSub Framework
412 dnl namely for the existence of the HOMER library
413 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
414 dnl package. It os though possible to choose an external. library
415 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
416 dnl got the name libAliHLTHOMER
417 AC_MSG_CHECKING([for HLT PubSub Framework])
418 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
420 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
421 if test -z $with_pubsub || ! test -d $with_pubsub ; then
424 AC_MSG_RESULT([$with_pubsub])
428 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
429 if test "x$with_pubsub" != "xno" ; then
430 save_CPPFLAGS=$CPPFLAGS
431 save_LDFLAGS=$LDFLAGS
433 # currently the different versions of the HLT PubSub framework have a different
435 if test -d ${with_pubsub}/include/HOMER ; then
436 # the 'early' location of the include files with separated HOMER sub dirs
437 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
438 elif test -d ${with_pubsub}/include/Util/HOMER ; then
439 # location for HLT Framework versions after Sep 2006
440 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
441 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
442 # fall back if include files were not installed (versions after Sep 06)
443 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
445 # fall back if include files were not installed (versions before Sep 06)
446 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
448 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
450 AC_ARG_ENABLE(pubsub-debug,
451 [AC_HELP_STRING([--disable-pubsub-debug],
452 [force the production version of the PubSub framework])],
453 [],[enable_pubsub_debug=yes])
455 HOMER_TARGET="`uname -s`-`uname -m`"
456 AC_MSG_CHECKING([for HLT PubSub Framework release type])
457 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
458 homer_type="production"
459 HOMER_TARGET="${HOMER_TARGET}-release"
460 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
462 HOMER_TARGET="${HOMER_TARGET}-debug"
464 AC_MSG_RESULT([${homer_type}])
465 HOMERREADER_HEADER=HOMERReader.h
466 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
467 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
468 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
469 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
470 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
474 AC_CHECK_HEADER([$HOMERREADER_HEADER],
475 [ AC_CHECK_LIB([HOMER],[_init],
477 HOMER_LIBS="-lHOMER"],
478 [ AC_CHECK_LIB([HOMERReader],[_init],
480 HOMER_LIBS="-lHOMERReader"])])
481 LIBS="$LIBS $HOMER_LIBS"
482 AC_MSG_CHECKING([version of HOMER library])
483 dnl The Homer library has no versioning, so we do our own
484 dnl version description
485 dnl ----------------------------------------------------------------------
486 dnl 1 inintial version
487 dnl 2 GetBlockStatusFlags added to the interface
488 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
489 [HOMERReader reader("dummy", 0);
490 reader.GetBlockStatusFlags(0);])],
493 AC_MSG_RESULT([$HOMER_VERSION])
495 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
499 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
501 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
502 HOMERREADER_HEADER=AliHLTHOMERReader.h
503 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
509 if test "x$with_homer" = "xno" ; then
514 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
515 AC_DEFINE(HAVE_HOMERREADER)
517 CPPFLAGS="$save_CPPFLAGS"
518 LDFLAGS="$save_LDFLAGS"
521 AC_SUBST([HOMERREADER_HEADER])
522 AC_SUBST([HOMER_INBUILT_LIB])
523 AC_SUBST([HOMER_CPPFLAGS])
524 AC_SUBST([HOMER_LDFLAGS])
525 AC_SUBST([HOMER_LIBDIR])
526 AC_SUBST([HOMER_BINDIR])
527 AC_SUBST([HOMER_LIBS])
529 dnl ------------------------------------------------------------------
531 [AC_HELP_STRING([--disable-all],
532 [disable all detector modules, individual modules can be switched on by --enable-det])],
533 [disable_all=yes],[])
535 dnl ------------------------------------------------------------------
536 AC_MSG_CHECKING([whether to impose strict coding conventions])
537 AC_ARG_ENABLE(strict,
538 [AC_HELP_STRING([--disable-strict],
539 [disable coding convention checks ])],
540 [],[enable_strict=yes])
541 if test "x$enable_strict" = "xyes" ; then
542 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
544 AC_MSG_RESULT([$enable_strict])
546 dnl ------------------------------------------------------------------
547 AC_MSG_CHECKING([whether to enable component statistics])
548 AC_ARG_ENABLE(component-stat,
549 [AC_HELP_STRING([--enable-component-stat],
550 [enable component statistics ])],
553 dnl enable component statistics if not explicitely disabled
554 if test "x$enable_component_stat" != "xno" &&
555 test "x$enable_debug" = "xyes" ; then
556 enable_component_stat=yes.debug
559 if test "x$enable_component_stat" = "x" ; then
560 enable_component_stat=no
563 if test "x$enable_component_stat" != "xno" ; then
564 AC_DEFINE(HLT_COMPONENT_STATISTICS)
566 AC_MSG_RESULT([$enable_component_stat])
568 dnl ------------------------------------------------------------------
569 dnl ---- module checks
570 dnl ------------------------------------------------------------------
571 save_CPPFLAGS=$CPPFLAGS
572 save_LDFLAGS=$LDFLAGS
575 dnl ------------------------------------------------------------------
576 AC_MSG_NOTICE([-------------------------------------------------])
577 AC_MSG_NOTICE([checking dependencies for HLTbase library])
578 HLTBASE_CHECKLIBS='XMLParser'
579 for CHECKLIB in $HLTBASE_CHECKLIBS ; do
580 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
581 LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS"
582 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"])
584 AC_SUBST([ALIHLTBASE_LIBS])
586 dnl ------------------------------------------------------------------
587 AC_MSG_CHECKING([whether to compile sample library])
588 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
589 AC_ARG_ENABLE(sample,
590 [AC_HELP_STRING([--disable-sample],
591 [compile the sample library ])],
593 [if test "x$have_aliroot" = "xno" ; then
594 enable_sample="no...requires.AliRoot"
600 if test "x$enable_sample" = "xyes" ; then
601 AC_DEFINE(HLT_SAMPLE)
603 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
604 AC_MSG_RESULT([$enable_sample])
606 dnl ------------------------------------------------------------------
607 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
609 CHECK_HLTMODULE([util],
611 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6],
612 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
613 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
614 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
616 if test "x$enable_module" = "xmissheader"; then
617 enable_module="no...missing.headers"
618 enable_util=$enable_module
619 elif test "x$enable_module" = "xforce"; then
622 enable_util=$enable_module
624 if test "x$enable_util" = "xyes" ; then
626 ALIUTIL_LIBS=$ALIHLTMODULE_LIBS
628 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
629 AC_MSG_CHECKING([whether to compile Util library])
630 AC_MSG_RESULT([$enable_module])
631 AC_SUBST([ALIUTIL_LIBS])
633 dnl ------------------------------------------------------------------
634 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
637 CHECK_HLTMODULE([tpc],
639 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
640 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
641 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
642 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
644 if test "x$enable_module" = "xmissheader"; then
645 enable_module="no...missing.headers"
646 enable_tpc=$enable_module
647 elif test "x$enable_module" = "xforce"; then
650 enable_tpc=$enable_module
653 if test "x$enable_tpc" = "xyes" ; then
656 ALITPC_LIBS=$ALIHLTMODULE_LIBS
658 dnl Check for functionality in the TPC reconstruction required for online
661 have_tpc_hltoffline_rec=no
662 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
663 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
664 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
665 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
666 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
667 #include <AliTPCclustererMI.h>
668 #include <TObjArray.h>],
669 [AliTPCtrackerMI tracker;
670 TObjArray* array=NULL;
671 tracker.LoadClusters(array);
672 AliTPCclustererMI cl(NULL, NULL);
673 cl.GetOutputClonesArray();])],
674 [have_tpc_hltoffline_rec=yes],
675 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
676 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
678 have_alitpcclusterparam_r40128=no
679 AC_MSG_CHECKING([checking for AliTPCClusterParam r40128])
680 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTPCClusterParam.h>],
681 [AliTPCClusterParam param;
682 float test=param.ParamS0Par(0,0,0)]);],
683 [have_alitpcclusterparam_r40128=yes],
684 [AC_DEFINE(HAVE_NOT_ALITPCCLUSTERPARAM_r40128)])
685 AC_MSG_RESULT([$have_alitpcclusterparam_r40128])
690 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
691 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
692 AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)])
695 if test ! "x$have_aliroot" = "xno" ; then
696 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
697 # which is stored in the TPC/mapping/Patchx.data files from
698 # AliRoot version v4-04-Release (May 2006)
699 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
700 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
701 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
702 [have_tpc_mapping=yes
703 AC_SUBST(TPC_PAD_MAPPING_PATH)
704 AC_DEFINE(HAVE_TPC_MAPPING)],
708 AC_MSG_CHECKING([for TPC mapping layout])
709 AC_MSG_RESULT([$have_tpc_mapping])
713 enable_module=$enable_tpc
715 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
716 AC_MSG_CHECKING([whether to compile TPC library])
717 AC_MSG_RESULT([$enable_module])
718 AC_SUBST([ALITPC_LIBS])
720 dnl ------------------------------------------------------------------
721 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
723 CHECK_HLTMODULE([rcu],
725 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
726 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
727 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
728 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
730 if test "x$enable_module" = "xmissheader"; then
731 enable_module="no...missing.headers"
732 enable_rcu=$enable_module
733 elif test "x$enable_module" = "xforce"; then
737 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
738 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
739 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
740 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
741 [AliAltroDecoder decoder;
742 decoder.CopyBackward(NULL, 0);])],
743 [enable_rcu=$enable_module],
744 [enable_module="no...requires.AliRoot>v4-10-Release"
745 enable_rcu="no...requires.AliRoot>v4-10-Release"])
746 CPPFLAGS=$save_CPPFLAGS
747 LDFLAGS=$save_LDFLAGS
752 if test "x$enable_rcu" = "xyes" ; then
755 enable_module=$enable_rcu
757 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
758 AC_MSG_CHECKING([whether to compile RCU library])
759 AC_MSG_RESULT([$enable_module])
760 AC_SUBST([ALIRCU_LIBS])
762 dnl ------------------------------------------------------------------
763 AH_TEMPLATE([HLT_CALO],[hlt calo(rimeter) library])
766 CHECK_HLTMODULE([calo],
767 [], [$ALIROOT_CPPFLAGS],
768 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
769 [EMCALUtils PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
770 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
772 if test "x$enable_module" = "xmissheader"; then
773 enable_module="no...missing.headers"
774 enable_calo=$enable_module
775 elif test "x$enable_module" = "xforce"; then
778 have_alicalorawstream=no
779 if test ! "x$have_aliroot" = "xno" ; then
781 save_CPPFLAGS="$CPPFLAGS"
782 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
783 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
784 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
785 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
786 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
787 #include <AliCaloRawStream.h>],
789 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
790 have_alicalorawstream=yes],
792 AC_MSG_RESULT([$have_alicalorawstream])
794 have_aliesdcalocluster_r38477=no
795 AC_MSG_CHECKING([for AliESDCaloCluster r38477])
796 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDCaloCluster.h>],
797 [AliESDCaloCluster cluster;
798 cluster.SetTrackDistance(0.0, 0.0)]);],
799 [have_aliesdcalocluster_r38477=yes],
800 [AC_DEFINE(HAVE_NOT_ALIESDCALOCLUSTER_r38477)])
801 AC_MSG_RESULT([$have_aliesdcalocluster_r38477])
804 CPPFLAGS="$save_CPPFLAGS"
806 if test "x$have_alicalorawstream" != "xyes"; then
807 enable_calo="no...requires.AliRoot>v4-05-07"
809 enable_calo=$enable_module
813 if test "x$enable_calo" = "xyes" ; then
815 ALICALO_LIBS=$ALIHLTMODULE_LIBS
817 enable_module=$enable_calo
819 AM_CONDITIONAL(EN_HLT_CALO, test x$enable_calo = xyes)
820 AC_MSG_CHECKING([whether to compile CALO library])
821 AC_MSG_RESULT([$enable_module])
822 AC_SUBST([ALICALO_LIBS])
824 dnl ------------------------------------------------------------------
825 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
828 CHECK_HLTMODULE([phos],
829 [], [$ALIROOT_CPPFLAGS],
830 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
831 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
832 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
834 if test "x$enable_module" = "xmissheader"; then
835 enable_module="no...requires.AliRoot>v4-05-07"
836 enable_phos=$enable_module
837 elif test "x$enable_module" = "xforce"; then
840 have_alicalorawstream=no
841 if test ! "x$have_aliroot" = "xno" ; then
843 save_CPPFLAGS="$CPPFLAGS"
844 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
845 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
846 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
847 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
848 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
849 #include <AliCaloRawStream.h>],
851 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
852 have_alicalorawstream=yes],
854 AC_MSG_RESULT([$have_alicalorawstream])
855 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
856 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
857 [AliPHOSRecoParam param;
858 param.GetEMCClusteringThreshold()])],
859 [have_aliphosrecoparam=yes],
860 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
861 AC_MSG_RESULT([$have_aliphosrecoparam])
863 CPPFLAGS="$save_CPPFLAGS"
865 if test "x$have_alicalorawstream" != "xyes"; then
866 enable_phos="no...requires.AliRoot>v4-05-07"
868 enable_phos=$enable_module
872 if test "x$enable_phos" = "xyes" ; then
874 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
876 enable_module=$enable_phos
878 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
879 AC_MSG_CHECKING([whether to compile PHOS library])
880 AC_MSG_RESULT([$enable_module])
881 AC_SUBST([ALIPHOS_LIBS])
883 dnl ------------------------------------------------------------------
884 AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
887 CHECK_HLTMODULE([emcal],
888 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/VZERO],
889 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
890 [EMCALrec EMCALsim EMCALbase EMCALUtils VZERObase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
891 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
893 if test "x$enable_module" = "xmissheader"; then
894 enable_module="no...header.missing"
895 enable_emcal=$enable_module
896 elif test "x$enable_module" = "xforce"; then
899 enable_emcal=$enable_module
902 if test "x$enable_emcal" = "xyes" ; then
904 ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
906 enable_module=$enable_emcal
908 AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
909 AC_MSG_CHECKING([whether to compile EMCAL library])
910 AC_MSG_RESULT([$enable_module])
911 AC_SUBST([ALIEMCAL_LIBS])
913 dnl ------------------------------------------------------------------
914 AH_TEMPLATE([HLT_TRD],[hlt trd library])
917 CHECK_HLTMODULE([trd],
919 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
920 [STAT TRDbase TRDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
921 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
923 if test "x$enable_module" = "xmissheader"; then
924 enable_module="no...requires.AliRoot>v4-07-Release"
925 enable_trd=$enable_module
926 elif test "x$enable_module" = "xforce"; then
929 enable_trd=$enable_module
930 if test "x$enable_trd" = "xyes" ; then
932 save_CPPFLAGS="$CPPFLAGS"
933 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
934 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
935 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
936 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
937 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
938 # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
939 # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009
940 # changed to AliTRDclusterizer::GetNTimeBins according to revision 37102 Sun Nov 22 2009
941 AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
942 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
943 [AliTRDclusterizer c;
946 [enable_trd="no...requires.AliRoot>v4-18-Release"])
947 AC_MSG_RESULT([$enable_trd])
949 if test "x$enable_trd" = "xyes" ; then
950 have_alitrdseedv1_r39693=no
951 AC_MSG_CHECKING([checking for AliTRDseedV1 r39693])
952 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDseedV1.h>],
954 seed.SetC(0.0, 1)]);],
955 [have_alitrdseedv1_r39693=yes],
956 [AC_DEFINE(HAVE_NOT_ALITRD_SEEDV1_r39693)])
957 AC_MSG_RESULT([$have_alitrdseedv1_r39693])
959 have_alitrdrawstream_r39608=no
960 AC_MSG_CHECKING([checking for AliTRDrawStream r39608])
961 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrawStreamBase.h>],
962 [AliTRDrawStreamBase::SetRawStreamVersion(AliTRDrawStreamBase::kTRDdefaultStream)]);],
963 [have_alitrdrawstream_r39608=yes],
964 [AC_DEFINE(HAVE_NOT_ALITRD_RAWSTREAM_r39608)])
965 AC_MSG_RESULT([$have_alitrdrawstream_r39608])
969 CPPFLAGS="$save_CPPFLAGS"
973 if test "x$enable_trd" = "xyes" ; then
975 ALITRD_LIBS=$ALIHLTMODULE_LIBS
977 enable_module=$enable_trd
979 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
980 AC_MSG_CHECKING([whether to compile TRD library])
981 AC_MSG_RESULT([$enable_module])
982 AC_SUBST([ALITRD_LIBS])
984 dnl ------------------------------------------------------------------
985 AH_TEMPLATE([HLT_FMD],[hlt fmd library])
987 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
988 CHECK_HLTMODULE([fmd],
990 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
991 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
992 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
994 if test "x$enable_module" = "xmissheader"; then
995 enable_module="no...missing.headers"
996 enable_fmd=$enable_module
997 elif test "x$enable_module" = "xforce"; then
1000 enable_fmd=$enable_module
1003 if test "x$enable_fmd" = "xyes" ; then
1005 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
1007 enable_module=$enable_fmd
1009 AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
1010 AC_MSG_CHECKING([whether to compile FMD library])
1011 AC_MSG_RESULT([$enable_module])
1012 AC_SUBST([ALIFMD_LIBS])
1014 dnl ------------------------------------------------------------------
1015 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
1018 CHECK_HLTMODULE([dimuon],
1019 [AliMpExMap.h AliMUONTriggerIO.h],
1020 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
1021 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1022 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1023 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1025 if test "x$enable_module" = "xmissheader"; then
1026 enable_module="no...requires.AliRoot>=v4-08-Release"
1027 enable_muon=$enable_module
1028 elif test "x$enable_module" = "xforce"; then
1031 enable_muon=$enable_module
1034 if test "x$enable_muon" = "xyes" ; then
1036 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
1038 save_CPPFLAGS="$CPPFLAGS"
1041 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
1043 have_muon_digitmaker_getrawstream=no
1044 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
1045 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
1046 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1047 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1048 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
1049 [AliMUONDigitMaker dm;
1050 dm.GetRawStreamTracker();])],
1051 [have_muon_digitmaker_getrawstream=yes],
1052 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
1054 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
1057 dnl Check for AliMpPad::GetPositionX/Y
1058 dnl change of implementation in MUON code
1059 dnl revision 31769, Wed Apr 1 2009
1061 have_muon_alimppad_getposition=no
1062 AC_MSG_CHECKING(for GetPosition methods of AliMpPad)
1063 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping"
1064 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1065 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1066 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMpPad.h>],
1068 pad.GetPositionX();])],
1069 [have_muon_alimppad_getposition=yes],
1070 [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)])
1072 AC_MSG_RESULT([$have_muon_alimppad_getposition])
1074 CPPFLAGS="$save_CPPFLAGS"
1078 enable_module=$enable_muon
1080 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
1081 AC_MSG_CHECKING([whether to compile MUON library])
1082 AC_MSG_RESULT([$enable_module])
1083 AC_SUBST([ALIMUON_LIBS])
1085 dnl ------------------------------------------------------------------
1086 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
1089 CHECK_HLTMODULE([trigger],
1090 [], [$ALIROOT_CPPFLAGS],
1091 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1092 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1093 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1095 if test "x$enable_module" = "xmissheader"; then
1096 enable_module="no...header.missing"
1097 enable_trigger=$enable_module
1098 elif test "x$enable_module" = "xforce"; then
1099 enable_trigger="yes"
1101 enable_trigger=$enable_module
1104 if test "x$enable_trigger" = "xyes" ; then
1105 AC_DEFINE(HLT_TRIGGER)
1106 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
1108 enable_module=$enable_trigger
1110 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
1111 AC_MSG_CHECKING([whether to compile Trigger library])
1112 AC_MSG_RESULT([$enable_module])
1113 AC_SUBST([ALITRIGGER_LIBS])
1115 dnl ------------------------------------------------------------------
1116 AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
1119 CHECK_HLTMODULE([global],
1120 [], [$ALIROOT_CPPFLAGS],
1121 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1122 [PHOSUtils ], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1123 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1125 if test "x$enable_module" = "xmissheader"; then
1126 enable_module="no...header.missing"
1127 enable_global=$enable_module
1128 elif test "x$enable_module" = "xforce"; then
1131 enable_global=$enable_module
1132 if test "x$enable_global" = "xyes" ; then
1134 save_CPPFLAGS="$CPPFLAGS"
1135 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
1136 AC_MSG_CHECKING([for required functions in AliESDtrack])
1137 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>],
1139 t.SetGlobalChi2(0)])],
1141 [enable_global="no...requires.AliRoot>v4-17-Release"])
1142 AC_MSG_RESULT([$enable_global])
1144 CPPFLAGS="$save_CPPFLAGS"
1148 if test "x$enable_global" = "xyes" ; then
1149 AC_DEFINE(HLT_GLOBAL)
1150 ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
1152 enable_module=$enable_global
1154 AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
1155 AC_MSG_CHECKING([whether to compile Global library])
1156 AC_MSG_RESULT([$enable_module])
1157 AC_SUBST([ALIGLOBAL_LIBS])
1159 dnl ------------------------------------------------------------------
1160 AH_TEMPLATE([HLT_JET],[hlt jet library])
1163 ALIFASTJET_INCFLAGS=
1166 AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
1167 [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
1168 [ test -n $FASTJET && with_fastjet=$FASTJET ])
1170 if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
1171 ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
1172 ALIFASTJET_HEADER="fastjet/PseudoJet.hh"
1173 ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
1174 ALIFASTJET_LIBS="CGAL fastjet"
1179 CHECK_HLTMODULE([jet],
1180 [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
1181 [$ALIFASTJET_LIBS], [$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
1182 [AOD ESD ANALYSIS ANALYSISalice JETAN],
1183 [-L$ROOTLIBDIR $ALIROOT_LDFLAGS $ALIFASTJET_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
1184 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1186 if test "x$enable_module" = "xmissheader"; then
1187 enable_module="no...header.missing"
1188 enable_jet=$enable_module
1189 elif test "x$enable_module" = "xforce"; then
1192 enable_jet=$enable_module
1195 if test "x$enable_jet" = "xyes" ; then
1197 ALIJET_LIBS="$ALIHLTMODULE_LIBS"
1199 if test "x$with_fastjet" != "xno"; then
1200 AC_DEFINE(HAVE_FASTJET)
1201 AC_DEFINE(WITHFASTJET)
1202 ALIJET_LIBS="$ALIJET_LIBS $FASTJET_LDFLAGS"
1204 AC_MSG_CHECKING([compilation with FASTJET package])
1205 AC_MSG_RESULT($with_fastjet)
1208 enable_module=$enable_jet
1211 AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
1212 AC_MSG_CHECKING([whether to compile Jet library])
1213 AC_MSG_RESULT([$enable_module])
1214 AC_SUBST([ALIJET_LIBS])
1216 dnl ------------------------------------------------------------------
1217 AH_TEMPLATE([HLT_ITS],[hlt its library])
1220 CHECK_HLTMODULE([its],
1221 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
1222 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1223 [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1224 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1226 if test "x$enable_module" = "xmissheader"; then
1227 enable_module="no...header.missing"
1228 enable_its=$enable_module
1229 elif test "x$enable_module" = "xforce"; then
1232 enable_its=$enable_module
1233 if test "x$enable_its" = "xyes" ; then
1235 save_CPPFLAGS="$CPPFLAGS"
1236 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1237 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1238 # require AliVertexer::GetNominalPos()
1239 AC_MSG_CHECKING([for required functions in AliITSVertexer])
1240 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
1242 v.GetNominalPos()])],
1244 [enable_its="no...requires.AliRoot>v4-13-Release"])
1245 AC_MSG_RESULT([$enable_its])
1247 CPPFLAGS="$save_CPPFLAGS"
1251 if test "x$enable_its" = "xyes" ; then
1253 ALIITS_LIBS=$ALIHLTMODULE_LIBS
1255 enable_module=$enable_its
1257 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1258 AC_MSG_CHECKING([whether to compile ITS library])
1259 AC_MSG_RESULT([$enable_module])
1260 AC_SUBST([ALIITS_LIBS])
1262 dnl ------------------------------------------------------------------
1263 AH_TEMPLATE([HLT_COMP],[hlt comp library])
1266 CHECK_HLTMODULE([comp],
1267 [], [$ALIROOT_CPPFLAGS],
1268 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1269 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1270 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1272 if test "x$enable_module" = "xmissheader"; then
1273 enable_module="no...header.missing"
1274 enable_comp=$enable_module
1275 elif test "x$enable_module" = "xforce"; then
1278 enable_comp=$enable_module
1281 if test "x$enable_comp" = "xyes" ; then
1283 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
1285 enable_module=$enable_comp
1287 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1288 AC_MSG_CHECKING([whether to compile comp library])
1289 AC_MSG_RESULT([$enable_module])
1290 AC_SUBST([ALICOMP_LIBS])
1292 dnl ------------------------------------------------------------------
1293 AC_MSG_CHECKING([whether to disable AliRoot logging])
1294 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1295 AC_ARG_ENABLE(aliroot-logging,
1296 [AC_HELP_STRING([--disable-aliroot-logging],
1297 [disable logging through AliRoot logging methods])],
1298 [],[enable_aliroot_logging=no])
1299 if test "x$have_aliroot" = "xno" ; then
1300 enable_aliroot_logging=yes # this means 'disable'
1302 if test "x$enable_aliroot_logging" != "xno" ; then
1303 AC_DEFINE(NOALIROOT_LOGGING)
1305 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1306 AC_MSG_RESULT([$enable_aliroot_logging])
1308 dnl ------------------------------------------------------------------
1309 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1310 AH_TEMPLATE([DOMC],[MC saving])
1311 AC_ARG_ENABLE(mc-saving,
1312 [AC_HELP_STRING([--enable-mc-saving],
1313 [enable saving MC data through the chain])],
1314 [],[enable_mc_saving=no])
1315 if test "x$enable_mc_saving" = "xyes" ; then
1318 AC_MSG_RESULT([$enable_mc_saving])
1320 dnl ------------------------------------------------------------------
1321 dnl certainly something old, but we keep the define
1322 AC_MSG_CHECKING([whether to use ROWHOUGH])
1323 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1324 AC_ARG_ENABLE(rowhough,
1325 [AC_HELP_STRING([--enable-rowhough],
1327 [],[enable_rowhough=no])
1328 if test "x$enable_rowhough" = "xyes" ; then
1329 AC_DEFINE(USEROWHOUGH)
1331 AC_MSG_RESULT([$enable_rowhough])
1333 dnl ------------------------------------------------------------------
1334 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1335 dnl stand-alone build system. This is most likely something old we can
1336 dnl get rid off later, or do something more reasonable. Since the define
1337 dnl needs the quotes they have to be escaped. This works well for the
1338 dnl Makefile but not for the configure script. So we have to add the
1339 dnl defines after all the other checks.
1340 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1341 if test ! "x$have_aliroot" = "xno" ; then
1342 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1345 dnl ------------------------------------------------------------------
1349 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1350 AC_PATH_PROG(PERL, perl)
1351 AC_PATH_PROG(DOXYGEN, doxygen)
1353 [AC_HELP_STRING([--enable-dot],
1354 [enable dot documentation generator])],
1358 AC_PATH_PROG(DOT, dot)
1359 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1361 DOT_PATH=`dirname $DOT`
1364 AC_MSG_CHECKING([for documentation mode])
1366 [AC_HELP_STRING([--disable-doc],
1367 [disable documentation build; monolithic build --enable-doc=mono ])],
1368 [],[enable_doc=modules])
1370 if test "x$DOXYGEN" = "x" ; then
1371 enable_doc=no.doxygen
1372 elif test "x$enable_doc" = "xyes" ; then
1374 elif test ! "x$enable_doc" = "xmono" && \
1375 test ! "x$enable_doc" = "xmodules" && \
1376 test ! "x$enable_doc" = "xno"; then
1378 AC_MSG_WARN([unknown option])
1380 if test "x$enable_doc" = "xno" ; then
1385 AC_MSG_RESULT([$enable_doc])
1386 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1387 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1388 AC_SUBST([HAVE_DOT])
1389 AC_SUBST([DOT_PATH])
1391 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1392 dnl echo $HAVE_SRC_SUBDIR
1393 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1394 dnl HAVE_SRC_SUBDIR=
1396 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1398 dnl ------------------------------------------------------------------
1399 AC_MSG_NOTICE([---------------------------------------------- ])
1400 AC_MSG_NOTICE([ build summary ])
1401 AC_MSG_NOTICE([---------------------------------------------- ])
1403 AC_CONFIG_FILES([Makefile
1409 BASE/util/test/Makefile
1410 BASE/interface/Makefile
1412 BASE/interface/test/Makefile
1415 doc/doxymodule.conf])
1417 dnl AliRoot and installation directory for libraries
1419 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1420 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1421 if test "x$have_aliroot" != "xno"; then
1422 AC_CONFIG_FILES([sim/Makefile
1425 rec/startAliEVE-barrel-tracks.sh
1432 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1433 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1434 AC_MSG_NOTICE([libdir set to $libdir])
1437 AC_MSG_NOTICE([compile sample library: $enable_sample])
1438 if test "x$enable_sample" = "xyes"; then
1439 AC_CONFIG_FILES([SampleLib/Makefile])
1442 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1443 if test "x$enable_rcu" = "xyes"; then
1444 AC_CONFIG_FILES([RCU/Makefile
1449 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1450 if test "x$enable_tpc" = "xyes"; then
1451 AC_CONFIG_FILES([TPCLib/Makefile
1452 TPCLib/test/Makefile
1453 TPCLib/mapping2array.cxx
1455 TPCLib/calibration/Makefile
1459 AC_MSG_NOTICE([compile CALO library: $enable_calo])
1460 if test "x$enable_calo" = "xyes"; then
1461 AC_CONFIG_FILES([CALO/Makefile
1462 CALO/test/Makefile])
1465 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1466 if test "x$enable_phos" = "xyes"; then
1467 AC_CONFIG_FILES([PHOS/Makefile])
1470 AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1471 if test "x$enable_emcal" = "xyes"; then
1472 AC_CONFIG_FILES([EMCAL/Makefile])
1475 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1476 if test "x$enable_trd" = "xyes"; then
1477 AC_CONFIG_FILES([TRD/Makefile])
1480 AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1481 if test "x$enable_fmd" = "xyes"; then
1482 AC_CONFIG_FILES([FMD/Makefile])
1485 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1486 if test "x$enable_muon" = "xyes"; then
1487 AC_CONFIG_FILES([MUON/Makefile])
1490 AC_MSG_NOTICE([compile ITS library: $enable_its])
1491 if test "x$enable_its" = "xyes"; then
1492 AC_CONFIG_FILES([ITS/Makefile])
1495 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1496 if test "x$enable_trigger" = "xyes"; then
1497 AC_CONFIG_FILES([trigger/Makefile
1498 trigger/test/Makefile])
1501 AC_MSG_NOTICE([compile global library: $enable_global])
1502 if test "x$enable_global" = "xyes"; then
1503 AC_CONFIG_FILES([global/Makefile])
1506 AC_MSG_NOTICE([compile jet library: $enable_jet])
1507 if test "x$enable_jet" = "xyes"; then
1508 AC_CONFIG_FILES([JET/Makefile])
1511 AC_MSG_NOTICE([compile comp library: $enable_comp])
1512 if test "x$enable_comp" = "xyes"; then
1513 AC_CONFIG_FILES([comp/Makefile])