1 dnl -*- mode: autoconf -*-
4 dnl template for the configuration script for the Alice HLT
5 dnl framework and components
7 dnl ------------------------------------------------------------------
9 dnl Take either the AliRoot tag as version id or the current revision
10 AC_INIT([Alice High Level Trigger] ,
11 m4_esyscmd([url=`svn info 2> /dev/null | grep "URL:" | cut -d: -f3 | sed -e 's|[/]*HLT[/]*$||' | sed -e 's|^[/]*||g' | cut -d '/' -f 4`; \
12 revision=`svn info 2> /dev/null | grep "Revision:" | cut -d ' ' -f 2 | cut -d '/' -f 4`; \
13 if test "x$url" != "x"; then echo -n $url; \
14 elif test "x$revision" != "x"; then echo -n $revision ; \
15 elif test -e .revision && test x`cat .revision` != x; then \
18 echo -n invalid-version; \
20 [Matthias.Richter@ift.uib.no],
23 dnl ------------------------------------------------------------------
24 dnl the package from CVS contains the old Makefiles as well. In order to
25 dnl prevent them from becoming overwritten, we require a separate build
27 if test "`dirname $0`" = "." ; then
28 AC_ERROR([please run the script from a separate build directory])
31 dnl ------------------------------------------------------------------
33 AC_PREFIX_DEFAULT(${PWD})
34 AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
42 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
44 dnl ------------------------------------------------------------------
45 dnl A warning posted into the auto-generated files
46 dnl Does NOT concern this file ;-)
47 AUTOGENERATED_WARNING="!!!!!!! DO NOT EDIT THIS FILE !!!!!!"
48 AC_SUBST([AUTOGENERATED_WARNING])
50 dnl ------------------------------------------------------------------
54 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
55 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
57 ROOTBINDIR=`dirname $ROOTEXEC`
58 AC_SUBST([ROOTBINDIR])
60 dnl test for additional required root libraries and headers
62 if test "x$have_root" = "x1"; then
64 save_CPPFLAGS=$CPPFLAGS
67 CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
69 # we check for the libSTEER library which is linked to
70 # - the ROOT libs libGeom libMinuit libVMC libEG
71 # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
72 # - ROOT libCint needs also libdl
73 # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
75 # - from Jan 07 libESD also depends on libXMLIO
76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
77 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
78 for CHECKLIB in $ROOT_CHECKLIBS ; do
79 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
80 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
81 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
84 # TBuffer.h has been made pure virtual in root v5-15-02 and one
85 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
86 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
88 # TView.h has been made pure virtual right after root v5-15-02 and one
89 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
90 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
92 CPPFLAGS=$save_CPPFLAGS
98 dnl ------------------------------------------------------------------
99 # TODO: make this configurable through arguments
100 #Define whether you want to run with ALIROOT or only ROOT
101 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
102 ALIHLT_USEPACKAGE=ALIROOT
103 #ALIHLT_USEPACKAGE=ROOT
104 #ALIHLT_USEPACKAGE=STANDALONE
105 AC_DEFINE(use_aliroot)
107 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
108 save_CPPFLAGS=$CPPFLAGS
109 save_LDFLAGS=$LDFLAGS
112 dnl ------------------------------------------------------------------
113 dnl check for AliRoot features
116 AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
117 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
120 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
121 dnl ------------------------------------------------------------------
122 dnl Try to estimate the system architecture
123 case $host_os:$host_cpu in
124 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
125 linux*) alice_target='linux' ;;
126 *) alice_target='unknown' ;;
128 if test "x$alice_target" = "xunknown" ; then
129 if test -z $ALICE_TARGET ; then
130 AC_MSG_ERROR([Can not estimate system architecture.
131 To avoid the problem, set the ALICE_TARGET variable appropriately.
132 Please send the following information to Matthias.Richter@ift.uib.no:
133 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
135 AC_MSG_NOTICE([Unknown system architecture.
136 Please send the following information to Matthias.Richter@ift.uib.no:
137 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
140 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
141 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
142 overriding $ALICE_TARGET by $alice_target])
144 ALICE_TARGET=$alice_target
146 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
147 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
148 ALIROOTINCDIR=${ALICE_ROOT}/include
149 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
150 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
151 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
154 AC_MSG_CHECKING([for AliRoot])
155 if test "x$ALICE_ROOT" != "x" \
156 && test -d ${ALIROOTBINDIR} \
157 && test -d ${ALIROOTLIBDIR} \
158 && test -d ${ALIROOTINCDIR}; then
159 have_aliroot=$ALICE_ROOT
165 AC_MSG_RESULT([$have_aliroot])
167 if test ! "x$have_aliroot" = "xno" ; then
168 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
170 ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
171 save_CPPFLAGS=$CPPFLAGS
172 save_LDFLAGS=$LDFLAGS
174 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
175 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
177 # check for certain AliRoot libraries/files/features
178 # libSTEERBase present since Aug 7 2007
179 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
181 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
183 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
185 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
187 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
191 AC_CHECK_LIB([$CHECKLIB],[_init],
192 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
193 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
195 AC_CHECK_LIB([$CHECKLIB],[_init],
196 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
197 have_alirawdata=$CHECKLIB])],
198 [# second pass with -RAWData
200 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
201 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
202 #include <AliRawReaderFile.h>
203 #include <AliRawReaderDate.h>
204 #include <AliRawReaderRoot.h>],
205 [AliRawReaderMemory mreader;
206 AliRawReaderFile freader;
207 AliRawReaderDate dreader(NULL,0);
208 AliRawReaderRoot rreader(NULL,0);])],
209 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
210 have_alirawdata=$CHECKLIB],
211 [have_alirawdata=no])
212 ]) dnl AC_CHECK_LIB RAWDatabase
213 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
214 AC_MSG_RESULT([$have_alirawdata])
216 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
217 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
219 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
221 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
223 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
226 dnl check whether AliLog supports notification callback
228 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
229 have_alilog_notification=no
230 if test ! "x$have_aliroot" = "xno" ; then
231 AC_MSG_CHECKING([whether AliLog supports notification callback])
232 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
233 [AliLog::AliLogNotification fct])],
234 [have_alilog_notification=yes],
235 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
236 AC_MSG_RESULT([$have_alilog_notification])
239 if test "x$have_aliroot" = "xno" ; then
240 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
241 # but library dependencies might not be resolved completely
243 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
244 This can happen from time to time due to development in AliRoot. You can
245 force compilation of detector libs by --enable-<detector>, but be aware
246 of unresolved references at runtime.])
247 AC_MSG_WARN([ ------------------------------------------ ])
248 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
249 AC_MSG_WARN([ please include config.log ])
250 AC_MSG_WARN([ ------------------------------------------ ])
256 dnl ESD supports non-std content
259 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
260 #include <AliExternalTrackParam.h>
262 #include <TClonesArray.h>],
264 esd.CreateStdContent();
265 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
266 esd.WriteToTree(tree);
267 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
268 a->SetName("SomeObject");
270 if (!tree->FindBranch("SomeObject")) return 1;
272 [have_esd_nonstd=yes],
273 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
274 AC_MSG_CHECKING(whether ESD supports non standard content)
275 AC_MSG_RESULT([$have_esd_nonstd])
278 dnl ESD copy function added May 9 2008 rev 25667
280 if test "x$have_esd_nonstd" != "xyes"; then
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
287 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
288 AC_MSG_CHECKING(for ESD assignment operator)
289 AC_MSG_RESULT([$have_esd_copy])
293 dnl AliRawReaderMemory support for multiple buffers added
294 dnl revision 26829 Jun 2008
296 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
297 have_rawreadermemory_multbuffers=no
298 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
299 [AliRawReaderMemory rr;
300 rr.AddBuffer(NULL, 0, 0);])],
301 [have_rawreadermemory_multbuffers=yes],
302 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
303 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
304 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
307 dnl required header files and libraries for modules
311 dnl Check for the interface of AliExternalTrackParam which has been changed
312 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
314 externaltrackparam_version=1
315 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
316 [AliExternalTrackParam trackparam;
317 Double_t param[[5]]; Double_t covar[[15]];
318 trackparam.Set(0., 0., param, covar);])],
319 [externaltrackparam_version=2],
320 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
321 AC_MSG_CHECKING(for version of AliExternalTrackParam)
322 AC_MSG_RESULT($externaltrackparam_version)
324 CPPFLAGS=$save_CPPFLAGS
325 LDFLAGS=$save_LDFLAGS
327 fi # if test ! "x$have_aliroot" = "xno"
330 AC_SUBST([ALICE_ROOT])
331 AC_SUBST([ALIROOT_CPPFLAGS])
332 AC_SUBST([ALIROOT_LDFLAGS])
333 AC_SUBST([ALIROOTBINDIR])
334 AC_SUBST([ALIROOTLIBDIR])
335 AC_SUBST([ALIROOT_LIBS])
336 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
338 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
340 AC_SUBST([HLTBASE_CPPFLAGS])
341 AC_SUBST([HLTBASE_LDFLAGS])
343 dnl ------------------------------------------------------------------
344 dnl check for the HLT PubSub Framework
345 dnl namely for the existence of the HOMER library
346 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
347 dnl package. It os though possible to choose an external. library
348 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
349 dnl got the name libAliHLTHOMER
350 AC_MSG_CHECKING([for HLT PubSub Framework])
351 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
353 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
354 if test -z $with_pubsub || ! test -d $with_pubsub ; then
357 AC_MSG_RESULT([$with_pubsub])
361 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
362 if test "x$with_pubsub" != "xno" ; then
363 save_CPPFLAGS=$CPPFLAGS
364 save_LDFLAGS=$LDFLAGS
366 # currently the different versions of the HLT PubSub framework have a different
368 if test -d ${with_pubsub}/include/HOMER ; then
369 # the 'early' location of the include files with separated HOMER sub dirs
370 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
371 elif test -d ${with_pubsub}/include/Util/HOMER ; then
372 # location for HLT Framework versions after Sep 2006
373 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
374 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
375 # fall back if include files were not installed (versions after Sep 06)
376 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
378 # fall back if include files were not installed (versions before Sep 06)
379 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
381 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
383 AC_ARG_ENABLE(pubsub-debug,
384 [AC_HELP_STRING([--disable-pubsub-debug],
385 [force the production version of the PubSub framework])],
386 [],[enable_pubsub_debug=yes])
388 HOMER_TARGET="`uname -s`-`uname -m`"
389 AC_MSG_CHECKING([for HLT PubSub Framework release type])
390 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
391 homer_type="production"
392 HOMER_TARGET="${HOMER_TARGET}-release"
393 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
395 HOMER_TARGET="${HOMER_TARGET}-debug"
397 AC_MSG_RESULT([${homer_type}])
398 HOMERREADER_HEADER=HOMERReader.h
399 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
400 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
401 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
402 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
403 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
407 AC_CHECK_HEADER([$HOMERREADER_HEADER],
408 [ AC_CHECK_LIB([HOMER],[_init],
410 HOMER_LIBS="-lHOMER"],
411 [ AC_CHECK_LIB([HOMERReader],[_init],
413 HOMER_LIBS="-lHOMERReader"])])
414 LIBS="$LIBS $HOMER_LIBS"
415 AC_MSG_CHECKING([version of HOMER library])
416 dnl The Homer library has no versioning, so we do our own
417 dnl version description
418 dnl ----------------------------------------------------------------------
419 dnl 1 inintial version
420 dnl 2 GetBlockStatusFlags added to the interface
421 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
422 [HOMERReader reader("dummy", 0);
423 reader.GetBlockStatusFlags(0);])],
426 AC_MSG_RESULT([$HOMER_VERSION])
428 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
432 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
434 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
435 HOMERREADER_HEADER=AliHLTHOMERReader.h
436 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
442 if test "x$with_homer" = "xno" ; then
447 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
448 AC_DEFINE(HAVE_HOMERREADER)
450 CPPFLAGS="$save_CPPFLAGS"
451 LDFLAGS="$save_LDFLAGS"
454 AC_SUBST([HOMERREADER_HEADER])
455 AC_SUBST([HOMER_INBUILT_LIB])
456 AC_SUBST([HOMER_CPPFLAGS])
457 AC_SUBST([HOMER_LDFLAGS])
458 AC_SUBST([HOMER_LIBDIR])
459 AC_SUBST([HOMER_BINDIR])
460 AC_SUBST([HOMER_LIBS])
462 dnl ------------------------------------------------------------------
464 [AC_HELP_STRING([--disable-all],
465 [disable all detector modules, individual modules can be switched on by --enable-det])],
466 [disable_all=yes],[])
468 dnl ------------------------------------------------------------------
469 AC_MSG_CHECKING([whether to impose strict coding conventions])
470 AC_ARG_ENABLE(strict,
471 [AC_HELP_STRING([--disable-strict],
472 [disable coding convention checks ])],
473 [],[enable_strict=yes])
474 if test "x$enable_strict" = "xyes" ; then
475 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
477 AC_MSG_RESULT([$enable_strict])
479 dnl ------------------------------------------------------------------
480 AC_MSG_CHECKING([whether to enable component statistics])
481 AC_ARG_ENABLE(component-stat,
482 [AC_HELP_STRING([--enable-component-stat],
483 [enable component statistics ])],
484 [],[enable_component_stat=no])
485 if test "x$enable_component_stat" = "xyes" ; then
486 AC_DEFINE(HLT_COMPONENT_STATISTICS)
488 AC_MSG_RESULT([$enable_component_stat])
490 dnl ------------------------------------------------------------------
491 dnl ---- module checks
492 dnl ------------------------------------------------------------------
493 save_CPPFLAGS=$CPPFLAGS
494 save_LDFLAGS=$LDFLAGS
497 dnl ------------------------------------------------------------------
498 AC_MSG_CHECKING([whether to compile sample library])
499 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
500 AC_ARG_ENABLE(sample,
501 [AC_HELP_STRING([--disable-sample],
502 [compile the sample library ])],
504 [if test "x$have_aliroot" = "xno" ; then
505 enable_sample="no...requires.AliRoot"
511 if test "x$enable_sample" = "xyes" ; then
512 AC_DEFINE(HLT_SAMPLE)
514 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
515 AC_MSG_RESULT([$enable_sample])
517 dnl ------------------------------------------------------------------
518 AC_MSG_CHECKING([whether to compile util library])
519 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
521 [AC_HELP_STRING([--disable-util],
522 [compile the util library ])],
524 [if test "x$have_aliroot" = "xno" ; then
525 enable_util="no...requires.AliRoot"
531 if test "x$enable_util" = "xyes" ; then
534 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
535 AC_MSG_RESULT([$enable_util])
537 dnl ------------------------------------------------------------------
538 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
541 CHECK_HLTMODULE([tpc],
543 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
544 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
545 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
546 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
548 if test "x$enable_module" = "xmissheader"; then
549 enable_module="no...missing.headers"
550 enable_tpc="no...missing.headers"
551 elif test "x$enable_module" = "xforce"; then
554 enable_tpc=$enable_module
557 if test "x$enable_tpc" = "xyes" ; then
560 ALITPC_LIBS=$ALIHLTMODULE_LIBS
562 dnl Check for functionality in the TPC reconstruction required for online
565 have_tpc_hltoffline_rec=no
566 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
567 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
568 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
569 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
570 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
571 #include <AliTPCclustererMI.h>
572 #include <TObjArray.h>],
573 [AliTPCtrackerMI tracker;
574 TObjArray* array=NULL;
575 tracker.LoadClusters(array);
576 AliTPCclustererMI cl(NULL, NULL);
577 cl.GetOutputClonesArray();])],
578 [have_tpc_hltoffline_rec=yes],
579 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
581 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
583 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
584 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
587 if test ! "x$have_aliroot" = "xno" ; then
588 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
589 # which is stored in the TPC/mapping/Patchx.data files from
590 # AliRoot version v4-04-Release (May 2006)
591 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
592 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
593 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
594 [have_tpc_mapping=yes
595 AC_SUBST(TPC_PAD_MAPPING_PATH)
596 AC_DEFINE(HAVE_TPC_MAPPING)],
600 AC_MSG_CHECKING([for TPC mapping layout])
601 AC_MSG_RESULT([$have_tpc_mapping])
605 enable_module=$enable_tpc
607 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
608 AC_MSG_CHECKING([whether to compile TPC library])
609 AC_MSG_RESULT([$enable_module])
610 AC_SUBST([ALITPC_LIBS])
612 dnl ------------------------------------------------------------------
613 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
615 CHECK_HLTMODULE([rcu],
617 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
618 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
619 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
620 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
622 if test "x$enable_module" = "xmissheader"; then
623 enable_module="no...missing.headers"
624 enable_rcu="no...missing.headers"
625 elif test "x$enable_module" = "xforce"; then
629 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
630 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
631 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
632 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
633 [AliAltroDecoder decoder;
634 decoder.CopyBackward(NULL, 0);])],
635 [enable_rcu=$enable_module],
636 [enable_module="no...requires.AliRoot>v4-10-Release"
637 enable_rcu="no...requires.AliRoot>v4-10-Release"])
638 CPPFLAGS=$save_CPPFLAGS
639 LDFLAGS=$save_LDFLAGS
644 if test "x$enable_rcu" = "xyes" ; then
647 enable_module=$enable_rcu
649 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
650 AC_MSG_CHECKING([whether to compile RCU library])
651 AC_MSG_RESULT([$enable_module])
652 AC_SUBST([ALIRCU_LIBS])
654 dnl ------------------------------------------------------------------
655 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
658 CHECK_HLTMODULE([phos],
659 [], [$ALIROOT_CPPFLAGS],
660 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
661 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
662 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
664 if test "x$enable_module" = "xmissheader"; then
665 enable_module="no...requires.AliRoot>v4-05-07"
666 enable_phos="no...requires.AliRoot>v4-05-07"
667 elif test "x$enable_module" = "xforce"; then
670 have_alicalorawstream=no
671 if test ! "x$have_aliroot" = "xno" ; then
673 save_CPPFLAGS="$CPPFLAGS"
674 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
675 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
676 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
677 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
678 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
679 #include <AliCaloRawStream.h>],
681 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
682 have_alicalorawstream=yes],
684 AC_MSG_RESULT([$have_aliphosrecoparam])
685 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
686 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
687 [AliPHOSRecoParam param;
688 param.GetEMCClusteringThreshold()])],
689 [have_aliphosrecoparam=yes],
690 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
691 AC_MSG_RESULT([$have_alicalorawstream])
693 CPPFLAGS="$save_CPPFLAGS"
695 if test "x$have_alicalorawstream" != "xyes"; then
696 enable_phos="no...requires.AliRoot>v4-05-07"
698 enable_phos=$enable_module
702 if test "x$enable_phos" = "xyes" ; then
704 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
706 enable_module=$enable_phos
708 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
709 AC_MSG_CHECKING([whether to compile PHOS library])
710 AC_MSG_RESULT([$enable_module])
711 AC_SUBST([ALIPHOS_LIBS])
713 dnl ------------------------------------------------------------------
714 AH_TEMPLATE([HLT_TRD],[hlt trd library])
717 CHECK_HLTMODULE([trd],
719 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
720 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
721 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
723 if test "x$enable_module" = "xmissheader"; then
724 enable_module="no...requires.AliRoot>v4-07-Release"
725 enable_trd="no...requires.AliRoot>v4-07-Release"
726 elif test "x$enable_module" = "xforce"; then
729 enable_trd=$enable_module
730 if test "x$enable_trd" = "xyes" ; then
732 save_CPPFLAGS="$CPPFLAGS"
733 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
734 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
735 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
736 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
737 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
738 AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
739 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>],
740 [AliTRDReconstructor r;
743 [enable_trd="no...requires.AliRoot>v4-14-Release"])
744 AC_MSG_RESULT([$enable_trd])
746 CPPFLAGS="$save_CPPFLAGS"
750 if test "x$enable_trd" = "xyes" ; then
752 ALITRD_LIBS=$ALIHLTMODULE_LIBS
754 enable_module=$enable_trd
756 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
757 AC_MSG_CHECKING([whether to compile TRD library])
758 AC_MSG_RESULT([$enable_module])
759 AC_SUBST([ALITRD_LIBS])
761 dnl ------------------------------------------------------------------
762 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
765 CHECK_HLTMODULE([dimuon],
766 [AliMpExMap.h AliMUONTriggerIO.h],
767 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
768 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
769 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
770 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
772 if test "x$enable_module" = "xmissheader"; then
773 enable_module="no...requires.AliRoot>=v4-08-Release"
774 enable_muon="no...requires.AliRoot>=v4-08-Release"
775 elif test "x$enable_module" = "xforce"; then
778 enable_muon=$enable_module
781 if test "x$enable_muon" = "xyes" ; then
783 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
786 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
788 have_muon_digitmaker_getrawstream=no
789 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
790 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
791 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
792 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
793 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
794 [AliMUONDigitMaker dm;
795 dm.GetRawStreamTracker();])],
796 [have_muon_digitmaker_getrawstream=yes],
797 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
799 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
803 enable_module=$enable_muon
805 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
806 AC_MSG_CHECKING([whether to compile MUON library])
807 AC_MSG_RESULT([$enable_module])
808 AC_SUBST([ALIMUON_LIBS])
810 dnl ------------------------------------------------------------------
811 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
814 CHECK_HLTMODULE([trigger],
815 [], [$ALIROOT_CPPFLAGS],
816 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
817 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
818 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
820 if test "x$enable_module" = "xmissheader"; then
821 enable_module="no...header.missing"
822 enable_trigger="no...header.missing"
823 elif test "x$enable_module" = "xforce"; then
826 enable_trigger=$enable_module
829 if test "x$enable_trigger" = "xyes" ; then
830 AC_DEFINE(HLT_TRIGGER)
831 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
833 enable_module=$enable_trigger
835 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
836 AC_MSG_CHECKING([whether to compile Trigger library])
837 AC_MSG_RESULT([$enable_module])
838 AC_SUBST([ALITRIGGER_LIBS])
840 dnl ------------------------------------------------------------------
841 AH_TEMPLATE([HLT_ITS],[hlt its library])
844 CHECK_HLTMODULE([its],
845 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
846 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
847 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
848 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
850 if test "x$enable_module" = "xmissheader"; then
851 enable_module="no...header.missing"
852 enable_its="no...header.missing"
853 elif test "x$enable_module" = "xforce"; then
856 enable_its=$enable_module
857 if test "x$enable_its" = "xyes" ; then
859 save_CPPFLAGS="$CPPFLAGS"
860 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
861 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
862 # require AliVertexer::GetNominalPos()
863 AC_MSG_CHECKING([for required functions in AliITSVertexer])
864 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
866 v.GetNominalPos()])],
868 [enable_its="no...requires.AliRoot>v4-13-Release"])
869 AC_MSG_RESULT([$enable_its])
871 CPPFLAGS="$save_CPPFLAGS"
875 if test "x$enable_its" = "xyes" ; then
877 ALIITS_LIBS=$ALIHLTMODULE_LIBS
879 enable_module=$enable_its
881 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
882 AC_MSG_CHECKING([whether to compile ITS library])
883 AC_MSG_RESULT([$enable_module])
884 AC_SUBST([ALIITS_LIBS])
886 dnl ------------------------------------------------------------------
887 AH_TEMPLATE([HLT_COMP],[hlt comp library])
890 CHECK_HLTMODULE([comp],
891 [], [$ALIROOT_CPPFLAGS],
892 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
893 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
894 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
896 if test "x$enable_module" = "xmissheader"; then
897 enable_module="no...header.missing"
898 enable_comp="no...header.missing"
899 elif test "x$enable_module" = "xforce"; then
902 enable_comp=$enable_module
905 if test "x$enable_comp" = "xyes" ; then
907 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
909 enable_module=$enable_comp
911 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
912 AC_MSG_CHECKING([whether to compile comp library])
913 AC_MSG_RESULT([$enable_module])
914 AC_SUBST([ALICOMP_LIBS])
916 dnl ------------------------------------------------------------------
917 AC_MSG_CHECKING([whether to disable AliRoot logging])
918 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
919 AC_ARG_ENABLE(aliroot-logging,
920 [AC_HELP_STRING([--disable-aliroot-logging],
921 [disable logging through AliRoot logging methods])],
922 [],[enable_aliroot_logging=no])
923 if test "x$have_aliroot" = "xno" ; then
924 enable_aliroot_logging=yes # this means 'disable'
926 if test "x$enable_aliroot_logging" != "xno" ; then
927 AC_DEFINE(NOALIROOT_LOGGING)
929 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
930 AC_MSG_RESULT([$enable_aliroot_logging])
932 dnl ------------------------------------------------------------------
933 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
934 AH_TEMPLATE([DOMC],[MC saving])
935 AC_ARG_ENABLE(mc-saving,
936 [AC_HELP_STRING([--enable-mc-saving],
937 [enable saving MC data through the chain])],
938 [],[enable_mc_saving=no])
939 if test "x$enable_mc_saving" = "xyes" ; then
942 AC_MSG_RESULT([$enable_mc_saving])
944 dnl ------------------------------------------------------------------
945 dnl certainly something old, but we keep the define
946 AC_MSG_CHECKING([whether to use ROWHOUGH])
947 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
948 AC_ARG_ENABLE(rowhough,
949 [AC_HELP_STRING([--enable-rowhough],
951 [],[enable_rowhough=no])
952 if test "x$enable_rowhough" = "xyes" ; then
953 AC_DEFINE(USEROWHOUGH)
955 AC_MSG_RESULT([$enable_rowhough])
957 dnl ------------------------------------------------------------------
958 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
959 dnl stand-alone build system. This is most likely something old we can
960 dnl get rid off later, or do something more reasonable. Since the define
961 dnl needs the quotes they have to be escaped. This works well for the
962 dnl Makefile but not for the configure script. So we have to add the
963 dnl defines after all the other checks.
964 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
965 if test ! "x$have_aliroot" = "xno" ; then
966 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
969 dnl ------------------------------------------------------------------
973 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
974 AC_PATH_PROG(PERL, perl)
975 AC_PATH_PROG(DOXYGEN, doxygen)
977 [AC_HELP_STRING([--enable-dot],
978 [enable dot documentation generator])],
982 AC_PATH_PROG(DOT, dot)
983 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
985 DOT_PATH=`dirname $DOT`
988 AC_MSG_CHECKING([for documentation mode])
990 [AC_HELP_STRING([--disable-doc],
991 [disable documentation build; monolithic build --enable-doc=mono ])],
992 [],[enable_doc=modules])
993 if test "x$DOXYGEN" = "x" ; then
994 enable_doc=no.doxygen
995 elif test ! "x$enable_doc" = "xmono" && \
996 test ! "x$enable_doc" = "xmodules" && \
997 test ! "x$enable_doc" = "xno"; then
999 AC_MSG_WARN([unknown option])
1001 if test "x$enable_doc" = "xno" ; then
1006 AC_MSG_RESULT([$enable_doc])
1007 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1008 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1009 AC_SUBST([HAVE_DOT])
1010 AC_SUBST([DOT_PATH])
1012 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1013 dnl echo $HAVE_SRC_SUBDIR
1014 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1015 dnl HAVE_SRC_SUBDIR=
1017 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1019 dnl ------------------------------------------------------------------
1020 AC_MSG_NOTICE([---------------------------------------------- ])
1021 AC_MSG_NOTICE([ build summary ])
1022 AC_MSG_NOTICE([---------------------------------------------- ])
1024 AC_CONFIG_FILES([Makefile
1030 BASE/interface/Makefile
1032 BASE/interface/test/Makefile
1035 doc/doxymodule.conf])
1037 dnl AliRoot and installation directory for libraries
1039 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1040 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1041 if test "x$have_aliroot" != "xno"; then
1042 AC_CONFIG_FILES([sim/Makefile
1049 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1050 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1051 AC_MSG_NOTICE([libdir set to $libdir])
1054 AC_MSG_NOTICE([compile sample library: $enable_sample])
1055 if test "x$enable_sample" = "xyes"; then
1056 AC_CONFIG_FILES([SampleLib/Makefile])
1059 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1060 if test "x$enable_rcu" = "xyes"; then
1061 AC_CONFIG_FILES([RCU/Makefile
1066 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1067 if test "x$enable_tpc" = "xyes"; then
1068 AC_CONFIG_FILES([TPCLib/Makefile
1069 TPCLib/test/Makefile
1070 TPCLib/mapping2array.cxx
1071 TPCLib/OnlineDisplay/Makefile
1075 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1076 if test "x$enable_phos" = "xyes"; then
1077 AC_CONFIG_FILES([PHOS/Makefile])
1080 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1081 if test "x$enable_trd" = "xyes"; then
1082 AC_CONFIG_FILES([TRD/Makefile])
1085 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1086 if test "x$enable_muon" = "xyes"; then
1087 AC_CONFIG_FILES([MUON/Makefile])
1090 AC_MSG_NOTICE([compile ITS library: $enable_its])
1091 if test "x$enable_its" = "xyes"; then
1092 AC_CONFIG_FILES([ITS/Makefile])
1095 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1096 if test "x$enable_trigger" = "xyes"; then
1097 AC_CONFIG_FILES([trigger/Makefile])
1100 AC_MSG_NOTICE([compile comp library: $enable_comp])
1101 if test "x$enable_comp" = "xyes"; then
1102 AC_CONFIG_FILES([comp/Makefile])