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 # - libCDB.so depends on libGui.so since May 14 2010 r 41238
80 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer XMLParser Gui'
81 for CHECKLIB in $ROOT_CHECKLIBS ; do
82 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
83 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
84 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
87 # TBuffer.h has been made pure virtual in root v5-15-02 and one
88 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
89 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
91 # TView.h has been made pure virtual right after root v5-15-02 and one
92 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
93 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
95 CPPFLAGS=$save_CPPFLAGS
101 dnl ------------------------------------------------------------------
102 # TODO: make this configurable through arguments
103 #Define whether you want to run with ALIROOT or only ROOT
104 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
105 ALIHLT_USEPACKAGE=ALIROOT
106 #ALIHLT_USEPACKAGE=ROOT
107 #ALIHLT_USEPACKAGE=STANDALONE
108 AC_DEFINE(use_aliroot)
110 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
111 save_CPPFLAGS=$CPPFLAGS
112 save_LDFLAGS=$LDFLAGS
115 dnl ------------------------------------------------------------------
116 dnl check for AliRoot features
119 AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
120 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
123 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
124 dnl ------------------------------------------------------------------
125 dnl Try to estimate the system architecture
126 case $host_os:$host_cpu in
127 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
128 linux*) alice_target='linux' ;;
129 *) alice_target='unknown' ;;
131 if test "x$alice_target" = "xunknown" ; then
132 if test -z $ALICE_TARGET ; then
133 AC_MSG_ERROR([Can not estimate system architecture.
134 To avoid the problem, set the ALICE_TARGET variable appropriately.
135 Please send the following information to Matthias.Richter@ift.uib.no:
136 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
138 AC_MSG_NOTICE([Unknown system architecture.
139 Please send the following information to Matthias.Richter@ift.uib.no:
140 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
143 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
144 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
145 overriding $ALICE_TARGET by $alice_target])
147 ALICE_TARGET=$alice_target
149 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
150 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
151 ALIROOTINCDIR=${ALICE_ROOT}/include
152 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
153 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
154 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
157 AC_MSG_CHECKING([for AliRoot])
158 if test "x$ALICE_ROOT" != "x" \
159 && test -d ${ALIROOTBINDIR} \
160 && test -d ${ALIROOTLIBDIR} \
161 && test -d ${ALIROOTINCDIR}; then
162 have_aliroot=$ALICE_ROOT
168 AC_MSG_RESULT([$have_aliroot])
170 if test ! "x$have_aliroot" = "xno" ; then
171 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
172 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
173 ALIROOT_LIBS="$ADD_ROOTLIBS"
174 save_CPPFLAGS=$CPPFLAGS
175 save_LDFLAGS=$LDFLAGS
177 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
178 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
180 # check for certain AliRoot libraries/files/features
181 # libSTEERBase present since Aug 7 2007
182 # ###########################################
183 # temporary workaround for circular dependency libSTEERbase libSTEER
184 # https://savannah.cern.ch/bugs/index.php?49914
185 # disable the sequence of checks and load libraries in parallel
186 ALIROOT_LIBS="$ALIROOT_LIBS -lAOD -lCDB -lRAWDatabase -lRAWDatarec -lESD -lSTEER"
187 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
189 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
191 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
193 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
195 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
196 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
198 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
200 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
202 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
204 AC_CHECK_LIB([$CHECKLIB],[_init],
205 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
206 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER"
208 AC_CHECK_LIB([$CHECKLIB],[_init],
209 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
210 have_alirawdata=$CHECKLIB])],
211 [# second pass with -RAWData
213 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
214 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
215 #include <AliRawReaderFile.h>
216 #include <AliRawReaderDate.h>
217 #include <AliRawReaderRoot.h>],
218 [AliRawReaderMemory mreader;
219 AliRawReaderFile freader;
220 AliRawReaderDate dreader(NULL,0);
221 AliRawReaderRoot rreader(NULL,0);])],
222 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
223 have_alirawdata=$CHECKLIB],
224 [have_alirawdata=no])
225 ]) dnl AC_CHECK_LIB RAWDatabase
226 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
227 AC_MSG_RESULT([$have_alirawdata])
229 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
231 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
233 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
235 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
238 dnl check whether AliLog supports notification callback
239 dnl 2010-03-03: revision 38921 introduces AliLog::GetRootLogger in order to make AliLog
240 dnl a pure sigleton, introduce a 2-level check here
242 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
243 have_alilog_notification=no
244 if test ! "x$have_aliroot" = "xno" ; then
245 AC_MSG_CHECKING([whether AliLog supports notification callback])
246 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
247 [AliLog* logger=AliLog::GetRootLogger();])],
248 [have_alilog_notification=yes],
249 [AC_DEFINE(NO_ALILOG_GETROOTLOGGER)
250 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
251 [AliLog::AliLogNotification fct])],
252 [have_alilog_notification=yes],
253 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
255 AC_MSG_RESULT([$have_alilog_notification])
258 if test "x$have_aliroot" = "xno" ; then
259 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
260 # but library dependencies might not be resolved completely
262 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
263 This can happen from time to time due to development in AliRoot. You can
264 force compilation of detector libs by --enable-<detector>, but be aware
265 of unresolved references at runtime.])
266 AC_MSG_WARN([ ------------------------------------------ ])
267 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
268 AC_MSG_WARN([ please include config.log ])
269 AC_MSG_WARN([ ------------------------------------------ ])
275 dnl ESD supports non-std content
278 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
279 #include <AliExternalTrackParam.h>
281 #include <TClonesArray.h>],
283 esd.CreateStdContent();
284 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
285 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
286 a->SetName("SomeObject");
288 esd.WriteToTree(tree);
289 if (!tree->FindBranch("SomeObject")) return 1;
291 [have_esd_nonstd=yes],
292 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
293 AC_MSG_CHECKING(whether ESD supports non standard content)
294 AC_MSG_RESULT([$have_esd_nonstd])
297 dnl ESD copy function added May 9 2008 rev 25667
299 if test "x$have_esd_nonstd" != "xyes"; then
301 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
306 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
307 AC_MSG_CHECKING(for ESD assignment operator)
308 AC_MSG_RESULT([$have_esd_copy])
312 dnl AliRawReaderMemory support for multiple buffers added
313 dnl revision 26829 Jun 2008
315 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
316 have_rawreadermemory_multbuffers=no
317 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
318 [AliRawReaderMemory rr;
319 rr.AddBuffer(NULL, 0, 0);])],
320 [have_rawreadermemory_multbuffers=yes],
321 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
322 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
323 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
326 dnl Changes in the magnetic field implementation
327 dnl revision 30848 Feb 1 2009
329 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
331 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMagF.h>],
332 [int test=AliMagF::k5kG;])],
333 [have_alimagf30848=yes],
334 [AC_DEFINE(HAVE_NOT_ALIMAGF30848)])
335 AC_MSG_CHECKING(AliMagF contains field definitions)
336 AC_MSG_RESULT([$have_alimagf30848])
339 dnl Cleanup of the RunLoader implementation
340 dnl revision 30859 Feb 2 2009
342 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
343 have_alirunloader30859=no
344 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRunLoader.h>],
345 [AliRunLoader* rl=AliRunLoader::Instance();])],
346 [have_alirunloader30859=yes],
347 [AC_DEFINE(HAVE_NOT_ALIRUNLOADER30859)])
348 AC_MSG_CHECKING(AliRunLoader::Instance)
349 AC_MSG_RESULT([$have_alirunloader30859])
352 AC_CHECK_HEADER([AliQAv1.h], [have_aliqav1=yes], [])
353 AM_CONDITIONAL(EN_HLT_QA, test x$have_aliqav1 = xyes)
354 AC_CHECK_HEADER([AliESDHLTDecision.h], [], [AC_DEFINE(HAVE_NOT_ALIESDHLTDECISION)])
355 AC_CHECK_HEADER([AliVCluster.h], [], [AC_DEFINE(HAVE_NOT_ALIVCLUSTER)])
358 dnl required header files and libraries for modules
362 dnl Check for the interface of AliExternalTrackParam which has been changed
363 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
365 externaltrackparam_version=1
366 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
367 [AliExternalTrackParam trackparam;
368 Double_t param[[5]]; Double_t covar[[15]];
369 trackparam.Set(0., 0., param, covar);])],
370 [externaltrackparam_version=2],
371 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
372 AC_MSG_CHECKING(for version of AliExternalTrackParam)
373 AC_MSG_RESULT($externaltrackparam_version)
375 dnl The AliShuttleInterface was changed in rev 29388. Some return types
376 dnl had been const, now changed according to gcc 4.3 warnings
377 AC_MSG_CHECKING(for version of AliShuttleInterface.h)
378 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
379 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
380 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
381 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
382 [class dummy : public AliShuttleInterface {
384 const UInt_t GetStartTimeDCSQuery() {;}
386 [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
387 alishuttleinterface_version=pre.rev.29388],
388 [alishuttleinterface_version=up.to.date])
389 AC_MSG_RESULT([$alishuttleinterface_version])
391 CPPFLAGS=$save_CPPFLAGS
392 LDFLAGS=$save_LDFLAGS
394 fi # if test ! "x$have_aliroot" = "xno"
397 AC_SUBST([ALICE_ROOT])
398 AC_SUBST([ALIROOT_CPPFLAGS])
399 AC_SUBST([ALIROOT_LDFLAGS])
400 AC_SUBST([ALIROOTBINDIR])
401 AC_SUBST([ALIROOTLIBDIR])
403 ALIROOT_LIBS="$ALIROOT_LIBS $ADD_ROOTLIBS"
404 AC_SUBST([ALIROOT_LIBS])
405 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
407 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
409 AC_SUBST([HLTBASE_CPPFLAGS])
410 AC_SUBST([HLTBASE_LDFLAGS])
412 dnl ------------------------------------------------------------------
413 dnl check for the HLT PubSub Framework
414 dnl namely for the existence of the HOMER library
415 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
416 dnl package. It os though possible to choose an external. library
417 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
418 dnl got the name libAliHLTHOMER
419 AC_MSG_CHECKING([for HLT PubSub Framework])
420 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
422 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
423 if test -z $with_pubsub || ! test -d $with_pubsub ; then
426 AC_MSG_RESULT([$with_pubsub])
430 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
431 if test "x$with_pubsub" != "xno" ; then
432 save_CPPFLAGS=$CPPFLAGS
433 save_LDFLAGS=$LDFLAGS
435 # currently the different versions of the HLT PubSub framework have a different
437 if test -d ${with_pubsub}/include/HOMER ; then
438 # the 'early' location of the include files with separated HOMER sub dirs
439 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
440 elif test -d ${with_pubsub}/include/Util/HOMER ; then
441 # location for HLT Framework versions after Sep 2006
442 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
443 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
444 # fall back if include files were not installed (versions after Sep 06)
445 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
447 # fall back if include files were not installed (versions before Sep 06)
448 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
450 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
452 AC_ARG_ENABLE(pubsub-debug,
453 [AC_HELP_STRING([--disable-pubsub-debug],
454 [force the production version of the PubSub framework])],
455 [],[enable_pubsub_debug=yes])
457 HOMER_TARGET="`uname -s`-`uname -m`"
458 AC_MSG_CHECKING([for HLT PubSub Framework release type])
459 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
460 homer_type="production"
461 HOMER_TARGET="${HOMER_TARGET}-release"
462 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
464 HOMER_TARGET="${HOMER_TARGET}-debug"
466 AC_MSG_RESULT([${homer_type}])
467 HOMERREADER_HEADER=HOMERReader.h
468 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
469 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
470 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
471 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
472 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
476 AC_CHECK_HEADER([$HOMERREADER_HEADER],
477 [ AC_CHECK_LIB([HOMER],[_init],
479 HOMER_LIBS="-lHOMER"],
480 [ AC_CHECK_LIB([HOMERReader],[_init],
482 HOMER_LIBS="-lHOMERReader"])])
483 LIBS="$LIBS $HOMER_LIBS"
484 AC_MSG_CHECKING([version of HOMER library])
485 dnl The Homer library has no versioning, so we do our own
486 dnl version description
487 dnl ----------------------------------------------------------------------
488 dnl 1 inintial version
489 dnl 2 GetBlockStatusFlags added to the interface
490 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
491 [HOMERReader reader("dummy", 0);
492 reader.GetBlockStatusFlags(0);])],
495 AC_MSG_RESULT([$HOMER_VERSION])
497 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
501 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
503 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
504 HOMERREADER_HEADER=AliHLTHOMERReader.h
505 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
511 if test "x$with_homer" = "xno" ; then
516 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
517 AC_DEFINE(HAVE_HOMERREADER)
519 CPPFLAGS="$save_CPPFLAGS"
520 LDFLAGS="$save_LDFLAGS"
523 AC_SUBST([HOMERREADER_HEADER])
524 AC_SUBST([HOMER_INBUILT_LIB])
525 AC_SUBST([HOMER_CPPFLAGS])
526 AC_SUBST([HOMER_LDFLAGS])
527 AC_SUBST([HOMER_LIBDIR])
528 AC_SUBST([HOMER_BINDIR])
529 AC_SUBST([HOMER_LIBS])
531 dnl ------------------------------------------------------------------
533 [AC_HELP_STRING([--disable-all],
534 [disable all detector modules, individual modules can be switched on by --enable-det])],
535 [disable_all=yes],[])
537 dnl ------------------------------------------------------------------
538 AC_MSG_CHECKING([whether to impose strict coding conventions])
539 AC_ARG_ENABLE(strict,
540 [AC_HELP_STRING([--disable-strict],
541 [disable coding convention checks ])],
542 [],[enable_strict=yes])
543 if test "x$enable_strict" = "xyes" ; then
544 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
546 AC_MSG_RESULT([$enable_strict])
548 dnl ------------------------------------------------------------------
549 AC_MSG_CHECKING([whether to enable component statistics])
550 AC_ARG_ENABLE(component-stat,
551 [AC_HELP_STRING([--enable-component-stat],
552 [enable component statistics ])],
555 dnl enable component statistics if not explicitely disabled
556 if test "x$enable_component_stat" != "xno" &&
557 test "x$enable_debug" = "xyes" ; then
558 enable_component_stat=yes.debug
561 if test "x$enable_component_stat" = "x" ; then
562 enable_component_stat=no
565 if test "x$enable_component_stat" != "xno" ; then
566 AC_DEFINE(HLT_COMPONENT_STATISTICS)
568 AC_MSG_RESULT([$enable_component_stat])
570 dnl ------------------------------------------------------------------
571 dnl ---- module checks
572 dnl ------------------------------------------------------------------
573 save_CPPFLAGS=$CPPFLAGS
574 save_LDFLAGS=$LDFLAGS
577 dnl ------------------------------------------------------------------
578 AC_MSG_NOTICE([-------------------------------------------------])
579 AC_MSG_NOTICE([checking dependencies for HLTbase library])
580 HLTBASE_CHECKLIBS='XMLParser'
581 for CHECKLIB in $HLTBASE_CHECKLIBS ; do
582 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
583 LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS"
584 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"])
586 AC_SUBST([ALIHLTBASE_LIBS])
588 dnl ------------------------------------------------------------------
589 AC_MSG_CHECKING([whether to compile sample library])
590 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
591 AC_ARG_ENABLE(sample,
592 [AC_HELP_STRING([--disable-sample],
593 [compile the sample library ])],
595 [if test "x$have_aliroot" = "xno" ; then
596 enable_sample="no...requires.AliRoot"
602 if test "x$enable_sample" = "xyes" ; then
603 AC_DEFINE(HLT_SAMPLE)
605 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
606 AC_MSG_RESULT([$enable_sample])
608 dnl ------------------------------------------------------------------
609 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
611 CHECK_HLTMODULE([util],
613 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6],
614 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
615 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
616 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
618 if test "x$enable_module" = "xmissheader"; then
619 enable_module="no...missing.headers"
620 enable_util=$enable_module
621 elif test "x$enable_module" = "xforce"; then
624 enable_util=$enable_module
626 if test "x$enable_util" = "xyes" ; then
628 ALIUTIL_LIBS=$ALIHLTMODULE_LIBS
630 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
631 AC_MSG_CHECKING([whether to compile Util library])
632 AC_MSG_RESULT([$enable_module])
633 AC_SUBST([ALIUTIL_LIBS])
635 dnl ------------------------------------------------------------------
636 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
639 CHECK_HLTMODULE([tpc],
641 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
642 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
643 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
644 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
646 if test "x$enable_module" = "xmissheader"; then
647 enable_module="no...missing.headers"
648 enable_tpc=$enable_module
649 elif test "x$enable_module" = "xforce"; then
652 enable_tpc=$enable_module
655 if test "x$enable_tpc" = "xyes" ; then
658 ALITPC_LIBS=$ALIHLTMODULE_LIBS
660 dnl Check for functionality in the TPC reconstruction required for online
663 have_tpc_hltoffline_rec=no
664 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
665 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
666 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
667 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
668 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
669 #include <AliTPCclustererMI.h>
670 #include <TObjArray.h>],
671 [AliTPCtrackerMI tracker;
672 TObjArray* array=NULL;
673 tracker.LoadClusters(array);
674 AliTPCclustererMI cl(NULL, NULL);
675 cl.GetOutputClonesArray();])],
676 [have_tpc_hltoffline_rec=yes],
677 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
678 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
680 have_alitpcclusterparam_r40128=no
681 AC_MSG_CHECKING([checking for AliTPCClusterParam r40128])
682 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTPCClusterParam.h>],
683 [AliTPCClusterParam param;
684 float test=param.ParamS0Par(0,0,0)]);],
685 [have_alitpcclusterparam_r40128=yes],
686 [AC_DEFINE(HAVE_NOT_ALITPCCLUSTERPARAM_r40128)])
687 AC_MSG_RESULT([$have_alitpcclusterparam_r40128])
692 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
693 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
694 AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)])
697 if test ! "x$have_aliroot" = "xno" ; then
698 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
699 # which is stored in the TPC/mapping/Patchx.data files from
700 # AliRoot version v4-04-Release (May 2006)
701 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
702 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
703 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
704 [have_tpc_mapping=yes
705 AC_SUBST(TPC_PAD_MAPPING_PATH)
706 AC_DEFINE(HAVE_TPC_MAPPING)],
710 AC_MSG_CHECKING([for TPC mapping layout])
711 AC_MSG_RESULT([$have_tpc_mapping])
715 enable_module=$enable_tpc
717 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
718 AC_MSG_CHECKING([whether to compile TPC library])
719 AC_MSG_RESULT([$enable_module])
720 AC_SUBST([ALITPC_LIBS])
722 dnl ------------------------------------------------------------------
723 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
725 CHECK_HLTMODULE([rcu],
727 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
728 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
729 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
730 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
732 if test "x$enable_module" = "xmissheader"; then
733 enable_module="no...missing.headers"
734 enable_rcu=$enable_module
735 elif test "x$enable_module" = "xforce"; then
739 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
740 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
741 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
742 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
743 [AliAltroDecoder decoder;
744 decoder.CopyBackward(NULL, 0);])],
745 [enable_rcu=$enable_module],
746 [enable_module="no...requires.AliRoot>v4-10-Release"
747 enable_rcu="no...requires.AliRoot>v4-10-Release"])
748 CPPFLAGS=$save_CPPFLAGS
749 LDFLAGS=$save_LDFLAGS
754 if test "x$enable_rcu" = "xyes" ; then
757 enable_module=$enable_rcu
759 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
760 AC_MSG_CHECKING([whether to compile RCU library])
761 AC_MSG_RESULT([$enable_module])
762 AC_SUBST([ALIRCU_LIBS])
764 dnl ------------------------------------------------------------------
765 AH_TEMPLATE([HLT_CALO],[hlt calo(rimeter) library])
768 CHECK_HLTMODULE([calo],
769 [], [$ALIROOT_CPPFLAGS],
770 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
771 [EMCALUtils PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
772 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
774 if test "x$enable_module" = "xmissheader"; then
775 enable_module="no...missing.headers"
776 enable_calo=$enable_module
777 elif test "x$enable_module" = "xforce"; then
780 have_alicalorawstream=no
781 if test ! "x$have_aliroot" = "xno" ; then
783 save_CPPFLAGS="$CPPFLAGS"
784 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
785 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
786 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
787 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
788 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
789 #include <AliCaloRawStream.h>],
791 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
792 have_alicalorawstream=yes],
794 AC_MSG_RESULT([$have_alicalorawstream])
796 have_aliesdcalocluster_r38477=no
797 AC_MSG_CHECKING([for AliESDCaloCluster r38477])
798 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDCaloCluster.h>],
799 [AliESDCaloCluster cluster;
800 cluster.SetTrackDistance(0.0, 0.0)]);],
801 [have_aliesdcalocluster_r38477=yes],
802 [AC_DEFINE(HAVE_NOT_ALIESDCALOCLUSTER_r38477)])
803 AC_MSG_RESULT([$have_aliesdcalocluster_r38477])
806 CPPFLAGS="$save_CPPFLAGS"
808 if test "x$have_alicalorawstream" != "xyes"; then
809 enable_calo="no...requires.AliRoot>v4-05-07"
811 enable_calo=$enable_module
815 if test "x$enable_calo" = "xyes" ; then
817 ALICALO_LIBS=$ALIHLTMODULE_LIBS
819 enable_module=$enable_calo
821 AM_CONDITIONAL(EN_HLT_CALO, test x$enable_calo = xyes)
822 AC_MSG_CHECKING([whether to compile CALO library])
823 AC_MSG_RESULT([$enable_module])
824 AC_SUBST([ALICALO_LIBS])
826 dnl ------------------------------------------------------------------
827 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
830 CHECK_HLTMODULE([phos],
831 [], [$ALIROOT_CPPFLAGS],
832 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
833 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
834 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
836 if test "x$enable_module" = "xmissheader"; then
837 enable_module="no...requires.AliRoot>v4-05-07"
838 enable_phos=$enable_module
839 elif test "x$enable_module" = "xforce"; then
842 have_alicalorawstream=no
843 if test ! "x$have_aliroot" = "xno" ; then
845 save_CPPFLAGS="$CPPFLAGS"
846 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
847 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
848 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
849 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
850 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
851 #include <AliCaloRawStream.h>],
853 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
854 have_alicalorawstream=yes],
856 AC_MSG_RESULT([$have_alicalorawstream])
857 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
858 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
859 [AliPHOSRecoParam param;
860 param.GetEMCClusteringThreshold()])],
861 [have_aliphosrecoparam=yes],
862 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
863 AC_MSG_RESULT([$have_aliphosrecoparam])
865 CPPFLAGS="$save_CPPFLAGS"
867 if test "x$have_alicalorawstream" != "xyes"; then
868 enable_phos="no...requires.AliRoot>v4-05-07"
870 enable_phos=$enable_module
874 if test "x$enable_phos" = "xyes" ; then
876 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
878 enable_module=$enable_phos
880 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
881 AC_MSG_CHECKING([whether to compile PHOS library])
882 AC_MSG_RESULT([$enable_module])
883 AC_SUBST([ALIPHOS_LIBS])
885 dnl ------------------------------------------------------------------
886 AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
889 CHECK_HLTMODULE([emcal],
890 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/VZERO],
891 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
892 [EMCALrec EMCALsim EMCALbase EMCALUtils VZERObase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
893 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
895 if test "x$enable_module" = "xmissheader"; then
896 enable_module="no...header.missing"
897 enable_emcal=$enable_module
898 elif test "x$enable_module" = "xforce"; then
901 enable_emcal=$enable_module
904 if test "x$enable_emcal" = "xyes" ; then
906 ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
908 enable_module=$enable_emcal
910 AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
911 AC_MSG_CHECKING([whether to compile EMCAL library])
912 AC_MSG_RESULT([$enable_module])
913 AC_SUBST([ALIEMCAL_LIBS])
915 dnl ------------------------------------------------------------------
916 AH_TEMPLATE([HLT_TRD],[hlt trd library])
919 CHECK_HLTMODULE([trd],
921 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
922 [STAT TRDbase TRDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
923 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
925 if test "x$enable_module" = "xmissheader"; then
926 enable_module="no...requires.AliRoot>v4-07-Release"
927 enable_trd=$enable_module
928 elif test "x$enable_module" = "xforce"; then
931 enable_trd=$enable_module
932 if test "x$enable_trd" = "xyes" ; then
934 save_CPPFLAGS="$CPPFLAGS"
935 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
936 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
937 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
938 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
939 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
940 # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
941 # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009
942 # changed to AliTRDclusterizer::GetNTimeBins according to revision 37102 Sun Nov 22 2009
943 AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
944 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
945 [AliTRDclusterizer c;
948 [enable_trd="no...requires.AliRoot>v4-18-Release"])
949 AC_MSG_RESULT([$enable_trd])
951 if test "x$enable_trd" = "xyes" ; then
952 have_alitrdseedv1_r39693=no
953 AC_MSG_CHECKING([checking for AliTRDseedV1 r39693])
954 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDseedV1.h>],
956 seed.SetC(0.0, 1)]);],
957 [have_alitrdseedv1_r39693=yes],
958 [AC_DEFINE(HAVE_NOT_ALITRD_SEEDV1_r39693)])
959 AC_MSG_RESULT([$have_alitrdseedv1_r39693])
961 have_alitrdrawstream_r39608=no
962 AC_MSG_CHECKING([checking for AliTRDrawStream r39608])
963 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrawStreamBase.h>],
964 [AliTRDrawStreamBase::SetRawStreamVersion(AliTRDrawStreamBase::kTRDdefaultStream)]);],
965 [have_alitrdrawstream_r39608=yes],
966 [AC_DEFINE(HAVE_NOT_ALITRD_RAWSTREAM_r39608)])
967 AC_MSG_RESULT([$have_alitrdrawstream_r39608])
969 have_alitrdrecoparam_r41621=no
970 AC_MSG_CHECKING([checking for AliTRDrecoParam r41621])
971 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>],
972 [AliTRDrecoParam::GetLowFluxHLTParam()]);],
973 [have_alitrdrecoparam_r41621=yes],
974 [AC_DEFINE(HAVE_NOT_ALITRD_RECOPARAM_r41621)])
975 AC_MSG_RESULT([$have_alitrdrecoparam_r41621])
977 have_alitrdclusterizer_r42837=no
978 AC_MSG_CHECKING([checking for AliTRDclusterizer r42837])
979 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
980 [AliTRDclusterizer o; o.SetSkipTransform()]);],
981 [have_alitrdclusterizer_r42837=yes],
982 [AC_DEFINE(HAVE_NOT_ALITRD_CLUSTERIZER_r42837)])
983 AC_MSG_RESULT([$have_alitrdclusterizer_r42837])
987 CPPFLAGS="$save_CPPFLAGS"
991 if test "x$enable_trd" = "xyes" ; then
993 ALITRD_LIBS=$ALIHLTMODULE_LIBS
995 enable_module=$enable_trd
997 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
998 AC_MSG_CHECKING([whether to compile TRD library])
999 AC_MSG_RESULT([$enable_module])
1000 AC_SUBST([ALITRD_LIBS])
1002 dnl ------------------------------------------------------------------
1003 AH_TEMPLATE([HLT_FMD],[hlt fmd library])
1005 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
1006 CHECK_HLTMODULE([fmd],
1008 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1009 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1010 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1012 if test "x$enable_module" = "xmissheader"; then
1013 enable_module="no...missing.headers"
1014 enable_fmd=$enable_module
1015 elif test "x$enable_module" = "xforce"; then
1018 enable_fmd=$enable_module
1021 if test "x$enable_fmd" = "xyes" ; then
1023 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
1025 enable_module=$enable_fmd
1027 AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
1028 AC_MSG_CHECKING([whether to compile FMD library])
1029 AC_MSG_RESULT([$enable_module])
1030 AC_SUBST([ALIFMD_LIBS])
1032 dnl ------------------------------------------------------------------
1033 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
1036 CHECK_HLTMODULE([dimuon],
1037 [AliMpExMap.h AliMUONTriggerIO.h],
1038 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
1039 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1040 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1041 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1043 if test "x$enable_module" = "xmissheader"; then
1044 enable_module="no...requires.AliRoot>=v4-08-Release"
1045 enable_muon=$enable_module
1046 elif test "x$enable_module" = "xforce"; then
1049 enable_muon=$enable_module
1052 if test "x$enable_muon" = "xyes" ; then
1054 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
1056 save_CPPFLAGS="$CPPFLAGS"
1059 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
1061 have_muon_digitmaker_getrawstream=no
1062 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
1063 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
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 <AliMUONDigitMaker.h>],
1067 [AliMUONDigitMaker dm;
1068 dm.GetRawStreamTracker();])],
1069 [have_muon_digitmaker_getrawstream=yes],
1070 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
1072 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
1075 dnl Check for AliMpPad::GetPositionX/Y
1076 dnl change of implementation in MUON code
1077 dnl revision 31769, Wed Apr 1 2009
1079 have_muon_alimppad_getposition=no
1080 AC_MSG_CHECKING(for GetPosition methods of AliMpPad)
1081 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping"
1082 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1083 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1084 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMpPad.h>],
1086 pad.GetPositionX();])],
1087 [have_muon_alimppad_getposition=yes],
1088 [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)])
1090 AC_MSG_RESULT([$have_muon_alimppad_getposition])
1092 CPPFLAGS="$save_CPPFLAGS"
1096 enable_module=$enable_muon
1098 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
1099 AC_MSG_CHECKING([whether to compile MUON library])
1100 AC_MSG_RESULT([$enable_module])
1101 AC_SUBST([ALIMUON_LIBS])
1103 dnl ------------------------------------------------------------------
1104 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
1107 CHECK_HLTMODULE([trigger],
1108 [], [$ALIROOT_CPPFLAGS],
1109 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1110 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1111 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1113 if test "x$enable_module" = "xmissheader"; then
1114 enable_module="no...header.missing"
1115 enable_trigger=$enable_module
1116 elif test "x$enable_module" = "xforce"; then
1117 enable_trigger="yes"
1119 enable_trigger=$enable_module
1122 if test "x$enable_trigger" = "xyes" ; then
1123 AC_DEFINE(HLT_TRIGGER)
1124 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
1126 enable_module=$enable_trigger
1128 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
1129 AC_MSG_CHECKING([whether to compile Trigger library])
1130 AC_MSG_RESULT([$enable_module])
1131 AC_SUBST([ALITRIGGER_LIBS])
1133 dnl ------------------------------------------------------------------
1134 AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
1137 CHECK_HLTMODULE([global],
1138 [], [$ALIROOT_CPPFLAGS],
1139 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1140 [PHOSUtils ], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1141 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1143 if test "x$enable_module" = "xmissheader"; then
1144 enable_module="no...header.missing"
1145 enable_global=$enable_module
1146 elif test "x$enable_module" = "xforce"; then
1149 enable_global=$enable_module
1150 if test "x$enable_global" = "xyes" ; then
1152 save_CPPFLAGS="$CPPFLAGS"
1153 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
1154 AC_MSG_CHECKING([for required functions in AliESDtrack])
1155 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>],
1157 t.SetGlobalChi2(0)])],
1159 [enable_global="no...requires.AliRoot>v4-17-Release"])
1160 AC_MSG_RESULT([$enable_global])
1162 CPPFLAGS="$save_CPPFLAGS"
1166 if test "x$enable_global" = "xyes" ; then
1167 AC_DEFINE(HLT_GLOBAL)
1168 ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
1170 enable_module=$enable_global
1172 AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
1173 AC_MSG_CHECKING([whether to compile Global library])
1174 AC_MSG_RESULT([$enable_module])
1175 AC_SUBST([ALIGLOBAL_LIBS])
1177 dnl ------------------------------------------------------------------
1178 AH_TEMPLATE([HLT_JET],[hlt jet library])
1181 ALIFASTJET_INCFLAGS=
1184 AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
1185 [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
1186 [ test -n $FASTJET && with_fastjet=$FASTJET ])
1188 if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
1189 ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
1190 ALIFASTJET_HEADER="fastjet/PseudoJet.hh"
1191 ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
1192 ALIFASTJET_LIBS="CGAL fastjet"
1197 CHECK_HLTMODULE([jet],
1198 [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
1199 [$ALIFASTJET_LIBS], [$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
1200 [AOD ESD ANALYSIS ANALYSISalice JETAN],
1201 [-L$ROOTLIBDIR $ALIROOT_LDFLAGS $ALIFASTJET_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
1202 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1204 if test "x$enable_module" = "xmissheader"; then
1205 enable_module="no...header.missing"
1206 enable_jet=$enable_module
1207 elif test "x$enable_module" = "xforce"; then
1210 enable_jet=$enable_module
1213 if test "x$enable_jet" = "xyes" ; then
1215 ALIJET_LIBS="$ALIHLTMODULE_LIBS"
1217 if test "x$with_fastjet" != "xno"; then
1218 AC_DEFINE(HAVE_FASTJET)
1219 AC_DEFINE(WITHFASTJET)
1220 ALIJET_LIBS="$ALIJET_LIBS $FASTJET_LDFLAGS"
1222 AC_MSG_CHECKING([compilation with FASTJET package])
1223 AC_MSG_RESULT($with_fastjet)
1226 enable_module=$enable_jet
1229 AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
1230 AC_MSG_CHECKING([whether to compile Jet library])
1231 AC_MSG_RESULT([$enable_module])
1232 AC_SUBST([ALIJET_LIBS])
1234 dnl ------------------------------------------------------------------
1235 AH_TEMPLATE([HLT_ITS],[hlt its library])
1238 CHECK_HLTMODULE([its],
1239 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
1240 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1241 [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1242 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1244 if test "x$enable_module" = "xmissheader"; then
1245 enable_module="no...header.missing"
1246 enable_its=$enable_module
1247 elif test "x$enable_module" = "xforce"; then
1250 enable_its=$enable_module
1251 if test "x$enable_its" = "xyes" ; then
1253 save_CPPFLAGS="$CPPFLAGS"
1254 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1255 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1256 # require AliVertexer::GetNominalPos()
1257 AC_MSG_CHECKING([for required functions in AliITSVertexer])
1258 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
1260 v.GetNominalPos()])],
1262 [enable_its="no...requires.AliRoot>v4-13-Release"])
1263 AC_MSG_RESULT([$enable_its])
1265 CPPFLAGS="$save_CPPFLAGS"
1269 if test "x$enable_its" = "xyes" ; then
1271 ALIITS_LIBS=$ALIHLTMODULE_LIBS
1273 enable_module=$enable_its
1275 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1276 AC_MSG_CHECKING([whether to compile ITS library])
1277 AC_MSG_RESULT([$enable_module])
1278 AC_SUBST([ALIITS_LIBS])
1280 dnl ------------------------------------------------------------------
1281 AH_TEMPLATE([HLT_COMP],[hlt comp library])
1284 CHECK_HLTMODULE([comp],
1285 [], [$ALIROOT_CPPFLAGS],
1286 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1287 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1288 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1290 if test "x$enable_module" = "xmissheader"; then
1291 enable_module="no...header.missing"
1292 enable_comp=$enable_module
1293 elif test "x$enable_module" = "xforce"; then
1296 enable_comp=$enable_module
1299 if test "x$enable_comp" = "xyes" ; then
1301 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
1303 enable_module=$enable_comp
1305 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1306 AC_MSG_CHECKING([whether to compile comp library])
1307 AC_MSG_RESULT([$enable_module])
1308 AC_SUBST([ALICOMP_LIBS])
1310 dnl ------------------------------------------------------------------
1311 AC_MSG_CHECKING([whether to disable AliRoot logging])
1312 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1313 AC_ARG_ENABLE(aliroot-logging,
1314 [AC_HELP_STRING([--disable-aliroot-logging],
1315 [disable logging through AliRoot logging methods])],
1316 [],[enable_aliroot_logging=no])
1317 if test "x$have_aliroot" = "xno" ; then
1318 enable_aliroot_logging=yes # this means 'disable'
1320 if test "x$enable_aliroot_logging" != "xno" ; then
1321 AC_DEFINE(NOALIROOT_LOGGING)
1323 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1324 AC_MSG_RESULT([$enable_aliroot_logging])
1326 dnl ------------------------------------------------------------------
1327 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1328 AH_TEMPLATE([DOMC],[MC saving])
1329 AC_ARG_ENABLE(mc-saving,
1330 [AC_HELP_STRING([--enable-mc-saving],
1331 [enable saving MC data through the chain])],
1332 [],[enable_mc_saving=no])
1333 if test "x$enable_mc_saving" = "xyes" ; then
1336 AC_MSG_RESULT([$enable_mc_saving])
1338 dnl ------------------------------------------------------------------
1339 dnl certainly something old, but we keep the define
1340 AC_MSG_CHECKING([whether to use ROWHOUGH])
1341 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1342 AC_ARG_ENABLE(rowhough,
1343 [AC_HELP_STRING([--enable-rowhough],
1345 [],[enable_rowhough=no])
1346 if test "x$enable_rowhough" = "xyes" ; then
1347 AC_DEFINE(USEROWHOUGH)
1349 AC_MSG_RESULT([$enable_rowhough])
1351 dnl ------------------------------------------------------------------
1352 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1353 dnl stand-alone build system. This is most likely something old we can
1354 dnl get rid off later, or do something more reasonable. Since the define
1355 dnl needs the quotes they have to be escaped. This works well for the
1356 dnl Makefile but not for the configure script. So we have to add the
1357 dnl defines after all the other checks.
1358 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1359 if test ! "x$have_aliroot" = "xno" ; then
1360 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1363 dnl ------------------------------------------------------------------
1367 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1368 AC_PATH_PROG(PERL, perl)
1369 AC_PATH_PROG(DOXYGEN, doxygen)
1371 [AC_HELP_STRING([--enable-dot],
1372 [enable dot documentation generator])],
1376 AC_PATH_PROG(DOT, dot)
1377 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1379 DOT_PATH=`dirname $DOT`
1382 AC_MSG_CHECKING([for documentation mode])
1384 [AC_HELP_STRING([--disable-doc],
1385 [disable documentation build; monolithic build --enable-doc=mono ])],
1386 [],[enable_doc=modules])
1388 if test "x$DOXYGEN" = "x" ; then
1389 enable_doc=no.doxygen
1390 elif test "x$enable_doc" = "xyes" ; then
1392 elif test ! "x$enable_doc" = "xmono" && \
1393 test ! "x$enable_doc" = "xmodules" && \
1394 test ! "x$enable_doc" = "xno"; then
1396 AC_MSG_WARN([unknown option])
1398 if test "x$enable_doc" = "xno" ; then
1403 AC_MSG_RESULT([$enable_doc])
1404 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1405 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1406 AC_SUBST([HAVE_DOT])
1407 AC_SUBST([DOT_PATH])
1409 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1410 dnl echo $HAVE_SRC_SUBDIR
1411 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1412 dnl HAVE_SRC_SUBDIR=
1414 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1416 dnl ------------------------------------------------------------------
1417 AC_MSG_NOTICE([---------------------------------------------- ])
1418 AC_MSG_NOTICE([ build summary ])
1419 AC_MSG_NOTICE([---------------------------------------------- ])
1421 AC_CONFIG_FILES([Makefile
1427 BASE/util/test/Makefile
1428 BASE/interface/Makefile
1430 BASE/interface/test/Makefile
1433 doc/doxymodule.conf])
1435 dnl AliRoot and installation directory for libraries
1437 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1438 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1439 if test "x$have_aliroot" != "xno"; then
1440 AC_CONFIG_FILES([sim/Makefile
1443 rec/startAliEVE-barrel-tracks.sh
1450 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1451 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1452 AC_MSG_NOTICE([libdir set to $libdir])
1455 AC_MSG_NOTICE([compile sample library: $enable_sample])
1456 if test "x$enable_sample" = "xyes"; then
1457 AC_CONFIG_FILES([SampleLib/Makefile])
1460 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1461 if test "x$enable_rcu" = "xyes"; then
1462 AC_CONFIG_FILES([RCU/Makefile
1467 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1468 if test "x$enable_tpc" = "xyes"; then
1469 AC_CONFIG_FILES([TPCLib/Makefile
1470 TPCLib/test/Makefile
1471 TPCLib/mapping2array.cxx
1473 TPCLib/calibration/Makefile
1477 AC_MSG_NOTICE([compile CALO library: $enable_calo])
1478 if test "x$enable_calo" = "xyes"; then
1479 AC_CONFIG_FILES([CALO/Makefile
1480 CALO/test/Makefile])
1483 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1484 if test "x$enable_phos" = "xyes"; then
1485 AC_CONFIG_FILES([PHOS/Makefile])
1488 AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1489 if test "x$enable_emcal" = "xyes"; then
1490 AC_CONFIG_FILES([EMCAL/Makefile])
1493 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1494 if test "x$enable_trd" = "xyes"; then
1495 AC_CONFIG_FILES([TRD/Makefile])
1498 AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1499 if test "x$enable_fmd" = "xyes"; then
1500 AC_CONFIG_FILES([FMD/Makefile])
1503 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1504 if test "x$enable_muon" = "xyes"; then
1505 AC_CONFIG_FILES([MUON/Makefile])
1508 AC_MSG_NOTICE([compile ITS library: $enable_its])
1509 if test "x$enable_its" = "xyes"; then
1510 AC_CONFIG_FILES([ITS/Makefile])
1513 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1514 if test "x$enable_trigger" = "xyes"; then
1515 AC_CONFIG_FILES([trigger/Makefile
1516 trigger/test/Makefile])
1519 AC_MSG_NOTICE([compile global library: $enable_global])
1520 if test "x$enable_global" = "xyes"; then
1521 AC_CONFIG_FILES([global/Makefile])
1524 AC_MSG_NOTICE([compile jet library: $enable_jet])
1525 if test "x$enable_jet" = "xyes"; then
1526 AC_CONFIG_FILES([JET/Makefile])
1529 AC_MSG_NOTICE([compile comp library: $enable_comp])
1530 if test "x$enable_comp" = "xyes"; then
1531 AC_CONFIG_FILES([comp/Makefile])