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_HEADERS([TBufferFile.h])
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_HEADERS([TView3D.h])
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 required header files and libraries for modules
271 if test ! "x$have_aliroot" = "xno" ; then
272 # the HLTTPCLib needs to link agains TPCbase and TPCrec
273 # TPC library for AliTPCParam and AliSimDigits used in
274 # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx
275 # from May 07 TPCbase depends on libGui.so
276 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
278 AC_MSG_CHECKING(for required classes in TPC libraries)
279 if test ! "x$have_alitpc" = "xno" ; then
280 ALITPC_LIBS="-lGui -lTPCbase -lTPCrec"
281 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliSimDigits.h>
283 #include <AliTPCParam.h>
284 #include <AliTPCParamSR.h>
285 #include <AliTPCDigitsArray.h>
286 #include <AliTPCClustersArray.h>
287 #include <AliTPCcluster.h>
288 #include <AliTPCClustersRow.h>],
291 AliTPCParamSR paramsr;
292 AliTPCDigitsArray digarray;
293 AliTPCClustersArray clustarray;
295 AliTPCClustersRow row])],
296 [AC_DEFINE(HAVE_ALITPC)],
300 AC_MSG_RESULT([$have_alitpc])
302 have_tpc_load_clusters=no
303 AC_MSG_CHECKING(for on-line features of TPC offline tracker)
304 ALITPC_LIBS="-lGui -lTPCbase -lTPCrec"
305 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
306 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
307 #include <TObjArray.h>],
308 [AliTPCtrackerMI tracker;
309 TObjArray* array=NULL;
310 tracker.LoadClusters(array);])],
311 [have_tpc_load_clusters=yes],
312 [AC_DEFINE(HAVE_NOT_TPC_LOAD_CLUSTERS)])
313 AC_MSG_RESULT([$have_tpc_load_clusters])
316 AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
317 AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
320 if test ! "x$have_aliroot" = "xno" ; then
321 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
322 # which is stored in the TPC/mapping/Patchx.data files from
323 # AliRoot version v4-04-Release (May 2006)
324 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
325 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
326 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
327 [have_tpc_mapping=yes
328 AC_SUBST(TPC_PAD_MAPPING_PATH)
329 AC_DEFINE(HAVE_TPC_MAPPING)],
333 AC_MSG_CHECKING([for TPC mapping layout])
334 AC_MSG_RESULT([$have_tpc_mapping])
337 dnl Check for the interface of AliExternalTrackParam which has been changed
338 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
340 externaltrackparam_version=1
341 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
342 [AliExternalTrackParam trackparam;
343 Double_t param[[5]]; Double_t covar[[15]];
344 trackparam.Set(0., 0., param, covar);])],
345 [externaltrackparam_version=2],
346 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
347 AC_MSG_CHECKING(for version of AliExternalTrackParam)
348 AC_MSG_RESULT($externaltrackparam_version)
350 CPPFLAGS=$save_CPPFLAGS
351 LDFLAGS=$save_LDFLAGS
353 fi # if test ! "x$have_aliroot" = "xno"
356 AC_SUBST([ALICE_ROOT])
357 AC_SUBST([ALIROOT_CPPFLAGS])
358 AC_SUBST([ALIROOT_LDFLAGS])
359 AC_SUBST([ALIROOTBINDIR])
360 AC_SUBST([ALIROOTLIBDIR])
361 AC_SUBST([ALIROOT_LIBS])
362 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
364 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
366 AC_SUBST([HLTBASE_CPPFLAGS])
367 AC_SUBST([HLTBASE_LDFLAGS])
369 dnl ------------------------------------------------------------------
370 dnl check for the HLT PubSub Framework
371 dnl namely for the existence of the HOMER library
372 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
373 dnl package. It os though possible to choose an external. library
374 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
375 dnl got the name libAliHLTHOMER
376 AC_MSG_CHECKING([for HLT PubSub Framework])
377 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
379 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
380 if test -z $with_pubsub || ! test -d $with_pubsub ; then
383 AC_MSG_RESULT([$with_pubsub])
387 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
388 if test "x$with_pubsub" != "xno" ; then
389 save_CPPFLAGS=$CPPFLAGS
390 save_LDFLAGS=$LDFLAGS
392 # currently the different versions of the HLT PubSub framework have a different
394 if test -d ${with_pubsub}/include/HOMER ; then
395 # the 'early' location of the include files with separated HOMER sub dirs
396 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
397 elif test -d ${with_pubsub}/include/Util/HOMER ; then
398 # location for HLT Framework versions after Sep 2006
399 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
400 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
401 # fall back if include files were not installed (versions after Sep 06)
402 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
404 # fall back if include files were not installed (versions before Sep 06)
405 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
407 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
409 AC_ARG_ENABLE(pubsub-debug,
410 [AC_HELP_STRING([--disable-pubsub-debug],
411 [force the production version of the PubSub framework])],
412 [],[enable_pubsub_debug=yes])
414 HOMER_TARGET="`uname -s`-`uname -m`"
415 AC_MSG_CHECKING([for HLT PubSub Framework release type])
416 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
417 homer_type="production"
418 HOMER_TARGET="${HOMER_TARGET}-release"
419 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
421 HOMER_TARGET="${HOMER_TARGET}-debug"
423 AC_MSG_RESULT([${homer_type}])
424 HOMERREADER_HEADER=HOMERReader.h
425 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
426 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
427 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
428 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
429 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
433 AC_CHECK_HEADER([$HOMERREADER_HEADER],
434 [ AC_CHECK_LIB([HOMER],[_init],
436 HOMER_LIBS="-lHOMER"],
437 [ AC_CHECK_LIB([HOMERReader],[_init],
439 HOMER_LIBS="-lHOMERReader"])])
440 LIBS="$LIBS $HOMER_LIBS"
441 AC_MSG_CHECKING([version of HOMER library])
442 dnl The Homer library has no versioning, so we do our own
443 dnl version description
444 dnl ----------------------------------------------------------------------
445 dnl 1 inintial version
446 dnl 2 GetBlockStatusFlags added to the interface
447 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
448 [HOMERReader reader("dummy", 0);
449 reader.GetBlockStatusFlags(0);])],
452 AC_MSG_RESULT([$HOMER_VERSION])
454 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
458 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
460 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
461 HOMERREADER_HEADER=AliHLTHOMERReader.h
462 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
468 if test "x$with_homer" = "xno" ; then
473 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
474 AC_DEFINE(HAVE_HOMERREADER)
476 CPPFLAGS="$save_CPPFLAGS"
477 LDFLAGS="$save_LDFLAGS"
480 AC_SUBST([HOMERREADER_HEADER])
481 AC_SUBST([HOMER_INBUILT_LIB])
482 AC_SUBST([HOMER_CPPFLAGS])
483 AC_SUBST([HOMER_LDFLAGS])
484 AC_SUBST([HOMER_LIBDIR])
485 AC_SUBST([HOMER_BINDIR])
486 AC_SUBST([HOMER_LIBS])
488 dnl ------------------------------------------------------------------
490 [AC_HELP_STRING([--disable-all],
491 [disable all detector modules, individual modules can be switched on by --enable-det])],
492 [disable_all=yes],[])
494 dnl ------------------------------------------------------------------
495 AC_MSG_CHECKING([whether to impose strict coding conventions])
496 AC_ARG_ENABLE(strict,
497 [AC_HELP_STRING([--disable-strict],
498 [disable coding convention checks ])],
499 [],[enable_strict=yes])
500 if test "x$enable_strict" = "xyes" ; then
501 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
503 AC_MSG_RESULT([$enable_strict])
505 dnl ------------------------------------------------------------------
506 AC_MSG_CHECKING([whether to compile sample library])
507 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
508 AC_ARG_ENABLE(sample,
509 [AC_HELP_STRING([--disable-sample],
510 [compile the sample library ])],
512 [if test "x$have_aliroot" = "xno" ; then
513 enable_sample="no...requires.AliRoot"
519 if test "x$enable_sample" = "xyes" ; then
520 AC_DEFINE(HLT_SAMPLE)
522 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
523 AC_MSG_RESULT([$enable_sample])
525 dnl ------------------------------------------------------------------
526 AC_MSG_CHECKING([whether to compile util library])
527 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
529 [AC_HELP_STRING([--disable-util],
530 [compile the util library ])],
532 [if test "x$have_aliroot" = "xno" ; then
533 enable_util="no...requires.AliRoot"
539 if test "x$enable_util" = "xyes" ; then
542 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
543 AC_MSG_RESULT([$enable_util])
545 dnl ------------------------------------------------------------------
546 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
548 CHECK_HLTMODULE([tpc],
550 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
551 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
552 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
553 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
555 if test "x$enable_module" = "xmissheader"; then
556 enable_module="no...missing.headers"
557 enable_tpc="no...missing.headers"
558 elif test "x$have_alitpc" = "xno" ; then
559 enable_module="no...requires.AliRoot.TPC.libraries"
560 enable_tpc="no...requires.AliRoot.TPC.libraries"
561 elif test "x$enable_module" = "xforce"; then
564 enable_tpc=$enable_module
567 if test "x$enable_tpc" = "xyes" ; then
570 enable_module=$enable_tpc
572 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
573 AC_MSG_CHECKING([whether to compile TPC library])
574 AC_MSG_RESULT([$enable_module])
575 AC_SUBST([ALITPC_LIBS])
577 dnl ------------------------------------------------------------------
578 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
580 CHECK_HLTMODULE([rcu],
582 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
583 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
584 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
585 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
587 if test "x$enable_module" = "xmissheader"; then
588 enable_module="no...missing.headers"
589 enable_rcu="no...missing.headers"
590 elif test "x$have_alircu" = "xno" ; then
591 enable_module="no...requires.AliRoot.RAW.libraries"
592 enable_rcu="no...requires.AliRoot.RAW.libraries"
593 elif test "x$enable_module" = "xforce"; then
597 save_CPPFLAGS=$CPPFLAGS
598 save_LDFLAGS=$LDFLAGS
600 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
601 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
602 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
603 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
604 [AliAltroDecoder decoder;
605 decoder.CopyBackward(NULL, 0);])],
606 [enable_rcu=$enable_module],
607 [enable_module="no...requires.AliRoot>v4-10-Release"
608 enable_rcu="no...requires.AliRoot>v4-10-Release"])
609 CPPFLAGS=$save_CPPFLAGS
610 LDFLAGS=$save_LDFLAGS
615 if test "x$enable_rcu" = "xyes" ; then
618 enable_module=$enable_rcu
620 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
621 AC_MSG_CHECKING([whether to compile RCU library])
622 AC_MSG_RESULT([$enable_module])
623 AC_SUBST([ALIRCU_LIBS])
625 dnl ------------------------------------------------------------------
626 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
629 CHECK_HLTMODULE([phos],
630 [], [$ALIROOT_CPPFLAGS],
631 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
632 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
633 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
635 if test "x$enable_module" = "xmissheader"; then
636 enable_module="no...requires.AliRoot>v4-05-07"
637 enable_phos="no...requires.AliRoot>v4-05-07"
638 elif test "x$enable_module" = "xforce"; then
641 have_alicalorawstream=no
642 if test ! "x$have_aliroot" = "xno" ; then
644 save_CPPFLAGS="$CPPFLAGS"
645 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
646 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
647 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
648 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
649 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
650 #include <AliCaloRawStream.h>],
652 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
653 have_alicalorawstream=yes],
655 AC_MSG_RESULT([$have_alicalorawstream])
657 CPPFLAGS="$save_CPPFLAGS"
659 if test "x$have_alicalorawstream" != "xyes"; then
660 enable_phos="no...requires.AliRoot>v4-05-07"
662 enable_phos=$enable_module
666 if test "x$enable_phos" = "xyes" ; then
668 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
670 enable_module=$enable_phos
672 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
673 AC_MSG_CHECKING([whether to compile PHOS library])
674 AC_MSG_RESULT([$enable_module])
675 AC_SUBST([ALIPHOS_LIBS])
677 dnl ------------------------------------------------------------------
678 AH_TEMPLATE([HLT_TRD],[hlt trd library])
681 CHECK_HLTMODULE([trd],
683 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
684 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
685 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
687 if test "x$enable_module" = "xmissheader"; then
688 enable_module="no...requires.AliRoot>v4-07-Release"
689 enable_trd="no...requires.AliRoot>v4-07-Release"
690 elif test "x$enable_module" = "xforce"; then
693 enable_trd=$enable_module
694 if test "x$enable_trd" = "xyes" ; then
696 save_CPPFLAGS="$CPPFLAGS"
697 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
698 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
699 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
700 AC_MSG_CHECKING([for required functions in AliTRDrecoParam])
701 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>],
705 [enable_trd="no...requires.AliRoot>v4-13-Release"])
706 AC_MSG_RESULT([$enable_trd])
708 CPPFLAGS="$save_CPPFLAGS"
712 if test "x$enable_trd" = "xyes" ; then
714 ALITRD_LIBS=$ALIHLTMODULE_LIBS
716 enable_module=$enable_trd
718 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
719 AC_MSG_CHECKING([whether to compile TRD library])
720 AC_MSG_RESULT([$enable_module])
721 AC_SUBST([ALITRD_LIBS])
723 dnl ------------------------------------------------------------------
724 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
727 CHECK_HLTMODULE([dimuon],
728 [AliMpExMap.h AliMUONTriggerIO.h],
729 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
730 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
731 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
732 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
734 if test "x$enable_module" = "xmissheader"; then
735 enable_module="no...requires.AliRoot>=v4-08-Release"
736 enable_muon="no...requires.AliRoot>=v4-08-Release"
737 elif test "x$enable_module" = "xforce"; then
740 enable_muon=$enable_module
743 if test "x$enable_muon" = "xyes" ; then
745 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
747 enable_module=$enable_muon
749 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
750 AC_MSG_CHECKING([whether to compile MUON library])
751 AC_MSG_RESULT([$enable_module])
752 AC_SUBST([ALIMUON_LIBS])
754 dnl ------------------------------------------------------------------
755 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
758 CHECK_HLTMODULE([trigger],
759 [], [$ALIROOT_CPPFLAGS],
760 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
761 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
762 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
764 if test "x$enable_module" = "xmissheader"; then
765 enable_module="no...header.missing"
766 enable_trigger="no...header.missing"
767 elif test "x$enable_module" = "xforce"; then
770 enable_trigger=$enable_module
773 if test "x$enable_trigger" = "xyes" ; then
774 AC_DEFINE(HLT_TRIGGER)
775 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
777 enable_module=$enable_trigger
779 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
780 AC_MSG_CHECKING([whether to compile Trigger library])
781 AC_MSG_RESULT([$enable_module])
782 AC_SUBST([ALITRIGGER_LIBS])
784 dnl ------------------------------------------------------------------
785 AH_TEMPLATE([HLT_ITS],[hlt its library])
788 CHECK_HLTMODULE([its],
789 [], [$ALIROOT_CPPFLAGS],
790 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
791 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
792 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
794 if test "x$enable_module" = "xmissheader"; then
795 enable_module="no...header.missing"
796 enable_its="no...header.missing"
797 elif test "x$enable_module" = "xforce"; then
800 enable_its=$enable_module
801 if test "x$enable_its" = "xyes" ; then
803 save_CPPFLAGS="$CPPFLAGS"
804 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
805 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
806 # require AliVertexer::GetNominalPos()
807 AC_MSG_CHECKING([for required functions in AliITSVertexer])
808 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
810 v.GetNominalPos()])],
812 [enable_its="no...requires.AliRoot>v4-13-Release"])
813 AC_MSG_RESULT([$enable_its])
815 CPPFLAGS="$save_CPPFLAGS"
819 if test "x$enable_its" = "xyes" ; then
821 ALIITS_LIBS=$ALIHLTMODULE_LIBS
823 enable_module=$enable_its
825 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
826 AC_MSG_CHECKING([whether to compile ITS library])
827 AC_MSG_RESULT([$enable_module])
828 AC_SUBST([ALIITS_LIBS])
830 dnl ------------------------------------------------------------------
831 AH_TEMPLATE([HLT_COMP],[hlt comp library])
834 CHECK_HLTMODULE([comp],
835 [], [$ALIROOT_CPPFLAGS],
836 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
837 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
838 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
840 if test "x$enable_module" = "xmissheader"; then
841 enable_module="no...header.missing"
842 enable_comp="no...header.missing"
843 elif test "x$enable_module" = "xforce"; then
846 enable_comp=$enable_module
849 if test "x$enable_comp" = "xyes" ; then
851 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
853 enable_module=$enable_comp
855 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
856 AC_MSG_CHECKING([whether to compile comp library])
857 AC_MSG_RESULT([$enable_module])
858 AC_SUBST([ALICOMP_LIBS])
860 dnl ------------------------------------------------------------------
861 AC_MSG_CHECKING([whether to disable AliRoot logging])
862 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
863 AC_ARG_ENABLE(aliroot-logging,
864 [AC_HELP_STRING([--disable-aliroot-logging],
865 [disable logging through AliRoot logging methods])],
866 [],[enable_aliroot_logging=no])
867 if test "x$have_aliroot" = "xno" ; then
868 enable_aliroot_logging=yes # this means 'disable'
870 if test "x$enable_aliroot_logging" != "xno" ; then
871 AC_DEFINE(NOALIROOT_LOGGING)
873 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
874 AC_MSG_RESULT([$enable_aliroot_logging])
876 dnl ------------------------------------------------------------------
877 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
878 AH_TEMPLATE([DOMC],[MC saving])
879 AC_ARG_ENABLE(mc-saving,
880 [AC_HELP_STRING([--enable-mc-saving],
881 [enable saving MC data through the chain])],
882 [],[enable_mc_saving=no])
883 if test "x$enable_mc_saving" = "xyes" ; then
886 AC_MSG_RESULT([$enable_mc_saving])
888 dnl ------------------------------------------------------------------
889 dnl certainly something old, but we keep the define
890 AC_MSG_CHECKING([whether to use ROWHOUGH])
891 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
892 AC_ARG_ENABLE(rowhough,
893 [AC_HELP_STRING([--enable-rowhough],
895 [],[enable_rowhough=no])
896 if test "x$enable_rowhough" = "xyes" ; then
897 AC_DEFINE(USEROWHOUGH)
899 AC_MSG_RESULT([$enable_rowhough])
901 dnl ------------------------------------------------------------------
902 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
903 dnl stand-alone build system. This is most likely something old we can
904 dnl get rid off later, or do something more reasonable. Since the define
905 dnl needs the quotes they have to be escaped. This works well for the
906 dnl Makefile but not for the configure script. So we have to add the
907 dnl defines after all the other checks.
908 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
909 if test ! "x$have_aliroot" = "xno" ; then
910 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
913 dnl ------------------------------------------------------------------
917 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
918 AC_PATH_PROG(PERL, perl)
919 AC_PATH_PROG(DOXYGEN, doxygen)
920 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
922 [AC_HELP_STRING([--enable-dot],
923 [enable dot documentation generator])],
927 AC_PATH_PROG(DOT, dot)
928 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
930 DOT_PATH=`dirname $DOT`
935 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
936 dnl echo $HAVE_SRC_SUBDIR
937 dnl if ! test -d $HAVE_SRC_SUBDIR; then
940 dnl AC_SUBST([HAVE_SRC_SUBDIR])
942 dnl ------------------------------------------------------------------
943 AC_MSG_NOTICE([---------------------------------------------- ])
944 AC_MSG_NOTICE([ build summary ])
945 AC_MSG_NOTICE([---------------------------------------------- ])
947 AC_CONFIG_FILES([Makefile
953 BASE/interface/Makefile
957 doc/doxymodule.conf])
959 dnl AliRoot and installation directory for libraries
961 AC_MSG_NOTICE([AliRoot: $have_aliroot])
962 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
963 if test "x$have_aliroot" != "xno"; then
964 AC_CONFIG_FILES([sim/Makefile
970 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
971 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
972 AC_MSG_NOTICE([libdir set to $libdir])
975 AC_MSG_NOTICE([compile sample library: $enable_sample])
976 if test "x$enable_sample" = "xyes"; then
977 AC_CONFIG_FILES([SampleLib/Makefile])
980 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
981 if test "x$enable_rcu" = "xyes"; then
982 AC_CONFIG_FILES([RCU/Makefile
987 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
988 if test "x$enable_tpc" = "xyes"; then
989 AC_CONFIG_FILES([TPCLib/Makefile
991 TPCLib/mapping2array.cxx
992 TPCLib/OnlineDisplay/Makefile
996 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
997 if test "x$enable_phos" = "xyes"; then
998 AC_CONFIG_FILES([PHOS/Makefile])
1001 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1002 if test "x$enable_trd" = "xyes"; then
1003 AC_CONFIG_FILES([TRD/Makefile])
1006 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1007 if test "x$enable_muon" = "xyes"; then
1008 AC_CONFIG_FILES([MUON/Makefile])
1011 AC_MSG_NOTICE([compile ITS library: $enable_its])
1012 if test "x$enable_its" = "xyes"; then
1013 AC_CONFIG_FILES([ITS/Makefile])
1016 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1017 if test "x$enable_trigger" = "xyes"; then
1018 AC_CONFIG_FILES([trigger/Makefile])
1021 AC_MSG_NOTICE([compile comp library: $enable_comp])
1022 if test "x$enable_comp" = "xyes"; then
1023 AC_CONFIG_FILES([comp/Makefile])