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 copy function added May 9 2008 rev 25667
259 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
264 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
265 AC_MSG_CHECKING(for ESD assignment operator)
266 AC_MSG_RESULT([$have_esd_copy])
269 dnl AliRawReaderMemory support for multiple buffers added
270 dnl revision 26829 Jun 2008
272 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
273 have_rawreadermemory_multbuffers=no
274 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
275 [AliRawReaderMemory rr;
276 rr.AddBuffer(NULL, 0, 0);])],
277 [have_rawreadermemory_multbuffers=yes],
278 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
279 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
280 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
283 dnl required header files and libraries for modules
287 dnl Check for the interface of AliExternalTrackParam which has been changed
288 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
290 externaltrackparam_version=1
291 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
292 [AliExternalTrackParam trackparam;
293 Double_t param[[5]]; Double_t covar[[15]];
294 trackparam.Set(0., 0., param, covar);])],
295 [externaltrackparam_version=2],
296 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
297 AC_MSG_CHECKING(for version of AliExternalTrackParam)
298 AC_MSG_RESULT($externaltrackparam_version)
300 CPPFLAGS=$save_CPPFLAGS
301 LDFLAGS=$save_LDFLAGS
303 fi # if test ! "x$have_aliroot" = "xno"
306 AC_SUBST([ALICE_ROOT])
307 AC_SUBST([ALIROOT_CPPFLAGS])
308 AC_SUBST([ALIROOT_LDFLAGS])
309 AC_SUBST([ALIROOTBINDIR])
310 AC_SUBST([ALIROOTLIBDIR])
311 AC_SUBST([ALIROOT_LIBS])
312 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
314 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
316 AC_SUBST([HLTBASE_CPPFLAGS])
317 AC_SUBST([HLTBASE_LDFLAGS])
319 dnl ------------------------------------------------------------------
320 dnl check for the HLT PubSub Framework
321 dnl namely for the existence of the HOMER library
322 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
323 dnl package. It os though possible to choose an external. library
324 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
325 dnl got the name libAliHLTHOMER
326 AC_MSG_CHECKING([for HLT PubSub Framework])
327 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
329 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
330 if test -z $with_pubsub || ! test -d $with_pubsub ; then
333 AC_MSG_RESULT([$with_pubsub])
337 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
338 if test "x$with_pubsub" != "xno" ; then
339 save_CPPFLAGS=$CPPFLAGS
340 save_LDFLAGS=$LDFLAGS
342 # currently the different versions of the HLT PubSub framework have a different
344 if test -d ${with_pubsub}/include/HOMER ; then
345 # the 'early' location of the include files with separated HOMER sub dirs
346 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
347 elif test -d ${with_pubsub}/include/Util/HOMER ; then
348 # location for HLT Framework versions after Sep 2006
349 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
350 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
351 # fall back if include files were not installed (versions after Sep 06)
352 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
354 # fall back if include files were not installed (versions before Sep 06)
355 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
357 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
359 AC_ARG_ENABLE(pubsub-debug,
360 [AC_HELP_STRING([--disable-pubsub-debug],
361 [force the production version of the PubSub framework])],
362 [],[enable_pubsub_debug=yes])
364 HOMER_TARGET="`uname -s`-`uname -m`"
365 AC_MSG_CHECKING([for HLT PubSub Framework release type])
366 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
367 homer_type="production"
368 HOMER_TARGET="${HOMER_TARGET}-release"
369 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
371 HOMER_TARGET="${HOMER_TARGET}-debug"
373 AC_MSG_RESULT([${homer_type}])
374 HOMERREADER_HEADER=HOMERReader.h
375 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
376 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
377 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
378 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
379 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
383 AC_CHECK_HEADER([$HOMERREADER_HEADER],
384 [ AC_CHECK_LIB([HOMER],[_init],
386 HOMER_LIBS="-lHOMER"],
387 [ AC_CHECK_LIB([HOMERReader],[_init],
389 HOMER_LIBS="-lHOMERReader"])])
390 LIBS="$LIBS $HOMER_LIBS"
391 AC_MSG_CHECKING([version of HOMER library])
392 dnl The Homer library has no versioning, so we do our own
393 dnl version description
394 dnl ----------------------------------------------------------------------
395 dnl 1 inintial version
396 dnl 2 GetBlockStatusFlags added to the interface
397 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
398 [HOMERReader reader("dummy", 0);
399 reader.GetBlockStatusFlags(0);])],
402 AC_MSG_RESULT([$HOMER_VERSION])
404 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
408 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
410 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
411 HOMERREADER_HEADER=AliHLTHOMERReader.h
412 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
418 if test "x$with_homer" = "xno" ; then
423 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
424 AC_DEFINE(HAVE_HOMERREADER)
426 CPPFLAGS="$save_CPPFLAGS"
427 LDFLAGS="$save_LDFLAGS"
430 AC_SUBST([HOMERREADER_HEADER])
431 AC_SUBST([HOMER_INBUILT_LIB])
432 AC_SUBST([HOMER_CPPFLAGS])
433 AC_SUBST([HOMER_LDFLAGS])
434 AC_SUBST([HOMER_LIBDIR])
435 AC_SUBST([HOMER_BINDIR])
436 AC_SUBST([HOMER_LIBS])
438 dnl ------------------------------------------------------------------
440 [AC_HELP_STRING([--disable-all],
441 [disable all detector modules, individual modules can be switched on by --enable-det])],
442 [disable_all=yes],[])
444 dnl ------------------------------------------------------------------
445 AC_MSG_CHECKING([whether to impose strict coding conventions])
446 AC_ARG_ENABLE(strict,
447 [AC_HELP_STRING([--disable-strict],
448 [disable coding convention checks ])],
449 [],[enable_strict=yes])
450 if test "x$enable_strict" = "xyes" ; then
451 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
453 AC_MSG_RESULT([$enable_strict])
455 dnl ------------------------------------------------------------------
456 AC_MSG_CHECKING([whether to enable component statistics])
457 AC_ARG_ENABLE(component-stat,
458 [AC_HELP_STRING([--enable-component-stat],
459 [enable component statistics ])],
460 [],[enable_component_stat=no])
461 if test "x$enable_component_stat" = "xyes" ; then
462 AC_DEFINE(HLT_COMPONENT_STATISTICS)
464 AC_MSG_RESULT([$enable_component_stat])
466 dnl ------------------------------------------------------------------
467 dnl ---- module checks
468 dnl ------------------------------------------------------------------
469 save_CPPFLAGS=$CPPFLAGS
470 save_LDFLAGS=$LDFLAGS
473 dnl ------------------------------------------------------------------
474 AC_MSG_CHECKING([whether to compile sample library])
475 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
476 AC_ARG_ENABLE(sample,
477 [AC_HELP_STRING([--disable-sample],
478 [compile the sample library ])],
480 [if test "x$have_aliroot" = "xno" ; then
481 enable_sample="no...requires.AliRoot"
487 if test "x$enable_sample" = "xyes" ; then
488 AC_DEFINE(HLT_SAMPLE)
490 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
491 AC_MSG_RESULT([$enable_sample])
493 dnl ------------------------------------------------------------------
494 AC_MSG_CHECKING([whether to compile util library])
495 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
497 [AC_HELP_STRING([--disable-util],
498 [compile the util library ])],
500 [if test "x$have_aliroot" = "xno" ; then
501 enable_util="no...requires.AliRoot"
507 if test "x$enable_util" = "xyes" ; then
510 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
511 AC_MSG_RESULT([$enable_util])
513 dnl ------------------------------------------------------------------
514 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
517 CHECK_HLTMODULE([tpc],
519 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
520 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
521 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
522 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
524 if test "x$enable_module" = "xmissheader"; then
525 enable_module="no...missing.headers"
526 enable_tpc="no...missing.headers"
527 elif test "x$enable_module" = "xforce"; then
530 enable_tpc=$enable_module
533 if test "x$enable_tpc" = "xyes" ; then
536 ALITPC_LIBS=$ALIHLTMODULE_LIBS
538 dnl Check for functionality in the TPC reconstruction required for online
541 have_tpc_hltoffline_rec=no
542 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
543 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
544 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
545 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
546 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
547 #include <AliTPCclustererMI.h>
548 #include <TObjArray.h>],
549 [AliTPCtrackerMI tracker;
550 TObjArray* array=NULL;
551 tracker.LoadClusters(array);
552 AliTPCclustererMI cl(NULL, NULL);
553 cl.GetOutputClonesArray();])],
554 [have_tpc_hltoffline_rec=yes],
555 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
557 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
559 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
560 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
563 if test ! "x$have_aliroot" = "xno" ; then
564 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
565 # which is stored in the TPC/mapping/Patchx.data files from
566 # AliRoot version v4-04-Release (May 2006)
567 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
568 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
569 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
570 [have_tpc_mapping=yes
571 AC_SUBST(TPC_PAD_MAPPING_PATH)
572 AC_DEFINE(HAVE_TPC_MAPPING)],
576 AC_MSG_CHECKING([for TPC mapping layout])
577 AC_MSG_RESULT([$have_tpc_mapping])
581 enable_module=$enable_tpc
583 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
584 AC_MSG_CHECKING([whether to compile TPC library])
585 AC_MSG_RESULT([$enable_module])
586 AC_SUBST([ALITPC_LIBS])
588 dnl ------------------------------------------------------------------
589 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
591 CHECK_HLTMODULE([rcu],
593 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
594 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
595 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
596 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
598 if test "x$enable_module" = "xmissheader"; then
599 enable_module="no...missing.headers"
600 enable_rcu="no...missing.headers"
601 elif test "x$enable_module" = "xforce"; then
605 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
606 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
607 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
608 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
609 [AliAltroDecoder decoder;
610 decoder.CopyBackward(NULL, 0);])],
611 [enable_rcu=$enable_module],
612 [enable_module="no...requires.AliRoot>v4-10-Release"
613 enable_rcu="no...requires.AliRoot>v4-10-Release"])
614 CPPFLAGS=$save_CPPFLAGS
615 LDFLAGS=$save_LDFLAGS
620 if test "x$enable_rcu" = "xyes" ; then
623 enable_module=$enable_rcu
625 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
626 AC_MSG_CHECKING([whether to compile RCU library])
627 AC_MSG_RESULT([$enable_module])
628 AC_SUBST([ALIRCU_LIBS])
630 dnl ------------------------------------------------------------------
631 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
634 CHECK_HLTMODULE([phos],
635 [], [$ALIROOT_CPPFLAGS],
636 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
637 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
638 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
640 if test "x$enable_module" = "xmissheader"; then
641 enable_module="no...requires.AliRoot>v4-05-07"
642 enable_phos="no...requires.AliRoot>v4-05-07"
643 elif test "x$enable_module" = "xforce"; then
646 have_alicalorawstream=no
647 if test ! "x$have_aliroot" = "xno" ; then
649 save_CPPFLAGS="$CPPFLAGS"
650 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
651 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
652 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
653 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
654 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
655 #include <AliCaloRawStream.h>],
657 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
658 have_alicalorawstream=yes],
660 AC_MSG_RESULT([$have_aliphosrecoparam])
661 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
662 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
663 [AliPHOSRecoParam param;
664 param.GetEMCClusteringThreshold()])],
665 [have_aliphosrecoparam=yes],
666 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
667 AC_MSG_RESULT([$have_alicalorawstream])
669 CPPFLAGS="$save_CPPFLAGS"
671 if test "x$have_alicalorawstream" != "xyes"; then
672 enable_phos="no...requires.AliRoot>v4-05-07"
674 enable_phos=$enable_module
678 if test "x$enable_phos" = "xyes" ; then
680 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
682 enable_module=$enable_phos
684 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
685 AC_MSG_CHECKING([whether to compile PHOS library])
686 AC_MSG_RESULT([$enable_module])
687 AC_SUBST([ALIPHOS_LIBS])
689 dnl ------------------------------------------------------------------
690 AH_TEMPLATE([HLT_TRD],[hlt trd library])
693 CHECK_HLTMODULE([trd],
695 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
696 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
697 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
699 if test "x$enable_module" = "xmissheader"; then
700 enable_module="no...requires.AliRoot>v4-07-Release"
701 enable_trd="no...requires.AliRoot>v4-07-Release"
702 elif test "x$enable_module" = "xforce"; then
705 enable_trd=$enable_module
706 if test "x$enable_trd" = "xyes" ; then
708 save_CPPFLAGS="$CPPFLAGS"
709 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
710 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
711 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
712 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
713 AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
714 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>],
715 [AliTRDReconstructor r;
716 r.SetStreamLevel(0)])],
718 [enable_trd="no...requires.AliRoot>v4-14-Release"])
719 AC_MSG_RESULT([$enable_trd])
721 CPPFLAGS="$save_CPPFLAGS"
725 if test "x$enable_trd" = "xyes" ; then
727 ALITRD_LIBS=$ALIHLTMODULE_LIBS
729 enable_module=$enable_trd
731 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
732 AC_MSG_CHECKING([whether to compile TRD library])
733 AC_MSG_RESULT([$enable_module])
734 AC_SUBST([ALITRD_LIBS])
736 dnl ------------------------------------------------------------------
737 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
740 CHECK_HLTMODULE([dimuon],
741 [AliMpExMap.h AliMUONTriggerIO.h],
742 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
743 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
744 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
745 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
747 if test "x$enable_module" = "xmissheader"; then
748 enable_module="no...requires.AliRoot>=v4-08-Release"
749 enable_muon="no...requires.AliRoot>=v4-08-Release"
750 elif test "x$enable_module" = "xforce"; then
753 enable_muon=$enable_module
756 if test "x$enable_muon" = "xyes" ; then
758 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
761 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
763 have_muon_digitmaker_getrawstream=no
764 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
765 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
766 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
767 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
768 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
769 [AliMUONDigitMaker dm;
770 dm.GetRawStreamTracker();])],
771 [have_muon_digitmaker_getrawstream=yes],
772 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
774 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
778 enable_module=$enable_muon
780 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
781 AC_MSG_CHECKING([whether to compile MUON library])
782 AC_MSG_RESULT([$enable_module])
783 AC_SUBST([ALIMUON_LIBS])
785 dnl ------------------------------------------------------------------
786 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
789 CHECK_HLTMODULE([trigger],
790 [], [$ALIROOT_CPPFLAGS],
791 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
792 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
793 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
795 if test "x$enable_module" = "xmissheader"; then
796 enable_module="no...header.missing"
797 enable_trigger="no...header.missing"
798 elif test "x$enable_module" = "xforce"; then
801 enable_trigger=$enable_module
804 if test "x$enable_trigger" = "xyes" ; then
805 AC_DEFINE(HLT_TRIGGER)
806 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
808 enable_module=$enable_trigger
810 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
811 AC_MSG_CHECKING([whether to compile Trigger library])
812 AC_MSG_RESULT([$enable_module])
813 AC_SUBST([ALITRIGGER_LIBS])
815 dnl ------------------------------------------------------------------
816 AH_TEMPLATE([HLT_ITS],[hlt its library])
819 CHECK_HLTMODULE([its],
820 [], [$ALIROOT_CPPFLAGS],
821 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
822 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
823 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
825 if test "x$enable_module" = "xmissheader"; then
826 enable_module="no...header.missing"
827 enable_its="no...header.missing"
828 elif test "x$enable_module" = "xforce"; then
831 enable_its=$enable_module
832 if test "x$enable_its" = "xyes" ; then
834 save_CPPFLAGS="$CPPFLAGS"
835 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
836 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
837 # require AliVertexer::GetNominalPos()
838 AC_MSG_CHECKING([for required functions in AliITSVertexer])
839 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
841 v.GetNominalPos()])],
843 [enable_its="no...requires.AliRoot>v4-13-Release"])
844 AC_MSG_RESULT([$enable_its])
846 CPPFLAGS="$save_CPPFLAGS"
850 if test "x$enable_its" = "xyes" ; then
852 ALIITS_LIBS=$ALIHLTMODULE_LIBS
854 enable_module=$enable_its
856 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
857 AC_MSG_CHECKING([whether to compile ITS library])
858 AC_MSG_RESULT([$enable_module])
859 AC_SUBST([ALIITS_LIBS])
861 dnl ------------------------------------------------------------------
862 AH_TEMPLATE([HLT_COMP],[hlt comp library])
865 CHECK_HLTMODULE([comp],
866 [], [$ALIROOT_CPPFLAGS],
867 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
868 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
869 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
871 if test "x$enable_module" = "xmissheader"; then
872 enable_module="no...header.missing"
873 enable_comp="no...header.missing"
874 elif test "x$enable_module" = "xforce"; then
877 enable_comp=$enable_module
880 if test "x$enable_comp" = "xyes" ; then
882 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
884 enable_module=$enable_comp
886 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
887 AC_MSG_CHECKING([whether to compile comp library])
888 AC_MSG_RESULT([$enable_module])
889 AC_SUBST([ALICOMP_LIBS])
891 dnl ------------------------------------------------------------------
892 AC_MSG_CHECKING([whether to disable AliRoot logging])
893 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
894 AC_ARG_ENABLE(aliroot-logging,
895 [AC_HELP_STRING([--disable-aliroot-logging],
896 [disable logging through AliRoot logging methods])],
897 [],[enable_aliroot_logging=no])
898 if test "x$have_aliroot" = "xno" ; then
899 enable_aliroot_logging=yes # this means 'disable'
901 if test "x$enable_aliroot_logging" != "xno" ; then
902 AC_DEFINE(NOALIROOT_LOGGING)
904 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
905 AC_MSG_RESULT([$enable_aliroot_logging])
907 dnl ------------------------------------------------------------------
908 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
909 AH_TEMPLATE([DOMC],[MC saving])
910 AC_ARG_ENABLE(mc-saving,
911 [AC_HELP_STRING([--enable-mc-saving],
912 [enable saving MC data through the chain])],
913 [],[enable_mc_saving=no])
914 if test "x$enable_mc_saving" = "xyes" ; then
917 AC_MSG_RESULT([$enable_mc_saving])
919 dnl ------------------------------------------------------------------
920 dnl certainly something old, but we keep the define
921 AC_MSG_CHECKING([whether to use ROWHOUGH])
922 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
923 AC_ARG_ENABLE(rowhough,
924 [AC_HELP_STRING([--enable-rowhough],
926 [],[enable_rowhough=no])
927 if test "x$enable_rowhough" = "xyes" ; then
928 AC_DEFINE(USEROWHOUGH)
930 AC_MSG_RESULT([$enable_rowhough])
932 dnl ------------------------------------------------------------------
933 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
934 dnl stand-alone build system. This is most likely something old we can
935 dnl get rid off later, or do something more reasonable. Since the define
936 dnl needs the quotes they have to be escaped. This works well for the
937 dnl Makefile but not for the configure script. So we have to add the
938 dnl defines after all the other checks.
939 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
940 if test ! "x$have_aliroot" = "xno" ; then
941 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
944 dnl ------------------------------------------------------------------
948 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
949 AC_PATH_PROG(PERL, perl)
950 AC_PATH_PROG(DOXYGEN, doxygen)
952 [AC_HELP_STRING([--enable-dot],
953 [enable dot documentation generator])],
957 AC_PATH_PROG(DOT, dot)
958 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
960 DOT_PATH=`dirname $DOT`
963 AC_MSG_CHECKING([for documentation mode])
965 [AC_HELP_STRING([--disable-doc],
966 [disable documentation build; monolithic build --enable-doc=mono ])],
967 [],[enable_doc=modules])
968 if test "x$DOXYGEN" = "x" ; then
969 enable_doc=no.doxygen
970 elif test ! "x$enable_doc" = "xmono" && \
971 test ! "x$enable_doc" = "xmodules" && \
972 test ! "x$enable_doc" = "xno"; then
974 AC_MSG_WARN([unknown option])
976 if test "x$enable_doc" = "xno" ; then
981 AC_MSG_RESULT([$enable_doc])
982 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
983 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
987 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
988 dnl echo $HAVE_SRC_SUBDIR
989 dnl if ! test -d $HAVE_SRC_SUBDIR; then
992 dnl AC_SUBST([HAVE_SRC_SUBDIR])
994 dnl ------------------------------------------------------------------
995 AC_MSG_NOTICE([---------------------------------------------- ])
996 AC_MSG_NOTICE([ build summary ])
997 AC_MSG_NOTICE([---------------------------------------------- ])
999 AC_CONFIG_FILES([Makefile
1005 BASE/interface/Makefile
1007 BASE/interface/test/Makefile
1010 doc/doxymodule.conf])
1012 dnl AliRoot and installation directory for libraries
1014 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1015 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1016 if test "x$have_aliroot" != "xno"; then
1017 AC_CONFIG_FILES([sim/Makefile
1024 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1025 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1026 AC_MSG_NOTICE([libdir set to $libdir])
1029 AC_MSG_NOTICE([compile sample library: $enable_sample])
1030 if test "x$enable_sample" = "xyes"; then
1031 AC_CONFIG_FILES([SampleLib/Makefile])
1034 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1035 if test "x$enable_rcu" = "xyes"; then
1036 AC_CONFIG_FILES([RCU/Makefile
1041 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1042 if test "x$enable_tpc" = "xyes"; then
1043 AC_CONFIG_FILES([TPCLib/Makefile
1044 TPCLib/test/Makefile
1045 TPCLib/mapping2array.cxx
1046 TPCLib/OnlineDisplay/Makefile
1050 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1051 if test "x$enable_phos" = "xyes"; then
1052 AC_CONFIG_FILES([PHOS/Makefile])
1055 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1056 if test "x$enable_trd" = "xyes"; then
1057 AC_CONFIG_FILES([TRD/Makefile])
1060 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1061 if test "x$enable_muon" = "xyes"; then
1062 AC_CONFIG_FILES([MUON/Makefile])
1065 AC_MSG_NOTICE([compile ITS library: $enable_its])
1066 if test "x$enable_its" = "xyes"; then
1067 AC_CONFIG_FILES([ITS/Makefile])
1070 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1071 if test "x$enable_trigger" = "xyes"; then
1072 AC_CONFIG_FILES([trigger/Makefile])
1075 AC_MSG_NOTICE([compile comp library: $enable_comp])
1076 if test "x$enable_comp" = "xyes"; then
1077 AC_CONFIG_FILES([comp/Makefile])