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 compile sample library])
457 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
458 AC_ARG_ENABLE(sample,
459 [AC_HELP_STRING([--disable-sample],
460 [compile the sample library ])],
462 [if test "x$have_aliroot" = "xno" ; then
463 enable_sample="no...requires.AliRoot"
469 if test "x$enable_sample" = "xyes" ; then
470 AC_DEFINE(HLT_SAMPLE)
472 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
473 AC_MSG_RESULT([$enable_sample])
475 dnl ------------------------------------------------------------------
476 AC_MSG_CHECKING([whether to compile util library])
477 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
479 [AC_HELP_STRING([--disable-util],
480 [compile the util library ])],
482 [if test "x$have_aliroot" = "xno" ; then
483 enable_util="no...requires.AliRoot"
489 if test "x$enable_util" = "xyes" ; then
492 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
493 AC_MSG_RESULT([$enable_util])
495 dnl ------------------------------------------------------------------
496 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
499 CHECK_HLTMODULE([tpc],
501 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
502 [Gui ANALYSIS], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
503 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
504 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
506 if test "x$enable_module" = "xmissheader"; then
507 enable_module="no...missing.headers"
508 enable_tpc="no...missing.headers"
509 elif test "x$enable_module" = "xforce"; then
512 enable_tpc=$enable_module
515 if test "x$enable_tpc" = "xyes" ; then
518 echo $ALIHLTMODULE_LIBS
519 ALITPC_LIBS=$ALIHLTMODULE_LIBS
521 dnl Check for functionality in the TPC reconstruction required for online
524 have_tpc_hltoffline_rec=no
525 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
526 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
527 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
528 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
529 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
530 #include <AliTPCclustererMI.h>
531 #include <TObjArray.h>],
532 [AliTPCtrackerMI tracker;
533 TObjArray* array=NULL;
534 tracker.LoadClusters(array);
535 AliTPCclustererMI cl(NULL, NULL);
536 cl.GetOutputArray();])],
537 [have_tpc_hltoffline_rec=yes],
538 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
539 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
541 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
542 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
545 if test ! "x$have_aliroot" = "xno" ; then
546 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
547 # which is stored in the TPC/mapping/Patchx.data files from
548 # AliRoot version v4-04-Release (May 2006)
549 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
550 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
551 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
552 [have_tpc_mapping=yes
553 AC_SUBST(TPC_PAD_MAPPING_PATH)
554 AC_DEFINE(HAVE_TPC_MAPPING)],
558 AC_MSG_CHECKING([for TPC mapping layout])
559 AC_MSG_RESULT([$have_tpc_mapping])
563 enable_module=$enable_tpc
565 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
566 AC_MSG_CHECKING([whether to compile TPC library])
567 AC_MSG_RESULT([$enable_module])
568 AC_SUBST([ALITPC_LIBS])
570 dnl ------------------------------------------------------------------
571 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
573 CHECK_HLTMODULE([rcu],
575 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
576 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
577 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
578 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
580 if test "x$enable_module" = "xmissheader"; then
581 enable_module="no...missing.headers"
582 enable_rcu="no...missing.headers"
583 elif test "x$enable_module" = "xforce"; then
587 save_CPPFLAGS=$CPPFLAGS
588 save_LDFLAGS=$LDFLAGS
590 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
591 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
592 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
593 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
594 [AliAltroDecoder decoder;
595 decoder.CopyBackward(NULL, 0);])],
596 [enable_rcu=$enable_module],
597 [enable_module="no...requires.AliRoot>v4-10-Release"
598 enable_rcu="no...requires.AliRoot>v4-10-Release"])
599 CPPFLAGS=$save_CPPFLAGS
600 LDFLAGS=$save_LDFLAGS
605 if test "x$enable_rcu" = "xyes" ; then
608 enable_module=$enable_rcu
610 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
611 AC_MSG_CHECKING([whether to compile RCU library])
612 AC_MSG_RESULT([$enable_module])
613 AC_SUBST([ALIRCU_LIBS])
615 dnl ------------------------------------------------------------------
616 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
619 CHECK_HLTMODULE([phos],
620 [], [$ALIROOT_CPPFLAGS],
621 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
622 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
623 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
625 if test "x$enable_module" = "xmissheader"; then
626 enable_module="no...requires.AliRoot>v4-05-07"
627 enable_phos="no...requires.AliRoot>v4-05-07"
628 elif test "x$enable_module" = "xforce"; then
631 have_alicalorawstream=no
632 if test ! "x$have_aliroot" = "xno" ; then
634 save_CPPFLAGS="$CPPFLAGS"
635 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
636 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
637 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
638 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
639 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
640 #include <AliCaloRawStream.h>],
642 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
643 have_alicalorawstream=yes],
645 AC_MSG_RESULT([$have_alicalorawstream])
647 CPPFLAGS="$save_CPPFLAGS"
649 if test "x$have_alicalorawstream" != "xyes"; then
650 enable_phos="no...requires.AliRoot>v4-05-07"
652 enable_phos=$enable_module
656 if test "x$enable_phos" = "xyes" ; then
658 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
660 enable_module=$enable_phos
662 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
663 AC_MSG_CHECKING([whether to compile PHOS library])
664 AC_MSG_RESULT([$enable_module])
665 AC_SUBST([ALIPHOS_LIBS])
667 dnl ------------------------------------------------------------------
668 AH_TEMPLATE([HLT_TRD],[hlt trd library])
671 CHECK_HLTMODULE([trd],
673 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
674 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
675 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
677 if test "x$enable_module" = "xmissheader"; then
678 enable_module="no...requires.AliRoot>v4-07-Release"
679 enable_trd="no...requires.AliRoot>v4-07-Release"
680 elif test "x$enable_module" = "xforce"; then
683 enable_trd=$enable_module
684 if test "x$enable_trd" = "xyes" ; then
686 save_CPPFLAGS="$CPPFLAGS"
687 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
688 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
689 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
690 AC_MSG_CHECKING([for required functions in AliTRDrecoParam])
691 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>],
695 [enable_trd="no...requires.AliRoot>v4-13-Release"])
696 AC_MSG_RESULT([$enable_trd])
698 CPPFLAGS="$save_CPPFLAGS"
702 if test "x$enable_trd" = "xyes" ; then
704 ALITRD_LIBS=$ALIHLTMODULE_LIBS
706 enable_module=$enable_trd
708 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
709 AC_MSG_CHECKING([whether to compile TRD library])
710 AC_MSG_RESULT([$enable_module])
711 AC_SUBST([ALITRD_LIBS])
713 dnl ------------------------------------------------------------------
714 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
717 CHECK_HLTMODULE([dimuon],
718 [AliMpExMap.h AliMUONTriggerIO.h],
719 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
720 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
721 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
722 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
724 if test "x$enable_module" = "xmissheader"; then
725 enable_module="no...requires.AliRoot>=v4-08-Release"
726 enable_muon="no...requires.AliRoot>=v4-08-Release"
727 elif test "x$enable_module" = "xforce"; then
730 enable_muon=$enable_module
733 if test "x$enable_muon" = "xyes" ; then
735 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
737 enable_module=$enable_muon
739 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
740 AC_MSG_CHECKING([whether to compile MUON library])
741 AC_MSG_RESULT([$enable_module])
742 AC_SUBST([ALIMUON_LIBS])
744 dnl ------------------------------------------------------------------
745 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
748 CHECK_HLTMODULE([trigger],
749 [], [$ALIROOT_CPPFLAGS],
750 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
751 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
752 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
754 if test "x$enable_module" = "xmissheader"; then
755 enable_module="no...header.missing"
756 enable_trigger="no...header.missing"
757 elif test "x$enable_module" = "xforce"; then
760 enable_trigger=$enable_module
763 if test "x$enable_trigger" = "xyes" ; then
764 AC_DEFINE(HLT_TRIGGER)
765 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
767 enable_module=$enable_trigger
769 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
770 AC_MSG_CHECKING([whether to compile Trigger library])
771 AC_MSG_RESULT([$enable_module])
772 AC_SUBST([ALITRIGGER_LIBS])
774 dnl ------------------------------------------------------------------
775 AH_TEMPLATE([HLT_ITS],[hlt its library])
778 CHECK_HLTMODULE([its],
779 [], [$ALIROOT_CPPFLAGS],
780 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
781 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
782 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
784 if test "x$enable_module" = "xmissheader"; then
785 enable_module="no...header.missing"
786 enable_its="no...header.missing"
787 elif test "x$enable_module" = "xforce"; then
790 enable_its=$enable_module
791 if test "x$enable_its" = "xyes" ; then
793 save_CPPFLAGS="$CPPFLAGS"
794 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
795 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
796 # require AliVertexer::GetNominalPos()
797 AC_MSG_CHECKING([for required functions in AliITSVertexer])
798 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
800 v.GetNominalPos()])],
802 [enable_its="no...requires.AliRoot>v4-13-Release"])
803 AC_MSG_RESULT([$enable_its])
805 CPPFLAGS="$save_CPPFLAGS"
809 if test "x$enable_its" = "xyes" ; then
811 ALIITS_LIBS=$ALIHLTMODULE_LIBS
813 enable_module=$enable_its
815 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
816 AC_MSG_CHECKING([whether to compile ITS library])
817 AC_MSG_RESULT([$enable_module])
818 AC_SUBST([ALIITS_LIBS])
820 dnl ------------------------------------------------------------------
821 AH_TEMPLATE([HLT_COMP],[hlt comp library])
824 CHECK_HLTMODULE([comp],
825 [], [$ALIROOT_CPPFLAGS],
826 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
827 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
828 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
830 if test "x$enable_module" = "xmissheader"; then
831 enable_module="no...header.missing"
832 enable_comp="no...header.missing"
833 elif test "x$enable_module" = "xforce"; then
836 enable_comp=$enable_module
839 if test "x$enable_comp" = "xyes" ; then
841 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
843 enable_module=$enable_comp
845 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
846 AC_MSG_CHECKING([whether to compile comp library])
847 AC_MSG_RESULT([$enable_module])
848 AC_SUBST([ALICOMP_LIBS])
850 dnl ------------------------------------------------------------------
851 AC_MSG_CHECKING([whether to disable AliRoot logging])
852 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
853 AC_ARG_ENABLE(aliroot-logging,
854 [AC_HELP_STRING([--disable-aliroot-logging],
855 [disable logging through AliRoot logging methods])],
856 [],[enable_aliroot_logging=no])
857 if test "x$have_aliroot" = "xno" ; then
858 enable_aliroot_logging=yes # this means 'disable'
860 if test "x$enable_aliroot_logging" != "xno" ; then
861 AC_DEFINE(NOALIROOT_LOGGING)
863 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
864 AC_MSG_RESULT([$enable_aliroot_logging])
866 dnl ------------------------------------------------------------------
867 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
868 AH_TEMPLATE([DOMC],[MC saving])
869 AC_ARG_ENABLE(mc-saving,
870 [AC_HELP_STRING([--enable-mc-saving],
871 [enable saving MC data through the chain])],
872 [],[enable_mc_saving=no])
873 if test "x$enable_mc_saving" = "xyes" ; then
876 AC_MSG_RESULT([$enable_mc_saving])
878 dnl ------------------------------------------------------------------
879 dnl certainly something old, but we keep the define
880 AC_MSG_CHECKING([whether to use ROWHOUGH])
881 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
882 AC_ARG_ENABLE(rowhough,
883 [AC_HELP_STRING([--enable-rowhough],
885 [],[enable_rowhough=no])
886 if test "x$enable_rowhough" = "xyes" ; then
887 AC_DEFINE(USEROWHOUGH)
889 AC_MSG_RESULT([$enable_rowhough])
891 dnl ------------------------------------------------------------------
892 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
893 dnl stand-alone build system. This is most likely something old we can
894 dnl get rid off later, or do something more reasonable. Since the define
895 dnl needs the quotes they have to be escaped. This works well for the
896 dnl Makefile but not for the configure script. So we have to add the
897 dnl defines after all the other checks.
898 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
899 if test ! "x$have_aliroot" = "xno" ; then
900 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
903 dnl ------------------------------------------------------------------
907 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
908 AC_PATH_PROG(PERL, perl)
909 AC_PATH_PROG(DOXYGEN, doxygen)
910 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
912 [AC_HELP_STRING([--enable-dot],
913 [enable dot documentation generator])],
917 AC_PATH_PROG(DOT, dot)
918 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
920 DOT_PATH=`dirname $DOT`
925 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
926 dnl echo $HAVE_SRC_SUBDIR
927 dnl if ! test -d $HAVE_SRC_SUBDIR; then
930 dnl AC_SUBST([HAVE_SRC_SUBDIR])
932 dnl ------------------------------------------------------------------
933 AC_MSG_NOTICE([---------------------------------------------- ])
934 AC_MSG_NOTICE([ build summary ])
935 AC_MSG_NOTICE([---------------------------------------------- ])
937 AC_CONFIG_FILES([Makefile
943 BASE/interface/Makefile
947 doc/doxymodule.conf])
949 dnl AliRoot and installation directory for libraries
951 AC_MSG_NOTICE([AliRoot: $have_aliroot])
952 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
953 if test "x$have_aliroot" != "xno"; then
954 AC_CONFIG_FILES([sim/Makefile
960 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
961 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
962 AC_MSG_NOTICE([libdir set to $libdir])
965 AC_MSG_NOTICE([compile sample library: $enable_sample])
966 if test "x$enable_sample" = "xyes"; then
967 AC_CONFIG_FILES([SampleLib/Makefile])
970 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
971 if test "x$enable_rcu" = "xyes"; then
972 AC_CONFIG_FILES([RCU/Makefile
977 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
978 if test "x$enable_tpc" = "xyes"; then
979 AC_CONFIG_FILES([TPCLib/Makefile
981 TPCLib/mapping2array.cxx
982 TPCLib/OnlineDisplay/Makefile
986 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
987 if test "x$enable_phos" = "xyes"; then
988 AC_CONFIG_FILES([PHOS/Makefile])
991 AC_MSG_NOTICE([compile TRD library: $enable_trd])
992 if test "x$enable_trd" = "xyes"; then
993 AC_CONFIG_FILES([TRD/Makefile])
996 AC_MSG_NOTICE([compile MUON library: $enable_muon])
997 if test "x$enable_muon" = "xyes"; then
998 AC_CONFIG_FILES([MUON/Makefile])
1001 AC_MSG_NOTICE([compile ITS library: $enable_its])
1002 if test "x$enable_its" = "xyes"; then
1003 AC_CONFIG_FILES([ITS/Makefile])
1006 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1007 if test "x$enable_trigger" = "xyes"; then
1008 AC_CONFIG_FILES([trigger/Makefile])
1011 AC_MSG_NOTICE([compile comp library: $enable_comp])
1012 if test "x$enable_comp" = "xyes"; then
1013 AC_CONFIG_FILES([comp/Makefile])