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])
42 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
44 dnl ------------------------------------------------------------------
45 dnl A warning posted into the auto-generated files
46 dnl Does NOT concern this file ;-)
47 AUTOGENERATED_WARNING="!!!!!!! DO NOT EDIT THIS FILE !!!!!!"
48 AC_SUBST([AUTOGENERATED_WARNING])
50 dnl ------------------------------------------------------------------
54 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
55 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
57 ROOTBINDIR=`dirname $ROOTEXEC`
58 AC_SUBST([ROOTBINDIR])
60 dnl test for additional required root libraries and headers
62 if test "x$have_root" = "x1"; then
64 save_CPPFLAGS=$CPPFLAGS
67 CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
69 # we check for the libSTEER library which is linked to
70 # - the ROOT libs libGeom libMinuit libVMC libEG
71 # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
72 # - ROOT libCint needs also libdl
73 # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
75 # - from Jan 07 libESD also depends on libXMLIO
76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
77 # - libCDB.so depends on libXMLParser since Mar 11 2009 r 31411
78 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer XMLParser'
79 for CHECKLIB in $ROOT_CHECKLIBS ; do
80 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
81 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
82 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
85 # TBuffer.h has been made pure virtual in root v5-15-02 and one
86 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
87 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
89 # TView.h has been made pure virtual right after root v5-15-02 and one
90 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
91 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
93 CPPFLAGS=$save_CPPFLAGS
99 dnl ------------------------------------------------------------------
100 # TODO: make this configurable through arguments
101 #Define whether you want to run with ALIROOT or only ROOT
102 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
103 ALIHLT_USEPACKAGE=ALIROOT
104 #ALIHLT_USEPACKAGE=ROOT
105 #ALIHLT_USEPACKAGE=STANDALONE
106 AC_DEFINE(use_aliroot)
108 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
109 save_CPPFLAGS=$CPPFLAGS
110 save_LDFLAGS=$LDFLAGS
113 dnl ------------------------------------------------------------------
114 dnl check for AliRoot features
117 AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
118 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
121 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
122 dnl ------------------------------------------------------------------
123 dnl Try to estimate the system architecture
124 case $host_os:$host_cpu in
125 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
126 linux*) alice_target='linux' ;;
127 *) alice_target='unknown' ;;
129 if test "x$alice_target" = "xunknown" ; then
130 if test -z $ALICE_TARGET ; then
131 AC_MSG_ERROR([Can not estimate system architecture.
132 To avoid the problem, set the ALICE_TARGET variable appropriately.
133 Please send the following information to Matthias.Richter@ift.uib.no:
134 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
136 AC_MSG_NOTICE([Unknown system architecture.
137 Please send the following information to Matthias.Richter@ift.uib.no:
138 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
141 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
142 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
143 overriding $ALICE_TARGET by $alice_target])
145 ALICE_TARGET=$alice_target
147 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
148 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
149 ALIROOTINCDIR=${ALICE_ROOT}/include
150 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
151 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
152 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
155 AC_MSG_CHECKING([for AliRoot])
156 if test "x$ALICE_ROOT" != "x" \
157 && test -d ${ALIROOTBINDIR} \
158 && test -d ${ALIROOTLIBDIR} \
159 && test -d ${ALIROOTINCDIR}; then
160 have_aliroot=$ALICE_ROOT
166 AC_MSG_RESULT([$have_aliroot])
168 if test ! "x$have_aliroot" = "xno" ; then
169 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
170 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
171 ALIROOT_LIBS="$ADD_ROOTLIBS"
172 save_CPPFLAGS=$CPPFLAGS
173 save_LDFLAGS=$LDFLAGS
175 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
176 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
178 # check for certain AliRoot libraries/files/features
179 # libSTEERBase present since Aug 7 2007
180 # ###########################################
181 # temporary workaround for circular dependency libSTEERbase libSTEER
182 # https://savannah.cern.ch/bugs/index.php?49914
183 # disable the sequence of checks and load libraries in parallel
184 ALIROOT_LIBS="$ALIROOT_LIBS -lAOD -lCDB -lRAWDatabase -lRAWDatarec -lESD -lSTEER"
185 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
187 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
191 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
193 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
194 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
196 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
198 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
200 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
202 AC_CHECK_LIB([$CHECKLIB],[_init],
203 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
204 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER"
206 AC_CHECK_LIB([$CHECKLIB],[_init],
207 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
208 have_alirawdata=$CHECKLIB])],
209 [# second pass with -RAWData
211 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
212 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
213 #include <AliRawReaderFile.h>
214 #include <AliRawReaderDate.h>
215 #include <AliRawReaderRoot.h>],
216 [AliRawReaderMemory mreader;
217 AliRawReaderFile freader;
218 AliRawReaderDate dreader(NULL,0);
219 AliRawReaderRoot rreader(NULL,0);])],
220 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
221 have_alirawdata=$CHECKLIB],
222 [have_alirawdata=no])
223 ]) dnl AC_CHECK_LIB RAWDatabase
224 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
225 AC_MSG_RESULT([$have_alirawdata])
227 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
229 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
231 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
233 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
236 dnl check whether AliLog supports notification callback
238 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
239 have_alilog_notification=no
240 if test ! "x$have_aliroot" = "xno" ; then
241 AC_MSG_CHECKING([whether AliLog supports notification callback])
242 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
243 [AliLog::AliLogNotification fct])],
244 [have_alilog_notification=yes],
245 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
246 AC_MSG_RESULT([$have_alilog_notification])
249 if test "x$have_aliroot" = "xno" ; then
250 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
251 # but library dependencies might not be resolved completely
253 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
254 This can happen from time to time due to development in AliRoot. You can
255 force compilation of detector libs by --enable-<detector>, but be aware
256 of unresolved references at runtime.])
257 AC_MSG_WARN([ ------------------------------------------ ])
258 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
259 AC_MSG_WARN([ please include config.log ])
260 AC_MSG_WARN([ ------------------------------------------ ])
266 dnl ESD supports non-std content
269 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
270 #include <AliExternalTrackParam.h>
272 #include <TClonesArray.h>],
274 esd.CreateStdContent();
275 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
276 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
277 a->SetName("SomeObject");
279 esd.WriteToTree(tree);
280 if (!tree->FindBranch("SomeObject")) return 1;
282 [have_esd_nonstd=yes],
283 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
284 AC_MSG_CHECKING(whether ESD supports non standard content)
285 AC_MSG_RESULT([$have_esd_nonstd])
288 dnl ESD copy function added May 9 2008 rev 25667
290 if test "x$have_esd_nonstd" != "xyes"; then
292 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
297 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
298 AC_MSG_CHECKING(for ESD assignment operator)
299 AC_MSG_RESULT([$have_esd_copy])
303 dnl AliRawReaderMemory support for multiple buffers added
304 dnl revision 26829 Jun 2008
306 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
307 have_rawreadermemory_multbuffers=no
308 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
309 [AliRawReaderMemory rr;
310 rr.AddBuffer(NULL, 0, 0);])],
311 [have_rawreadermemory_multbuffers=yes],
312 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
313 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
314 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
317 dnl Changes in the magnetic field implementation
318 dnl revision 30848 Feb 1 2009
320 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
322 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMagF.h>],
323 [int test=AliMagF::k5kG;])],
324 [have_alimagf30848=yes],
325 [AC_DEFINE(HAVE_NOT_ALIMAGF30848)])
326 AC_MSG_CHECKING(AliMagF contains field definitions)
327 AC_MSG_RESULT([$have_alimagf30848])
330 dnl Cleanup of the RunLoader implementation
331 dnl revision 30859 Feb 2 2009
333 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
334 have_alirunloader30859=no
335 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRunLoader.h>],
336 [AliRunLoader* rl=AliRunLoader::Instance();])],
337 [have_alirunloader30859=yes],
338 [AC_DEFINE(HAVE_NOT_ALIRUNLOADER30859)])
339 AC_MSG_CHECKING(AliRunLoader::Instance)
340 AC_MSG_RESULT([$have_alirunloader30859])
343 AC_CHECK_HEADER([AliQAv1.h], [have_aliqav1=yes], [])
344 AM_CONDITIONAL(EN_HLT_QA, test x$have_aliqav1 = xyes)
345 AC_CHECK_HEADER([AliESDHLTDecision.h], [], [AC_DEFINE(HAVE_NOT_ALIESDHLTDECISION)])
348 dnl required header files and libraries for modules
352 dnl Check for the interface of AliExternalTrackParam which has been changed
353 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
355 externaltrackparam_version=1
356 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
357 [AliExternalTrackParam trackparam;
358 Double_t param[[5]]; Double_t covar[[15]];
359 trackparam.Set(0., 0., param, covar);])],
360 [externaltrackparam_version=2],
361 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
362 AC_MSG_CHECKING(for version of AliExternalTrackParam)
363 AC_MSG_RESULT($externaltrackparam_version)
365 dnl The AliShuttleInterface was changed in rev 29388. Some return types
366 dnl had been const, now changed according to gcc 4.3 warnings
367 AC_MSG_CHECKING(for version of AliShuttleInterface.h)
368 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
369 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
370 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
371 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
372 [class dummy : public AliShuttleInterface {
374 const UInt_t GetStartTimeDCSQuery() {;}
376 [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
377 alishuttleinterface_version=pre.rev.29388],
378 [alishuttleinterface_version=up.to.date])
379 AC_MSG_RESULT([$alishuttleinterface_version])
381 CPPFLAGS=$save_CPPFLAGS
382 LDFLAGS=$save_LDFLAGS
384 fi # if test ! "x$have_aliroot" = "xno"
387 AC_SUBST([ALICE_ROOT])
388 AC_SUBST([ALIROOT_CPPFLAGS])
389 AC_SUBST([ALIROOT_LDFLAGS])
390 AC_SUBST([ALIROOTBINDIR])
391 AC_SUBST([ALIROOTLIBDIR])
393 ALIROOT_LIBS="$ALIROOT_LIBS $ADD_ROOTLIBS"
394 AC_SUBST([ALIROOT_LIBS])
395 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
397 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
399 AC_SUBST([HLTBASE_CPPFLAGS])
400 AC_SUBST([HLTBASE_LDFLAGS])
402 dnl ------------------------------------------------------------------
403 dnl check for the HLT PubSub Framework
404 dnl namely for the existence of the HOMER library
405 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
406 dnl package. It os though possible to choose an external. library
407 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
408 dnl got the name libAliHLTHOMER
409 AC_MSG_CHECKING([for HLT PubSub Framework])
410 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
412 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
413 if test -z $with_pubsub || ! test -d $with_pubsub ; then
416 AC_MSG_RESULT([$with_pubsub])
420 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
421 if test "x$with_pubsub" != "xno" ; then
422 save_CPPFLAGS=$CPPFLAGS
423 save_LDFLAGS=$LDFLAGS
425 # currently the different versions of the HLT PubSub framework have a different
427 if test -d ${with_pubsub}/include/HOMER ; then
428 # the 'early' location of the include files with separated HOMER sub dirs
429 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
430 elif test -d ${with_pubsub}/include/Util/HOMER ; then
431 # location for HLT Framework versions after Sep 2006
432 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
433 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
434 # fall back if include files were not installed (versions after Sep 06)
435 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
437 # fall back if include files were not installed (versions before Sep 06)
438 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
440 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
442 AC_ARG_ENABLE(pubsub-debug,
443 [AC_HELP_STRING([--disable-pubsub-debug],
444 [force the production version of the PubSub framework])],
445 [],[enable_pubsub_debug=yes])
447 HOMER_TARGET="`uname -s`-`uname -m`"
448 AC_MSG_CHECKING([for HLT PubSub Framework release type])
449 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
450 homer_type="production"
451 HOMER_TARGET="${HOMER_TARGET}-release"
452 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
454 HOMER_TARGET="${HOMER_TARGET}-debug"
456 AC_MSG_RESULT([${homer_type}])
457 HOMERREADER_HEADER=HOMERReader.h
458 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
459 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
460 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
461 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
462 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
466 AC_CHECK_HEADER([$HOMERREADER_HEADER],
467 [ AC_CHECK_LIB([HOMER],[_init],
469 HOMER_LIBS="-lHOMER"],
470 [ AC_CHECK_LIB([HOMERReader],[_init],
472 HOMER_LIBS="-lHOMERReader"])])
473 LIBS="$LIBS $HOMER_LIBS"
474 AC_MSG_CHECKING([version of HOMER library])
475 dnl The Homer library has no versioning, so we do our own
476 dnl version description
477 dnl ----------------------------------------------------------------------
478 dnl 1 inintial version
479 dnl 2 GetBlockStatusFlags added to the interface
480 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
481 [HOMERReader reader("dummy", 0);
482 reader.GetBlockStatusFlags(0);])],
485 AC_MSG_RESULT([$HOMER_VERSION])
487 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
491 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
493 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
494 HOMERREADER_HEADER=AliHLTHOMERReader.h
495 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
501 if test "x$with_homer" = "xno" ; then
506 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
507 AC_DEFINE(HAVE_HOMERREADER)
509 CPPFLAGS="$save_CPPFLAGS"
510 LDFLAGS="$save_LDFLAGS"
513 AC_SUBST([HOMERREADER_HEADER])
514 AC_SUBST([HOMER_INBUILT_LIB])
515 AC_SUBST([HOMER_CPPFLAGS])
516 AC_SUBST([HOMER_LDFLAGS])
517 AC_SUBST([HOMER_LIBDIR])
518 AC_SUBST([HOMER_BINDIR])
519 AC_SUBST([HOMER_LIBS])
521 dnl ------------------------------------------------------------------
523 [AC_HELP_STRING([--disable-all],
524 [disable all detector modules, individual modules can be switched on by --enable-det])],
525 [disable_all=yes],[])
527 dnl ------------------------------------------------------------------
528 AC_MSG_CHECKING([whether to impose strict coding conventions])
529 AC_ARG_ENABLE(strict,
530 [AC_HELP_STRING([--disable-strict],
531 [disable coding convention checks ])],
532 [],[enable_strict=yes])
533 if test "x$enable_strict" = "xyes" ; then
534 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
536 AC_MSG_RESULT([$enable_strict])
538 dnl ------------------------------------------------------------------
539 AC_MSG_CHECKING([whether to enable component statistics])
540 AC_ARG_ENABLE(component-stat,
541 [AC_HELP_STRING([--enable-component-stat],
542 [enable component statistics ])],
543 [],[enable_component_stat=no])
544 if test "x$enable_component_stat" = "xyes" ; then
545 AC_DEFINE(HLT_COMPONENT_STATISTICS)
547 AC_MSG_RESULT([$enable_component_stat])
549 dnl ------------------------------------------------------------------
550 dnl ---- module checks
551 dnl ------------------------------------------------------------------
552 save_CPPFLAGS=$CPPFLAGS
553 save_LDFLAGS=$LDFLAGS
556 dnl ------------------------------------------------------------------
557 AC_MSG_NOTICE([-------------------------------------------------])
558 AC_MSG_NOTICE([checking dependencies for HLTbase library])
559 HLTBASE_CHECKLIBS='XMLParser'
560 for CHECKLIB in $HLTBASE_CHECKLIBS ; do
561 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
562 LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS"
563 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"])
565 AC_SUBST([ALIHLTBASE_LIBS])
567 dnl ------------------------------------------------------------------
568 AC_MSG_CHECKING([whether to compile sample library])
569 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
570 AC_ARG_ENABLE(sample,
571 [AC_HELP_STRING([--disable-sample],
572 [compile the sample library ])],
574 [if test "x$have_aliroot" = "xno" ; then
575 enable_sample="no...requires.AliRoot"
581 if test "x$enable_sample" = "xyes" ; then
582 AC_DEFINE(HLT_SAMPLE)
584 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
585 AC_MSG_RESULT([$enable_sample])
587 dnl ------------------------------------------------------------------
588 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
590 CHECK_HLTMODULE([util],
592 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6],
593 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
594 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
595 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
597 if test "x$enable_module" = "xmissheader"; then
598 enable_module="no...missing.headers"
599 enable_util=$enable_module
600 elif test "x$enable_module" = "xforce"; then
603 enable_util=$enable_module
605 if test "x$enable_util" = "xyes" ; then
607 ALIUTIL_LIBS=$ALIHLTMODULE_LIBS
609 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
610 AC_MSG_CHECKING([whether to compile Util library])
611 AC_MSG_RESULT([$enable_module])
612 AC_SUBST([ALIUTIL_LIBS])
614 dnl ------------------------------------------------------------------
615 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
618 CHECK_HLTMODULE([tpc],
620 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
621 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
622 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
623 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
625 if test "x$enable_module" = "xmissheader"; then
626 enable_module="no...missing.headers"
627 enable_tpc=$enable_module
628 elif test "x$enable_module" = "xforce"; then
631 enable_tpc=$enable_module
634 if test "x$enable_tpc" = "xyes" ; then
637 ALITPC_LIBS=$ALIHLTMODULE_LIBS
639 dnl Check for functionality in the TPC reconstruction required for online
642 have_tpc_hltoffline_rec=no
643 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
644 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
645 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
646 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
647 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
648 #include <AliTPCclustererMI.h>
649 #include <TObjArray.h>],
650 [AliTPCtrackerMI tracker;
651 TObjArray* array=NULL;
652 tracker.LoadClusters(array);
653 AliTPCclustererMI cl(NULL, NULL);
654 cl.GetOutputClonesArray();])],
655 [have_tpc_hltoffline_rec=yes],
656 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
658 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
660 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
661 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
662 AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)])
665 if test ! "x$have_aliroot" = "xno" ; then
666 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
667 # which is stored in the TPC/mapping/Patchx.data files from
668 # AliRoot version v4-04-Release (May 2006)
669 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
670 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
671 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
672 [have_tpc_mapping=yes
673 AC_SUBST(TPC_PAD_MAPPING_PATH)
674 AC_DEFINE(HAVE_TPC_MAPPING)],
678 AC_MSG_CHECKING([for TPC mapping layout])
679 AC_MSG_RESULT([$have_tpc_mapping])
683 enable_module=$enable_tpc
685 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
686 AC_MSG_CHECKING([whether to compile TPC library])
687 AC_MSG_RESULT([$enable_module])
688 AC_SUBST([ALITPC_LIBS])
690 dnl ------------------------------------------------------------------
691 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
693 CHECK_HLTMODULE([rcu],
695 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
696 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
697 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
698 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
700 if test "x$enable_module" = "xmissheader"; then
701 enable_module="no...missing.headers"
702 enable_rcu=$enable_module
703 elif test "x$enable_module" = "xforce"; then
707 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
708 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
709 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
710 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
711 [AliAltroDecoder decoder;
712 decoder.CopyBackward(NULL, 0);])],
713 [enable_rcu=$enable_module],
714 [enable_module="no...requires.AliRoot>v4-10-Release"
715 enable_rcu="no...requires.AliRoot>v4-10-Release"])
716 CPPFLAGS=$save_CPPFLAGS
717 LDFLAGS=$save_LDFLAGS
722 if test "x$enable_rcu" = "xyes" ; then
725 enable_module=$enable_rcu
727 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
728 AC_MSG_CHECKING([whether to compile RCU library])
729 AC_MSG_RESULT([$enable_module])
730 AC_SUBST([ALIRCU_LIBS])
732 dnl ------------------------------------------------------------------
733 AH_TEMPLATE([HLT_CALO],[hlt calo(rimeter) library])
736 CHECK_HLTMODULE([calo],
737 [], [$ALIROOT_CPPFLAGS],
738 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
739 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
740 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
742 if test "x$enable_module" = "xmissheader"; then
743 enable_module="no...missing.headers"
744 enable_calo=$enable_module
745 elif test "x$enable_module" = "xforce"; then
748 have_alicalorawstream=no
749 if test ! "x$have_aliroot" = "xno" ; then
751 save_CPPFLAGS="$CPPFLAGS"
752 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
753 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
754 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
755 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
756 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
757 #include <AliCaloRawStream.h>],
759 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
760 have_alicalorawstream=yes],
762 AC_MSG_RESULT([$have_alicalorawstream])
764 CPPFLAGS="$save_CPPFLAGS"
766 if test "x$have_alicalorawstream" != "xyes"; then
767 enable_calo="no...requires.AliRoot>v4-05-07"
769 enable_calo=$enable_module
773 if test "x$enable_calo" = "xyes" ; then
775 ALICALO_LIBS=$ALIHLTMODULE_LIBS
777 enable_module=$enable_calo
779 AM_CONDITIONAL(EN_HLT_CALO, test x$enable_calo = xyes)
780 AC_MSG_CHECKING([whether to compile CALO library])
781 AC_MSG_RESULT([$enable_module])
782 AC_SUBST([ALICALO_LIBS])
784 dnl ------------------------------------------------------------------
785 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
788 CHECK_HLTMODULE([phos],
789 [], [$ALIROOT_CPPFLAGS],
790 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
791 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
792 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
794 if test "x$enable_module" = "xmissheader"; then
795 enable_module="no...requires.AliRoot>v4-05-07"
796 enable_phos=$enable_module
797 elif test "x$enable_module" = "xforce"; then
800 have_alicalorawstream=no
801 if test ! "x$have_aliroot" = "xno" ; then
803 save_CPPFLAGS="$CPPFLAGS"
804 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
805 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
806 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
807 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
808 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
809 #include <AliCaloRawStream.h>],
811 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
812 have_alicalorawstream=yes],
814 AC_MSG_RESULT([$have_alicalorawstream])
815 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
816 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
817 [AliPHOSRecoParam param;
818 param.GetEMCClusteringThreshold()])],
819 [have_aliphosrecoparam=yes],
820 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
821 AC_MSG_RESULT([$have_aliphosrecoparam])
823 CPPFLAGS="$save_CPPFLAGS"
825 if test "x$have_alicalorawstream" != "xyes"; then
826 enable_phos="no...requires.AliRoot>v4-05-07"
828 enable_phos=$enable_module
832 if test "x$enable_phos" = "xyes" ; then
834 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
836 enable_module=$enable_phos
838 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
839 AC_MSG_CHECKING([whether to compile PHOS library])
840 AC_MSG_RESULT([$enable_module])
841 AC_SUBST([ALIPHOS_LIBS])
843 dnl ------------------------------------------------------------------
844 AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
847 CHECK_HLTMODULE([emcal],
848 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL],
849 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
850 [EMCALrec EMCALsim EMCALbase EMCALUtils], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
851 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
853 if test "x$enable_module" = "xmissheader"; then
854 enable_module="no...header.missing"
855 enable_emcal=$enable_module
856 elif test "x$enable_module" = "xforce"; then
859 enable_emcal=$enable_module
862 if test "x$enable_emcal" = "xyes" ; then
864 ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
866 enable_module=$enable_emcal
868 AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
869 AC_MSG_CHECKING([whether to compile EMCAL library])
870 AC_MSG_RESULT([$enable_module])
871 AC_SUBST([ALIEMCAL_LIBS])
873 dnl ------------------------------------------------------------------
874 AH_TEMPLATE([HLT_TRD],[hlt trd library])
877 CHECK_HLTMODULE([trd],
879 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
880 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
881 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
883 if test "x$enable_module" = "xmissheader"; then
884 enable_module="no...requires.AliRoot>v4-07-Release"
885 enable_trd=$enable_module
886 elif test "x$enable_module" = "xforce"; then
889 enable_trd=$enable_module
890 if test "x$enable_trd" = "xyes" ; then
892 save_CPPFLAGS="$CPPFLAGS"
893 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
894 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
895 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
896 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
897 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
898 # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
899 # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009
900 AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
901 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
902 [AliTRDclusterizer c;
903 c.GetAddedClusters()])],
905 [enable_trd="no...requires.AliRoot>v4-16-Release"])
906 AC_MSG_RESULT([$enable_trd])
908 if test "x$enable_trd" = "xyes" ; then
909 have_alitrdrecoparam_r34995=no
910 AC_MSG_CHECKING([checking for AliTRDrecoParam r34995])
911 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>],
912 [AliTRDrecoParam param;
913 param.SetPIDNeuralNetwork(kFALSE)]);],
914 [have_alitrdrecoparam_r34995=yes],
915 [AC_DEFINE(HAVE_NOT_ALITRDRECOPARAM_r34995)])
916 AC_MSG_RESULT([$have_alitrdrecoparam_r34995])
921 CPPFLAGS="$save_CPPFLAGS"
925 if test "x$enable_trd" = "xyes" ; then
927 ALITRD_LIBS=$ALIHLTMODULE_LIBS
929 enable_module=$enable_trd
931 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
932 AC_MSG_CHECKING([whether to compile TRD library])
933 AC_MSG_RESULT([$enable_module])
934 AC_SUBST([ALITRD_LIBS])
936 dnl ------------------------------------------------------------------
937 AH_TEMPLATE([HLT_FMD],[hlt fmd library])
939 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
940 CHECK_HLTMODULE([fmd],
942 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
943 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
944 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
946 if test "x$enable_module" = "xmissheader"; then
947 enable_module="no...missing.headers"
948 enable_fmd=$enable_module
949 elif test "x$enable_module" = "xforce"; then
952 enable_fmd=$enable_module
955 if test "x$enable_fmd" = "xyes" ; then
957 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
959 enable_module=$enable_fmd
961 AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
962 AC_MSG_CHECKING([whether to compile FMD library])
963 AC_MSG_RESULT([$enable_module])
964 AC_SUBST([ALIFMD_LIBS])
966 dnl ------------------------------------------------------------------
967 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
970 CHECK_HLTMODULE([dimuon],
971 [AliMpExMap.h AliMUONTriggerIO.h],
972 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
973 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
974 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
975 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
977 if test "x$enable_module" = "xmissheader"; then
978 enable_module="no...requires.AliRoot>=v4-08-Release"
979 enable_muon=$enable_module
980 elif test "x$enable_module" = "xforce"; then
983 enable_muon=$enable_module
986 if test "x$enable_muon" = "xyes" ; then
988 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
990 save_CPPFLAGS="$CPPFLAGS"
993 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
995 have_muon_digitmaker_getrawstream=no
996 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
997 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
998 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
999 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1000 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
1001 [AliMUONDigitMaker dm;
1002 dm.GetRawStreamTracker();])],
1003 [have_muon_digitmaker_getrawstream=yes],
1004 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
1006 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
1009 dnl Check for AliMpPad::GetPositionX/Y
1010 dnl change of implementation in MUON code
1011 dnl revision 31769, Wed Apr 1 2009
1013 have_muon_alimppad_getposition=no
1014 AC_MSG_CHECKING(for GetPosition methods of AliMpPad)
1015 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping"
1016 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1017 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1018 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMpPad.h>],
1020 pad.GetPositionX();])],
1021 [have_muon_alimppad_getposition=yes],
1022 [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)])
1024 AC_MSG_RESULT([$have_muon_alimppad_getposition])
1026 CPPFLAGS="$save_CPPFLAGS"
1030 enable_module=$enable_muon
1032 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
1033 AC_MSG_CHECKING([whether to compile MUON library])
1034 AC_MSG_RESULT([$enable_module])
1035 AC_SUBST([ALIMUON_LIBS])
1037 dnl ------------------------------------------------------------------
1038 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
1041 CHECK_HLTMODULE([trigger],
1042 [], [$ALIROOT_CPPFLAGS],
1043 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1044 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1045 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1047 if test "x$enable_module" = "xmissheader"; then
1048 enable_module="no...header.missing"
1049 enable_trigger=$enable_module
1050 elif test "x$enable_module" = "xforce"; then
1051 enable_trigger="yes"
1053 enable_trigger=$enable_module
1056 if test "x$enable_trigger" = "xyes" ; then
1057 AC_DEFINE(HLT_TRIGGER)
1058 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
1060 enable_module=$enable_trigger
1062 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
1063 AC_MSG_CHECKING([whether to compile Trigger library])
1064 AC_MSG_RESULT([$enable_module])
1065 AC_SUBST([ALITRIGGER_LIBS])
1067 dnl ------------------------------------------------------------------
1068 AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
1071 CHECK_HLTMODULE([global],
1072 [], [$ALIROOT_CPPFLAGS],
1073 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1074 [PHOSUtils ], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1075 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1077 if test "x$enable_module" = "xmissheader"; then
1078 enable_module="no...header.missing"
1079 enable_global=$enable_module
1080 elif test "x$enable_module" = "xforce"; then
1083 enable_global=$enable_module
1084 if test "x$enable_global" = "xyes" ; then
1086 save_CPPFLAGS="$CPPFLAGS"
1087 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
1088 AC_MSG_CHECKING([for required functions in AliESDtrack])
1089 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>],
1091 t.SetGlobalChi2(0)])],
1093 [enable_global="no...requires.AliRoot>v4-17-Release"])
1094 AC_MSG_RESULT([$enable_global])
1096 CPPFLAGS="$save_CPPFLAGS"
1100 if test "x$enable_global" = "xyes" ; then
1101 AC_DEFINE(HLT_GLOBAL)
1102 ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
1104 enable_module=$enable_global
1106 AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
1107 AC_MSG_CHECKING([whether to compile Global library])
1108 AC_MSG_RESULT([$enable_module])
1109 AC_SUBST([ALIGLOBAL_LIBS])
1111 dnl ------------------------------------------------------------------
1112 AH_TEMPLATE([HLT_JET],[hlt jet library])
1115 ALIFASTJET_INCFLAGS=
1118 AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
1119 [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
1120 [ test -n $FASTJET && with_fastjet=$FASTJET ])
1122 if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
1123 ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
1124 ALIFASTJET_HEADER="PseudoJet.hh"
1125 ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
1126 ALIFASTJET_LIBS="CGAL fastjet"
1131 CHECK_HLTMODULE([jet],
1132 [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
1133 [$ALIFASTJET_LIBS], [-L$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
1134 [AOD ESD ANALYSIS ANALYSISalice JETAN],
1135 [-L$ROOTLIBDIR $ALIROOT_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
1136 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1138 if test "x$enable_module" = "xmissheader"; then
1139 enable_module="no...header.missing"
1140 enable_jet=$enable_module
1141 elif test "x$enable_module" = "xforce"; then
1144 enable_jet=$enable_module
1147 if test "x$enable_jet" = "xyes" ; then
1149 ALIJET_LIBS="$ALIHLTMODULE_LIBS"
1151 if test "x$with_fastjet" != "xno"; then
1152 AC_DEFINE(HAVE_FASTJET)
1153 AC_DEFINE(WITHFASTJET)
1154 ALIJET_LIBS="$ALIJET_LIBS -L$FASTJET_LDFLAGS"
1156 AC_MSG_CHECKING([compilation with FASTJET package])
1157 AC_MSG_RESULT($with_fastjet)
1160 enable_module=$enable_jet
1163 AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
1164 AC_MSG_CHECKING([whether to compile Jet library])
1165 AC_MSG_RESULT([$enable_module])
1166 AC_SUBST([ALIJET_LIBS])
1168 dnl ------------------------------------------------------------------
1169 AH_TEMPLATE([HLT_ITS],[hlt its library])
1172 CHECK_HLTMODULE([its],
1173 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
1174 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1175 [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1176 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1178 if test "x$enable_module" = "xmissheader"; then
1179 enable_module="no...header.missing"
1180 enable_its=$enable_module
1181 elif test "x$enable_module" = "xforce"; then
1184 enable_its=$enable_module
1185 if test "x$enable_its" = "xyes" ; then
1187 save_CPPFLAGS="$CPPFLAGS"
1188 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1189 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1190 # require AliVertexer::GetNominalPos()
1191 AC_MSG_CHECKING([for required functions in AliITSVertexer])
1192 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
1194 v.GetNominalPos()])],
1196 [enable_its="no...requires.AliRoot>v4-13-Release"])
1197 AC_MSG_RESULT([$enable_its])
1199 CPPFLAGS="$save_CPPFLAGS"
1203 if test "x$enable_its" = "xyes" ; then
1205 ALIITS_LIBS=$ALIHLTMODULE_LIBS
1207 enable_module=$enable_its
1209 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1210 AC_MSG_CHECKING([whether to compile ITS library])
1211 AC_MSG_RESULT([$enable_module])
1212 AC_SUBST([ALIITS_LIBS])
1214 dnl ------------------------------------------------------------------
1215 AH_TEMPLATE([HLT_COMP],[hlt comp library])
1218 CHECK_HLTMODULE([comp],
1219 [], [$ALIROOT_CPPFLAGS],
1220 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1221 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1222 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1224 if test "x$enable_module" = "xmissheader"; then
1225 enable_module="no...header.missing"
1226 enable_comp=$enable_module
1227 elif test "x$enable_module" = "xforce"; then
1230 enable_comp=$enable_module
1233 if test "x$enable_comp" = "xyes" ; then
1235 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
1237 enable_module=$enable_comp
1239 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1240 AC_MSG_CHECKING([whether to compile comp library])
1241 AC_MSG_RESULT([$enable_module])
1242 AC_SUBST([ALICOMP_LIBS])
1244 dnl ------------------------------------------------------------------
1245 AC_MSG_CHECKING([whether to disable AliRoot logging])
1246 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1247 AC_ARG_ENABLE(aliroot-logging,
1248 [AC_HELP_STRING([--disable-aliroot-logging],
1249 [disable logging through AliRoot logging methods])],
1250 [],[enable_aliroot_logging=no])
1251 if test "x$have_aliroot" = "xno" ; then
1252 enable_aliroot_logging=yes # this means 'disable'
1254 if test "x$enable_aliroot_logging" != "xno" ; then
1255 AC_DEFINE(NOALIROOT_LOGGING)
1257 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1258 AC_MSG_RESULT([$enable_aliroot_logging])
1260 dnl ------------------------------------------------------------------
1261 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1262 AH_TEMPLATE([DOMC],[MC saving])
1263 AC_ARG_ENABLE(mc-saving,
1264 [AC_HELP_STRING([--enable-mc-saving],
1265 [enable saving MC data through the chain])],
1266 [],[enable_mc_saving=no])
1267 if test "x$enable_mc_saving" = "xyes" ; then
1270 AC_MSG_RESULT([$enable_mc_saving])
1272 dnl ------------------------------------------------------------------
1273 dnl certainly something old, but we keep the define
1274 AC_MSG_CHECKING([whether to use ROWHOUGH])
1275 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1276 AC_ARG_ENABLE(rowhough,
1277 [AC_HELP_STRING([--enable-rowhough],
1279 [],[enable_rowhough=no])
1280 if test "x$enable_rowhough" = "xyes" ; then
1281 AC_DEFINE(USEROWHOUGH)
1283 AC_MSG_RESULT([$enable_rowhough])
1285 dnl ------------------------------------------------------------------
1286 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1287 dnl stand-alone build system. This is most likely something old we can
1288 dnl get rid off later, or do something more reasonable. Since the define
1289 dnl needs the quotes they have to be escaped. This works well for the
1290 dnl Makefile but not for the configure script. So we have to add the
1291 dnl defines after all the other checks.
1292 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1293 if test ! "x$have_aliroot" = "xno" ; then
1294 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1297 dnl ------------------------------------------------------------------
1301 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1302 AC_PATH_PROG(PERL, perl)
1303 AC_PATH_PROG(DOXYGEN, doxygen)
1305 [AC_HELP_STRING([--enable-dot],
1306 [enable dot documentation generator])],
1310 AC_PATH_PROG(DOT, dot)
1311 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1313 DOT_PATH=`dirname $DOT`
1316 AC_MSG_CHECKING([for documentation mode])
1318 [AC_HELP_STRING([--disable-doc],
1319 [disable documentation build; monolithic build --enable-doc=mono ])],
1320 [],[enable_doc=modules])
1322 if test "x$DOXYGEN" = "x" ; then
1323 enable_doc=no.doxygen
1324 elif test "x$enable_doc" = "xyes" ; then
1326 elif test ! "x$enable_doc" = "xmono" && \
1327 test ! "x$enable_doc" = "xmodules" && \
1328 test ! "x$enable_doc" = "xno"; then
1330 AC_MSG_WARN([unknown option])
1332 if test "x$enable_doc" = "xno" ; then
1337 AC_MSG_RESULT([$enable_doc])
1338 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1339 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1340 AC_SUBST([HAVE_DOT])
1341 AC_SUBST([DOT_PATH])
1343 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1344 dnl echo $HAVE_SRC_SUBDIR
1345 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1346 dnl HAVE_SRC_SUBDIR=
1348 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1350 dnl ------------------------------------------------------------------
1351 AC_MSG_NOTICE([---------------------------------------------- ])
1352 AC_MSG_NOTICE([ build summary ])
1353 AC_MSG_NOTICE([---------------------------------------------- ])
1355 AC_CONFIG_FILES([Makefile
1361 BASE/util/test/Makefile
1362 BASE/interface/Makefile
1364 BASE/interface/test/Makefile
1367 doc/doxymodule.conf])
1369 dnl AliRoot and installation directory for libraries
1371 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1372 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1373 if test "x$have_aliroot" != "xno"; then
1374 AC_CONFIG_FILES([sim/Makefile
1377 rec/startAliEVE-barrel-tracks.sh
1384 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1385 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1386 AC_MSG_NOTICE([libdir set to $libdir])
1389 AC_MSG_NOTICE([compile sample library: $enable_sample])
1390 if test "x$enable_sample" = "xyes"; then
1391 AC_CONFIG_FILES([SampleLib/Makefile])
1394 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1395 if test "x$enable_rcu" = "xyes"; then
1396 AC_CONFIG_FILES([RCU/Makefile
1401 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1402 if test "x$enable_tpc" = "xyes"; then
1403 AC_CONFIG_FILES([TPCLib/Makefile
1404 TPCLib/test/Makefile
1405 TPCLib/mapping2array.cxx
1407 TPCLib/calibration/Makefile
1411 AC_MSG_NOTICE([compile CALO library: $enable_calo])
1412 if test "x$enable_calo" = "xyes"; then
1413 AC_CONFIG_FILES([CALO/Makefile
1414 CALO/test/Makefile])
1417 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1418 if test "x$enable_phos" = "xyes"; then
1419 AC_CONFIG_FILES([PHOS/Makefile])
1422 AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1423 if test "x$enable_emcal" = "xyes"; then
1424 AC_CONFIG_FILES([EMCAL/Makefile])
1427 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1428 if test "x$enable_trd" = "xyes"; then
1429 AC_CONFIG_FILES([TRD/Makefile])
1432 AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1433 if test "x$enable_fmd" = "xyes"; then
1434 AC_CONFIG_FILES([FMD/Makefile])
1437 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1438 if test "x$enable_muon" = "xyes"; then
1439 AC_CONFIG_FILES([MUON/Makefile])
1442 AC_MSG_NOTICE([compile ITS library: $enable_its])
1443 if test "x$enable_its" = "xyes"; then
1444 AC_CONFIG_FILES([ITS/Makefile])
1447 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1448 if test "x$enable_trigger" = "xyes"; then
1449 AC_CONFIG_FILES([trigger/Makefile
1450 trigger/test/Makefile])
1453 AC_MSG_NOTICE([compile global library: $enable_global])
1454 if test "x$enable_global" = "xyes"; then
1455 AC_CONFIG_FILES([global/Makefile])
1458 AC_MSG_NOTICE([compile jet library: $enable_jet])
1459 if test "x$enable_jet" = "xyes"; then
1460 AC_CONFIG_FILES([JET/Makefile])
1463 AC_MSG_NOTICE([compile comp library: $enable_comp])
1464 if test "x$enable_comp" = "xyes"; then
1465 AC_CONFIG_FILES([comp/Makefile])