Make and print an image of QA user flagged histograms (Yves)
[u/mrichter/AliRoot.git] / HLT / configure.ac
CommitLineData
b521659f 1dnl -*- mode: autoconf -*-
2dnl
3dnl $Id$
4dnl template for the configuration script for the Alice HLT
5dnl framework and components
6dnl
7dnl ------------------------------------------------------------------
408c5899 8
9dnl Take either the AliRoot tag as version id or the current revision
10AC_INIT([Alice High Level Trigger] ,
7233bc62 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 \
16 cat .revision; \
17 else \
18 echo -n invalid-version; \
19 fi]),
408c5899 20 [Matthias.Richter@ift.uib.no],
21 [alice-hlt])
b521659f 22
23dnl ------------------------------------------------------------------
24dnl the package from CVS contains the old Makefiles as well. In order to
25dnl prevent them from becoming overwritten, we require a separate build
26dnl directory
27if test "`dirname $0`" = "." ; then
28 AC_ERROR([please run the script from a separate build directory])
29fi
30
31dnl ------------------------------------------------------------------
32AC_CANONICAL_SYSTEM
33AC_PREFIX_DEFAULT(${PWD})
34AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
35AM_INIT_AUTOMAKE
36AC_PROG_CC
37AC_PROG_CXX
38AC_PROG_LIBTOOL
39
40AC_DEBUG
41AC_OPTIMIZATION
dc8f7cb7 42AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
43
44dnl ------------------------------------------------------------------
45dnl A warning posted into the auto-generated files
46dnl Does NOT concern this file ;-)
47AUTOGENERATED_WARNING="!!!!!!! DO NOT EDIT THIS FILE !!!!!!"
48AC_SUBST([AUTOGENERATED_WARNING])
b521659f 49
50dnl ------------------------------------------------------------------
51dnl
52dnl Check for ROOT
53dnl
54ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
55AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
53feaef5 56AC_SUBST([ROOTSYS])
dc8f7cb7 57ROOTBINDIR=`dirname $ROOTEXEC`
58AC_SUBST([ROOTBINDIR])
59
dfaa582a 60dnl test for additional required root libraries and headers
61LIBS='-ldl'
62if test "x$have_root" = "x1"; then
63 AC_LANG_PUSH(C++)
64 save_CPPFLAGS=$CPPFLAGS
65 save_LDFLAGS=$LDFLAGS
66 save_LIBS=$LIBS
67 CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
68
dc8f7cb7 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
74 # libTreePlayer.so
75 # - from Jan 07 libESD also depends on libXMLIO
fbf4d793 76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
0776a74c 77 # - libCDB.so depends on libXMLParser since Mar 11 2009 r 31411
78 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer XMLParser'
dc8f7cb7 79 for CHECKLIB in $ROOT_CHECKLIBS ; do
dc8f7cb7 80 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
81 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
82 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
83 done
dfaa582a 84
85 # TBuffer.h has been made pure virtual in root v5-15-02 and one
86 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
ba4b0dd7 87 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
dfaa582a 88
0b6c2560 89 # TView.h has been made pure virtual right after root v5-15-02 and one
90 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
ba4b0dd7 91 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
0b6c2560 92
dc8f7cb7 93 CPPFLAGS=$save_CPPFLAGS
94 LDFLAGS=$save_LDFLAGS
95 LIBS=$save_LIBS
dfaa582a 96 AC_LANG_POP(C++)
dc8f7cb7 97fi
b521659f 98
99dnl ------------------------------------------------------------------
100# TODO: make this configurable through arguments
101#Define whether you want to run with ALIROOT or only ROOT
102AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
103ALIHLT_USEPACKAGE=ALIROOT
104#ALIHLT_USEPACKAGE=ROOT
105#ALIHLT_USEPACKAGE=STANDALONE
106AC_DEFINE(use_aliroot)
107AC_DEFINE(use_root)
85869391 108CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
7233bc62 109save_CPPFLAGS=$CPPFLAGS
110save_LDFLAGS=$LDFLAGS
111save_LIBS=$LIBS
85869391 112
113dnl ------------------------------------------------------------------
74c73e5a 114dnl check for AliRoot features
115AC_LANG_PUSH(C++)
74c73e5a 116have_aliroot=no
2bbbadd1 117AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
118 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
119 [])
120
121if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
122 dnl ------------------------------------------------------------------
123 dnl Try to estimate the system architecture
124 case $host_os:$host_cpu in
125 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
126 linux*) alice_target='linux' ;;
127 *) alice_target='unknown' ;;
128 esac
129 if test "x$alice_target" = "xunknown" ; then
130 if test -z $ALICE_TARGET ; then
131 AC_MSG_ERROR([Can not estimate system architecture.
132 To avoid the problem, set the ALICE_TARGET variable appropriately.
133 Please send the following information to Matthias.Richter@ift.uib.no:
134 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
135 else
136 AC_MSG_NOTICE([Unknown system architecture.
137 Please send the following information to Matthias.Richter@ift.uib.no:
138 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
139 fi
140 else
141 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
142 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
143 overriding $ALICE_TARGET by $alice_target])
144 fi
145 ALICE_TARGET=$alice_target
146 fi
dc8f7cb7 147 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
74c73e5a 148 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
149 ALIROOTINCDIR=${ALICE_ROOT}/include
dc8f7cb7 150 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
2bbbadd1 151 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
152 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
74c73e5a 153fi
2bbbadd1 154
155AC_MSG_CHECKING([for AliRoot])
74c73e5a 156if test "x$ALICE_ROOT" != "x" \
dc8f7cb7 157 && test -d ${ALIROOTBINDIR} \
74c73e5a 158 && test -d ${ALIROOTLIBDIR} \
159 && test -d ${ALIROOTINCDIR}; then
160 have_aliroot=$ALICE_ROOT
161else
dc8f7cb7 162 ALIROOTBINDIR=
74c73e5a 163 ALIROOTLIBDIR=
164 ALIROOTINCDIR=
165fi
166AC_MSG_RESULT([$have_aliroot])
167
168if test ! "x$have_aliroot" = "xno" ; then
74c73e5a 169 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
170 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
cef8ce36 171 ALIROOT_LIBS="$ADD_ROOTLIBS"
74c73e5a 172 save_CPPFLAGS=$CPPFLAGS
173 save_LDFLAGS=$LDFLAGS
174 save_LIBS=$LIBS
175 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
db16520a 176 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
2bbbadd1 177
f8c5e339 178 # check for certain AliRoot libraries/files/features
c018a1bd 179 # libSTEERBase present since Aug 7 2007
1df31a70 180 # ###########################################
181 # temporary workaround for circular dependency libSTEERbase libSTEER
182 # https://savannah.cern.ch/bugs/index.php?49914
183 # disable the sequence of checks and load libraries in parallel
184 ALIROOT_LIBS="$ALIROOT_LIBS -lAOD -lCDB -lRAWDatabase -lRAWDatarec -lESD -lSTEER"
98a0e47f 185 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
c018a1bd 186 CHECKLIB=STEERBase
187 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
188
98a0e47f 189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
f5bf5fc3 190 CHECKLIB=AOD
191 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
192
cef8ce36 193 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
98a0e47f 194 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
cef8ce36 195 CHECKLIB=CDB
196 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
197
2bbbadd1 198 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
199 have_alirawdata=no
200 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
201 CHECKLIB=RAWDatabase
202 AC_CHECK_LIB([$CHECKLIB],[_init],
203 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
cef8ce36 204 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER"
2bbbadd1 205 CHECKLIB=RAWDatarec
206 AC_CHECK_LIB([$CHECKLIB],[_init],
207 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
2bbbadd1 208 have_alirawdata=$CHECKLIB])],
209 [# second pass with -RAWData
210 CHECKLIB="-lRAWData"
211 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
212 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
213 #include <AliRawReaderFile.h>
214 #include <AliRawReaderDate.h>
215 #include <AliRawReaderRoot.h>],
216 [AliRawReaderMemory mreader;
217 AliRawReaderFile freader;
218 AliRawReaderDate dreader(NULL,0);
219 AliRawReaderRoot rreader(NULL,0);])],
e962f438 220 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
2bbbadd1 221 have_alirawdata=$CHECKLIB],
222 [have_alirawdata=no])
223 ]) dnl AC_CHECK_LIB RAWDatabase
fa274626 224 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
225 AC_MSG_RESULT([$have_alirawdata])
226
fbf4d793 227 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
cef8ce36 228 CHECKLIB=ESD
fbf4d793 229 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
230
231 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
232 CHECKLIB=STEER
233 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
234
235 dnl
236 dnl check whether AliLog supports notification callback
237 dnl
238 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
239 have_alilog_notification=no
240 if test ! "x$have_aliroot" = "xno" ; then
241 AC_MSG_CHECKING([whether AliLog supports notification callback])
242 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
243 [AliLog::AliLogNotification fct])],
244 [have_alilog_notification=yes],
245 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
246 AC_MSG_RESULT([$have_alilog_notification])
247 fi
248
249 if test "x$have_aliroot" = "xno" ; then
250 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
251 # but library dependencies might not be resolved completely
252 #ALIROOT_CPPFLAGS=
253 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
254 This can happen from time to time due to development in AliRoot. You can
255 force compilation of detector libs by --enable-<detector>, but be aware
256 of unresolved references at runtime.])
257 AC_MSG_WARN([ ------------------------------------------ ])
258 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
259 AC_MSG_WARN([ please include config.log ])
260 AC_MSG_WARN([ ------------------------------------------ ])
261 ALIROOT_LDFLAGS=
262 ALIROOT_LIBS=
263 fi
264
f5bf5fc3 265 dnl
f527516f 266 dnl ESD supports non-std content
267 dnl
268 have_esd_nonstd=no
269 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
270 #include <AliExternalTrackParam.h>
271 #include <TTree.h>
272 #include <TClonesArray.h>],
273 [AliESDEvent esd;
274 esd.CreateStdContent();
275 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
f527516f 276 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
277 a->SetName("SomeObject");
278 esd.AddObject(a);
50a3793d 279 esd.WriteToTree(tree);
f527516f 280 if (!tree->FindBranch("SomeObject")) return 1;
281 return 0;])],
282 [have_esd_nonstd=yes],
283 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
284 AC_MSG_CHECKING(whether ESD supports non standard content)
285 AC_MSG_RESULT([$have_esd_nonstd])
286
287 dnl
83cb7e1d 288 dnl ESD copy function added May 9 2008 rev 25667
289 dnl
f527516f 290 if test "x$have_esd_nonstd" != "xyes"; then
83cb7e1d 291 have_esd_copy=no
292 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
293 [AliESDEvent esd1;
294 AliESDEvent esd2;
295 esd2=esd1;])],
9877121c 296 [have_esd_copy=yes],
297 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
83cb7e1d 298 AC_MSG_CHECKING(for ESD assignment operator)
299 AC_MSG_RESULT([$have_esd_copy])
f527516f 300 fi
83cb7e1d 301
302 dnl
296b5188 303 dnl AliRawReaderMemory support for multiple buffers added
c03e064d 304 dnl revision 26829 Jun 2008
296b5188 305 dnl
306 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
307 have_rawreadermemory_multbuffers=no
308 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
309 [AliRawReaderMemory rr;
310 rr.AddBuffer(NULL, 0, 0);])],
311 [have_rawreadermemory_multbuffers=yes],
312 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
c03e064d 313 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
296b5188 314 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
315
316 dnl
fbf4d793 317 dnl required header files and libraries for modules
f5bf5fc3 318 dnl
04dbc9e4 319
f59fee6d 320 dnl
321 dnl Check for the interface of AliExternalTrackParam which has been changed
322 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
323 dnl or higher)
324 externaltrackparam_version=1
325 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
326 [AliExternalTrackParam trackparam;
327 Double_t param[[5]]; Double_t covar[[15]];
328 trackparam.Set(0., 0., param, covar);])],
329 [externaltrackparam_version=2],
330 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
331 AC_MSG_CHECKING(for version of AliExternalTrackParam)
332 AC_MSG_RESULT($externaltrackparam_version)
333
4646c6e3 334 dnl The AliShuttleInterface was changed in rev 29388. Some return types
335 dnl had been const, now changed according to gcc 4.3 warnings
336 AC_MSG_CHECKING(for version of AliShuttleInterface.h)
337 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
338 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
339 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
340 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
341 [class dummy : public AliShuttleInterface {
342 public:
343 const UInt_t GetStartTimeDCSQuery() {;}
344 };])],
345 [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
346 alishuttleinterface_version=pre.rev.29388],
347 [alishuttleinterface_version=up.to.date])
348 AC_MSG_RESULT([$alishuttleinterface_version])
349
74c73e5a 350 CPPFLAGS=$save_CPPFLAGS
351 LDFLAGS=$save_LDFLAGS
352 LIBS=$save_LIBS
7233bc62 353fi # if test ! "x$have_aliroot" = "xno"
f59fee6d 354
74c73e5a 355AC_LANG_POP(C++)
5f5b708b 356AC_SUBST([ALICE_ROOT])
74c73e5a 357AC_SUBST([ALIROOT_CPPFLAGS])
358AC_SUBST([ALIROOT_LDFLAGS])
dc8f7cb7 359AC_SUBST([ALIROOTBINDIR])
53feaef5 360AC_SUBST([ALIROOTLIBDIR])
74c73e5a 361AC_SUBST([ALIROOT_LIBS])
0f51f5b8 362AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
85869391 363
6c1a9d9e 364HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
365HLTBASE_LDFLAGS=
366AC_SUBST([HLTBASE_CPPFLAGS])
367AC_SUBST([HLTBASE_LDFLAGS])
368
85869391 369dnl ------------------------------------------------------------------
78b557c2 370dnl check for the HLT PubSub Framework
f8c5e339 371dnl namely for the existence of the HOMER library
372dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
373dnl package. It os though possible to choose an external. library
374dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
375dnl got the name libAliHLTHOMER
78b557c2 376AC_MSG_CHECKING([for HLT PubSub Framework])
377AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
378 [],
379 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
380if test -z $with_pubsub || ! test -d $with_pubsub ; then
381 with_pubsub=no
382fi
383AC_MSG_RESULT([$with_pubsub])
f8c5e339 384HOMER_VERSION=2
5f1685a0 385HOMER_LIBS=
78b557c2 386
387AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
388if test "x$with_pubsub" != "xno" ; then
389 save_CPPFLAGS=$CPPFLAGS
390 save_LDFLAGS=$LDFLAGS
391 save_LIBS=$LIBS
4a6b4894 392 # currently the different versions of the HLT PubSub framework have a different
393 # directory layout
20b6dd9a 394 if test -d ${with_pubsub}/include/HOMER ; then
5235c3e9 395 # the 'early' location of the include files with separated HOMER sub dirs
9ce4bf4a 396 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
5235c3e9 397 elif test -d ${with_pubsub}/include/Util/HOMER ; then
398 # location for HLT Framework versions after Sep 2006
9ce4bf4a 399 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
5235c3e9 400 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
401 # fall back if include files were not installed (versions after Sep 06)
9ce4bf4a 402 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
4a6b4894 403 else
5235c3e9 404 # fall back if include files were not installed (versions before Sep 06)
9ce4bf4a 405 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
4a6b4894 406 fi
9ce4bf4a 407 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
5894eaa5 408
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])
413 homer_type="none"
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
420 homer_type="debug"
421 HOMER_TARGET="${HOMER_TARGET}-debug"
422 fi
423 AC_MSG_RESULT([${homer_type}])
f8c5e339 424 HOMERREADER_HEADER=HOMERReader.h
5894eaa5 425 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
426 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
53feaef5 427 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
78b557c2 428 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
429 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
430 LIBS="$save_LIBS "
431 with_homer=no
432 AC_LANG_PUSH(C++)
f8c5e339 433 AC_CHECK_HEADER([$HOMERREADER_HEADER],
5f1685a0 434 [ AC_CHECK_LIB([HOMER],[_init],
435 [with_homer=yes
436 HOMER_LIBS="-lHOMER"],
437 [ AC_CHECK_LIB([HOMERReader],[_init],
438 [with_homer=yes
439 HOMER_LIBS="-lHOMERReader"])])
440 LIBS="$LIBS $HOMER_LIBS"
9ce4bf4a 441 AC_MSG_CHECKING([version of HOMER library])
5f1685a0 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);])],
f8c5e339 450 [],
451 [HOMER_VERSION=1])
5f1685a0 452 AC_MSG_RESULT([$HOMER_VERSION])
f8c5e339 453 ],
454 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
78b557c2 455 AC_LANG_POP(C++)
f8c5e339 456 HOMER_INBUILT_LIB=
457else
458dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
459 topdir=`dirname $0`
460 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
461 HOMERREADER_HEADER=AliHLTHOMERReader.h
462 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
463 HOMER_BINDIR=
464 HOMER_LIBDIR=
465 HOMER_LDFLAGS=
466fi
467
78b557c2 468 if test "x$with_homer" = "xno" ; then
469 HOMER_CPPFLAGS=
470 HOMER_LDFLAGS=
5f1685a0 471 HOMER_LIBS=
78b557c2 472 else
5f1685a0 473 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
78b557c2 474 AC_DEFINE(HAVE_HOMERREADER)
475 fi
476 CPPFLAGS="$save_CPPFLAGS"
477 LDFLAGS="$save_LDFLAGS"
478 LIBS="$save_LIBS"
f8c5e339 479
480AC_SUBST([HOMERREADER_HEADER])
481AC_SUBST([HOMER_INBUILT_LIB])
78b557c2 482AC_SUBST([HOMER_CPPFLAGS])
483AC_SUBST([HOMER_LDFLAGS])
53feaef5 484AC_SUBST([HOMER_LIBDIR])
485AC_SUBST([HOMER_BINDIR])
5f1685a0 486AC_SUBST([HOMER_LIBS])
78b557c2 487
488dnl ------------------------------------------------------------------
7233bc62 489AC_ARG_ENABLE(all,
490 [AC_HELP_STRING([--disable-all],
491 [disable all detector modules, individual modules can be switched on by --enable-det])],
492 [disable_all=yes],[])
493
494dnl ------------------------------------------------------------------
85869391 495AC_MSG_CHECKING([whether to impose strict coding conventions])
496AC_ARG_ENABLE(strict,
2028353f 497 [AC_HELP_STRING([--disable-strict],
498 [disable coding convention checks ])],
499 [],[enable_strict=yes])
85869391 500if test "x$enable_strict" = "xyes" ; then
f7561f8d 501 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
85869391 502fi
503AC_MSG_RESULT([$enable_strict])
b521659f 504
505dnl ------------------------------------------------------------------
5b6ab198 506AC_MSG_CHECKING([whether to enable component statistics])
507AC_ARG_ENABLE(component-stat,
508 [AC_HELP_STRING([--enable-component-stat],
509 [enable component statistics ])],
510 [],[enable_component_stat=no])
511if test "x$enable_component_stat" = "xyes" ; then
512 AC_DEFINE(HLT_COMPONENT_STATISTICS)
513fi
514AC_MSG_RESULT([$enable_component_stat])
515
516dnl ------------------------------------------------------------------
cad2d06c 517dnl ---- module checks
518dnl ------------------------------------------------------------------
519save_CPPFLAGS=$CPPFLAGS
520save_LDFLAGS=$LDFLAGS
521save_LIBS=$LIBS
522
523dnl ------------------------------------------------------------------
b521659f 524AC_MSG_CHECKING([whether to compile sample library])
525AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
526AC_ARG_ENABLE(sample,
c018a1bd 527 [AC_HELP_STRING([--disable-sample],
b521659f 528 [compile the sample library ])],
2e742d30 529 [],
530 [if test "x$have_aliroot" = "xno" ; then
531 enable_sample="no...requires.AliRoot"
532 else
533 enable_sample=yes
534 fi
535 ])
536
b521659f 537if test "x$enable_sample" = "xyes" ; then
538 AC_DEFINE(HLT_SAMPLE)
539fi
540AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
541AC_MSG_RESULT([$enable_sample])
542
543dnl ------------------------------------------------------------------
c018a1bd 544AC_MSG_CHECKING([whether to compile util library])
545AH_TEMPLATE([HLT_UTIL],[HLT utility library])
546AC_ARG_ENABLE(util,
547 [AC_HELP_STRING([--disable-util],
548 [compile the util library ])],
2e742d30 549 [],
550 [if test "x$have_aliroot" = "xno" ; then
551 enable_util="no...requires.AliRoot"
552 else
553 enable_util=yes
554 fi
555 ])
c018a1bd 556
557if test "x$enable_util" = "xyes" ; then
558 AC_DEFINE(HLT_UTIL)
559fi
560AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
561AC_MSG_RESULT([$enable_util])
562
563dnl ------------------------------------------------------------------
b521659f 564AH_TEMPLATE([HLT_TPC],[hlt tpc library])
f59fee6d 565
e642ae99 566ALITPC_LIBS=
f59fee6d 567CHECK_HLTMODULE([tpc],
e962f438 568 [AliTPCRawStream.h],
569 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
70d00903 570 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
e642ae99 571 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 572 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
573
c6b46c3f 574if test "x$enable_module" = "xmissheader"; then
575 enable_module="no...missing.headers"
50a3793d 576 enable_tpc=$enable_module
c6b46c3f 577elif test "x$enable_module" = "xforce"; then
578 enable_tpc="yes"
f59fee6d 579else
580 enable_tpc=$enable_module
581fi
2e742d30 582
b521659f 583if test "x$enable_tpc" = "xyes" ; then
e642ae99 584 AC_LANG_PUSH(C++)
b521659f 585 AC_DEFINE(HLT_TPC)
e642ae99 586 ALITPC_LIBS=$ALIHLTMODULE_LIBS
587 dnl
588 dnl Check for functionality in the TPC reconstruction required for online
589 dnl processing
590 dnl
591 have_tpc_hltoffline_rec=no
592 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
593 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
594 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
595 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
596 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
597 #include <AliTPCclustererMI.h>
598 #include <TObjArray.h>],
599 [AliTPCtrackerMI tracker;
600 TObjArray* array=NULL;
601 tracker.LoadClusters(array);
602 AliTPCclustererMI cl(NULL, NULL);
89c2e505 603 cl.GetOutputClonesArray();])],
e642ae99 604 [have_tpc_hltoffline_rec=yes],
605 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
cad2d06c 606 LIBS=$save_LIBS
e642ae99 607 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
608
609 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
610 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
611
612 have_tpc_mapping=no
613 if test ! "x$have_aliroot" = "xno" ; then
614 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
615 # which is stored in the TPC/mapping/Patchx.data files from
616 # AliRoot version v4-04-Release (May 2006)
617 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
618 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
619 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
620 [have_tpc_mapping=yes
621 AC_SUBST(TPC_PAD_MAPPING_PATH)
622 AC_DEFINE(HAVE_TPC_MAPPING)],
623 [])
624
625 fi
626 AC_MSG_CHECKING([for TPC mapping layout])
627 AC_MSG_RESULT([$have_tpc_mapping])
628 AC_LANG_POP(C++)
629
adec4ad4 630else
631 enable_module=$enable_tpc
b521659f 632fi
633AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
d6e2c707 634AC_MSG_CHECKING([whether to compile TPC library])
c6b46c3f 635AC_MSG_RESULT([$enable_module])
f59fee6d 636AC_SUBST([ALITPC_LIBS])
b521659f 637
638dnl ------------------------------------------------------------------
5e3820e2 639AH_TEMPLATE([HLT_RCU],[hlt rcu library])
640
641CHECK_HLTMODULE([rcu],
642 [AliAltroDecoder.h],
643 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
644 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
645 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
646 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
647
648if test "x$enable_module" = "xmissheader"; then
649 enable_module="no...missing.headers"
50a3793d 650 enable_rcu=$enable_module
5e3820e2 651elif test "x$enable_module" = "xforce"; then
652 enable_rcu="yes"
653else
654 AC_LANG_PUSH(C++)
5e3820e2 655 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
656 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
657 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
658 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
659 [AliAltroDecoder decoder;
660 decoder.CopyBackward(NULL, 0);])],
661 [enable_rcu=$enable_module],
662 [enable_module="no...requires.AliRoot>v4-10-Release"
663 enable_rcu="no...requires.AliRoot>v4-10-Release"])
664 CPPFLAGS=$save_CPPFLAGS
665 LDFLAGS=$save_LDFLAGS
666 LIBS=$save_LIBS
667 AC_LANG_POP(C++)
668fi
669
670if test "x$enable_rcu" = "xyes" ; then
671 AC_DEFINE(HLT_RCU)
adec4ad4 672else
673 enable_module=$enable_rcu
5e3820e2 674fi
675AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
d6e2c707 676AC_MSG_CHECKING([whether to compile RCU library])
5e3820e2 677AC_MSG_RESULT([$enable_module])
678AC_SUBST([ALIRCU_LIBS])
679
680dnl ------------------------------------------------------------------
c160eda8 681AH_TEMPLATE([HLT_PHOS],[hlt phos library])
f59fee6d 682
683ALIPHOS_LIBS=
684CHECK_HLTMODULE([phos],
685 [], [$ALIROOT_CPPFLAGS],
686 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
70979a80 687 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 688 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
689
c6b46c3f 690if test "x$enable_module" = "xmissheader"; then
691 enable_module="no...requires.AliRoot>v4-05-07"
50a3793d 692 enable_phos=$enable_module
c6b46c3f 693elif test "x$enable_module" = "xforce"; then
694 enable_phos="yes"
f59fee6d 695else
696 have_alicalorawstream=no
697 if test ! "x$have_aliroot" = "xno" ; then
698 AC_LANG_PUSH(C++)
699 save_CPPFLAGS="$CPPFLAGS"
700 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
701 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
56584e00 702 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
f59fee6d 703 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
704 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
705 #include <AliCaloRawStream.h>],
706 [int i])],
707 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
708 have_alicalorawstream=yes],
709 [])
ae1c1854 710 AC_MSG_RESULT([$have_aliphosrecoparam])
711 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
712 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
713 [AliPHOSRecoParam param;
714 param.GetEMCClusteringThreshold()])],
715 [have_aliphosrecoparam=yes],
716 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
f59fee6d 717 AC_MSG_RESULT([$have_alicalorawstream])
718 AC_LANG_POP(C++)
719 CPPFLAGS="$save_CPPFLAGS"
720 fi
721 if test "x$have_alicalorawstream" != "xyes"; then
722 enable_phos="no...requires.AliRoot>v4-05-07"
723 else
724 enable_phos=$enable_module
725 fi
726fi
2e742d30 727
c160eda8 728if test "x$enable_phos" = "xyes" ; then
729 AC_DEFINE(HLT_PHOS)
f59fee6d 730 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 731else
732 enable_module=$enable_phos
c160eda8 733fi
734AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
d6e2c707 735AC_MSG_CHECKING([whether to compile PHOS library])
c6b46c3f 736AC_MSG_RESULT([$enable_module])
f59fee6d 737AC_SUBST([ALIPHOS_LIBS])
c160eda8 738
c6b46c3f 739dnl ------------------------------------------------------------------
740AH_TEMPLATE([HLT_TRD],[hlt trd library])
741
f59fee6d 742ALITRD_LIBS=
743CHECK_HLTMODULE([trd],
744 [], [],
b3f74118 745 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
f59fee6d 746 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
747 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
748
c6b46c3f 749if test "x$enable_module" = "xmissheader"; then
750 enable_module="no...requires.AliRoot>v4-07-Release"
50a3793d 751 enable_trd=$enable_module
c6b46c3f 752elif test "x$enable_module" = "xforce"; then
753 enable_trd="yes"
f59fee6d 754else
755 enable_trd=$enable_module
756 if test "x$enable_trd" = "xyes" ; then
757 AC_LANG_PUSH(C++)
758 save_CPPFLAGS="$CPPFLAGS"
759 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
adec4ad4 760 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
761 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
0d66dbf5 762 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
ae5bf1dd 763 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
cef8ce36 764 # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
765 AC_MSG_CHECKING([for required functions in AliTRDCluster])
766 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDcluster.h>],
767 [AliTRDcluster c;
768 c.SetDetector(0)])],
f59fee6d 769 [],
cef8ce36 770 [enable_trd="no...requires.AliRoot>v4-16-Release"])
f59fee6d 771 AC_MSG_RESULT([$enable_trd])
772 AC_LANG_POP(C++)
773 CPPFLAGS="$save_CPPFLAGS"
774 fi
775fi
2e742d30 776
0f51f5b8 777if test "x$enable_trd" = "xyes" ; then
778 AC_DEFINE(HLT_TRD)
f59fee6d 779 ALITRD_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 780else
781 enable_module=$enable_trd
0f51f5b8 782fi
783AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
d6e2c707 784AC_MSG_CHECKING([whether to compile TRD library])
c6b46c3f 785AC_MSG_RESULT([$enable_module])
f59fee6d 786AC_SUBST([ALITRD_LIBS])
0f51f5b8 787
788dnl ------------------------------------------------------------------
629266d1 789AH_TEMPLATE([HLT_FMD],[hlt fmd library])
790
791ALIFMD_LIBS=$ALIHLTMODULE_LIBS
792CHECK_HLTMODULE([fmd],
793 [], [],
794 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
50a3793d 795 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
629266d1 796 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
797
798if test "x$enable_module" = "xmissheader"; then
50a3793d 799 enable_module="no...missing.headers"
800 enable_fmd=$enable_module
629266d1 801elif test "x$enable_module" = "xforce"; then
802 enable_fmd="yes"
803else
804 enable_fmd=$enable_module
629266d1 805fi
806
807if test "x$enable_fmd" = "xyes" ; then
808 AC_DEFINE(HLT_FMD)
809 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
810else
811 enable_module=$enable_fmd
812fi
813AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
814AC_MSG_CHECKING([whether to compile FMD library])
815AC_MSG_RESULT([$enable_module])
816AC_SUBST([ALIFMD_LIBS])
817
629266d1 818dnl ------------------------------------------------------------------
94cc9aab 819AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
2e742d30 820
f59fee6d 821ALIMUON_LIBS=
e89e6b23 822CHECK_HLTMODULE([dimuon],
41f99620 823 [AliMpExMap.h AliMUONTriggerIO.h],
824 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
b3f74118 825 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
826 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 827 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
828
829if test "x$enable_module" = "xmissheader"; then
a853a794 830 enable_module="no...requires.AliRoot>=v4-08-Release"
50a3793d 831 enable_muon=$enable_module
c6b46c3f 832elif test "x$enable_module" = "xforce"; then
833 enable_muon="yes"
f59fee6d 834else
835 enable_muon=$enable_module
836fi
837
838if test "x$enable_muon" = "xyes" ; then
94cc9aab 839 AC_DEFINE(HLT_MUON)
f59fee6d 840 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
6ed1b948 841 AC_LANG_PUSH(C++)
accd4c8f 842 save_CPPFLAGS="$CPPFLAGS"
843
6ed1b948 844 dnl
845 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
846 dnl
847 have_muon_digitmaker_getrawstream=no
848 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
849 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
850 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
851 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
852 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
853 [AliMUONDigitMaker dm;
854 dm.GetRawStreamTracker();])],
855 [have_muon_digitmaker_getrawstream=yes],
856 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
857 LIBS=$save_LIBS
858 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
accd4c8f 859 CPPFLAGS="$save_CPPFLAGS"
6ed1b948 860
861 AC_LANG_POP(C++)
adec4ad4 862else
863 enable_module=$enable_muon
94cc9aab 864fi
f59fee6d 865AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
d6e2c707 866AC_MSG_CHECKING([whether to compile MUON library])
c6b46c3f 867AC_MSG_RESULT([$enable_module])
f59fee6d 868AC_SUBST([ALIMUON_LIBS])
94cc9aab 869
870dnl ------------------------------------------------------------------
d6e2c707 871AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
872
873ALITRIGGER_LIBS=
874CHECK_HLTMODULE([trigger],
875 [], [$ALIROOT_CPPFLAGS],
876 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
877 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
878 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
879
880if test "x$enable_module" = "xmissheader"; then
881 enable_module="no...header.missing"
50a3793d 882 enable_trigger=$enable_module
d6e2c707 883elif test "x$enable_module" = "xforce"; then
884 enable_trigger="yes"
885else
886 enable_trigger=$enable_module
887fi
888
889if test "x$enable_trigger" = "xyes" ; then
890 AC_DEFINE(HLT_TRIGGER)
891 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 892else
893 enable_module=$enable_trigger
d6e2c707 894fi
895AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
896AC_MSG_CHECKING([whether to compile Trigger library])
897AC_MSG_RESULT([$enable_module])
898AC_SUBST([ALITRIGGER_LIBS])
899
900dnl ------------------------------------------------------------------
ec6160d5 901AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
902
903ALIGLOBAL_LIBS=
904CHECK_HLTMODULE([global],
905 [], [$ALIROOT_CPPFLAGS],
906 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
907 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
908 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
909
910if test "x$enable_module" = "xmissheader"; then
911 enable_module="no...header.missing"
912 enable_global=$enable_module
913elif test "x$enable_module" = "xforce"; then
914 enable_global="yes"
915else
916 enable_global=$enable_module
917 if test "x$enable_global" = "xyes" ; then
918 AC_LANG_PUSH(C++)
919 save_CPPFLAGS="$CPPFLAGS"
920 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
921 AC_MSG_CHECKING([for required functions in AliESDtrack])
922 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>],
923 [AliESDtrack t;
924 t.SetGlobalChi2(0)])],
925 [],
926 [enable_global="no...requires.AliRoot>v4-17-Release"])
927 AC_MSG_RESULT([$enable_global])
928 AC_LANG_POP(C++)
929 CPPFLAGS="$save_CPPFLAGS"
930 fi
931fi
932
933if test "x$enable_global" = "xyes" ; then
934 AC_DEFINE(HLT_GLOBAL)
935 ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
936else
937 enable_module=$enable_global
938fi
939AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
940AC_MSG_CHECKING([whether to compile Global library])
941AC_MSG_RESULT([$enable_module])
942AC_SUBST([ALIGLOBAL_LIBS])
943
944dnl ------------------------------------------------------------------
33daad3d 945AH_TEMPLATE([HLT_JET],[hlt jet library])
946
04cbe3ac 947ALIFASTJET_HEADER=
948ALIFASTJET_INCFLAGS=
949ALIFASTJET_LIBS=
950ALIFASTJET_LDFLAGS=
951AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
952 [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
953 [ test -n $FASTJET && with_fastjet=$FASTJET ])
954
955if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
956 ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
957 ALIFASTJET_HEADER="PseudoJet.hh"
958 ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
959 ALIFASTJET_LIBS="CGAL fastjet"
33daad3d 960else
04cbe3ac 961 with_fastjet=no
33daad3d 962fi
963
04cbe3ac 964CHECK_HLTMODULE([jet],
965 [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
966 [$ALIFASTJET_LIBS], [-L$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
967 [AOD ESD ANALYSIS ANALYSISalice JETAN JETANMC],
968 [-L$ROOTLIBDIR $ALIROOT_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
969 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
33daad3d 970
971if test "x$enable_module" = "xmissheader"; then
972 enable_module="no...header.missing"
973 enable_jet=$enable_module
974elif test "x$enable_module" = "xforce"; then
975 enable_jet="yes"
976else
977 enable_jet=$enable_module
978fi
979
04cbe3ac 980if test "x$enable_jet" = "xyes" ; then
33daad3d 981 AC_DEFINE(HLT_JET)
982 ALIJET_LIBS="$ALIHLTMODULE_LIBS"
04cbe3ac 983
984 if test "x$with_fastjet" != "xno"; then
985 AC_DEFINE(HAVE_FASTJET)
986 AC_DEFINE(WITHFASTJET)
987 ALIJET_LIBS="$ALIJET_LIBS -L$FASTJET_LDFLAGS"
988 fi
989 AC_MSG_CHECKING([compilation with FASTJET package])
990 AC_MSG_RESULT($with_fastjet)
991
33daad3d 992else
993 enable_module=$enable_jet
994fi
995
33daad3d 996AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
997AC_MSG_CHECKING([whether to compile Jet library])
998AC_MSG_RESULT([$enable_module])
999AC_SUBST([ALIJET_LIBS])
1000
1001dnl ------------------------------------------------------------------
d6e2c707 1002AH_TEMPLATE([HLT_ITS],[hlt its library])
1003
1004ALIITS_LIBS=
1005CHECK_HLTMODULE([its],
ae5bf1dd 1006 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
cad2d06c 1007 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1008 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
d6e2c707 1009 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1010
1011if test "x$enable_module" = "xmissheader"; then
1012 enable_module="no...header.missing"
50a3793d 1013 enable_its=$enable_module
d6e2c707 1014elif test "x$enable_module" = "xforce"; then
1015 enable_its="yes"
1016else
1017 enable_its=$enable_module
adec4ad4 1018 if test "x$enable_its" = "xyes" ; then
1019 AC_LANG_PUSH(C++)
1020 save_CPPFLAGS="$CPPFLAGS"
1021 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1022 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1023 # require AliVertexer::GetNominalPos()
1024 AC_MSG_CHECKING([for required functions in AliITSVertexer])
1025 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
1026 [AliITSVertexerZ v;
1027 v.GetNominalPos()])],
1028 [],
1029 [enable_its="no...requires.AliRoot>v4-13-Release"])
1030 AC_MSG_RESULT([$enable_its])
1031 AC_LANG_POP(C++)
1032 CPPFLAGS="$save_CPPFLAGS"
1033 fi
d6e2c707 1034fi
1035
1036if test "x$enable_its" = "xyes" ; then
1037 AC_DEFINE(HLT_ITS)
1038 ALIITS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 1039else
1040 enable_module=$enable_its
d6e2c707 1041fi
1042AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1043AC_MSG_CHECKING([whether to compile ITS library])
1044AC_MSG_RESULT([$enable_module])
1045AC_SUBST([ALIITS_LIBS])
1046
1047dnl ------------------------------------------------------------------
5dded172 1048AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
1049
1050ALIEMCAL_LIBS=
1051CHECK_HLTMODULE([emcal],
1052 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL],
accd4c8f 1053 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1054 [EMCALrec EMCALsim EMCALbase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
5dded172 1055 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1056
1057if test "x$enable_module" = "xmissheader"; then
1058 enable_module="no...header.missing"
1059 enable_emcal=$enable_module
1060elif test "x$enable_module" = "xforce"; then
1061 enable_emcal="yes"
1062else
1063 enable_emcal=$enable_module
1064fi
1065
1066if test "x$enable_emcal" = "xyes" ; then
1067 AC_DEFINE(HLT_EMCAL)
1068 ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
1069else
1070 enable_module=$enable_emcal
1071fi
1072AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
1073AC_MSG_CHECKING([whether to compile EMCAL library])
1074AC_MSG_RESULT([$enable_module])
1075AC_SUBST([ALIEMCAL_LIBS])
1076
1077dnl ------------------------------------------------------------------
e89e6b23 1078AH_TEMPLATE([HLT_COMP],[hlt comp library])
1079
1080ALICOMP_LIBS=
1081CHECK_HLTMODULE([comp],
1082 [], [$ALIROOT_CPPFLAGS],
1083 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1084 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1085 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1086
1087if test "x$enable_module" = "xmissheader"; then
c6b46c3f 1088 enable_module="no...header.missing"
50a3793d 1089 enable_comp=$enable_module
c6b46c3f 1090elif test "x$enable_module" = "xforce"; then
1091 enable_comp="yes"
e89e6b23 1092else
1093 enable_comp=$enable_module
1094fi
1095
1096if test "x$enable_comp" = "xyes" ; then
1097 AC_DEFINE(HLT_COMP)
1098 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 1099else
1100 enable_module=$enable_comp
e89e6b23 1101fi
1102AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1103AC_MSG_CHECKING([whether to compile comp library])
c6b46c3f 1104AC_MSG_RESULT([$enable_module])
e89e6b23 1105AC_SUBST([ALICOMP_LIBS])
1106
1107dnl ------------------------------------------------------------------
fc455fba 1108AC_MSG_CHECKING([whether to disable AliRoot logging])
1109AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1110AC_ARG_ENABLE(aliroot-logging,
1111 [AC_HELP_STRING([--disable-aliroot-logging],
1112 [disable logging through AliRoot logging methods])],
1113 [],[enable_aliroot_logging=no])
c018a1bd 1114if test "x$have_aliroot" = "xno" ; then
1115 enable_aliroot_logging=yes # this means 'disable'
1116fi
fc455fba 1117if test "x$enable_aliroot_logging" != "xno" ; then
1118 AC_DEFINE(NOALIROOT_LOGGING)
b521659f 1119fi
fc455fba 1120AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1121AC_MSG_RESULT([$enable_aliroot_logging])
b521659f 1122
1123dnl ------------------------------------------------------------------
1124AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1125AH_TEMPLATE([DOMC],[MC saving])
1126AC_ARG_ENABLE(mc-saving,
1127 [AC_HELP_STRING([--enable-mc-saving],
1128 [enable saving MC data through the chain])],
1129 [],[enable_mc_saving=no])
1130if test "x$enable_mc_saving" = "xyes" ; then
1131 AC_DEFINE(DOMC)
1132fi
1133AC_MSG_RESULT([$enable_mc_saving])
1134
1135dnl ------------------------------------------------------------------
b521659f 1136dnl certainly something old, but we keep the define
1137AC_MSG_CHECKING([whether to use ROWHOUGH])
1138AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1139AC_ARG_ENABLE(rowhough,
1140 [AC_HELP_STRING([--enable-rowhough],
1141 [use ROWHOUGH ])],
1142 [],[enable_rowhough=no])
1143if test "x$enable_rowhough" = "xyes" ; then
1144 AC_DEFINE(USEROWHOUGH)
1145fi
1146AC_MSG_RESULT([$enable_rowhough])
1147
1148dnl ------------------------------------------------------------------
53feaef5 1149dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1150dnl stand-alone build system. This is most likely something old we can
1151dnl get rid off later, or do something more reasonable. Since the define
1152dnl needs the quotes they have to be escaped. This works well for the
1153dnl Makefile but not for the configure script. So we have to add the
1154dnl defines after all the other checks.
1155CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1156if test ! "x$have_aliroot" = "xno" ; then
1157 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1158fi
1159
1160dnl ------------------------------------------------------------------
b521659f 1161dnl
1162dnl Documentation
1163dnl
1164AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1165AC_PATH_PROG(PERL, perl)
1166AC_PATH_PROG(DOXYGEN, doxygen)
5894eaa5 1167AC_ARG_ENABLE(dot,
1168 [AC_HELP_STRING([--enable-dot],
1169 [enable dot documentation generator])],
1170 [],[enable_dot=no])
b521659f 1171HAVE_DOT=NO
1172DOT_PATH=
1173AC_PATH_PROG(DOT, dot)
5894eaa5 1174if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
b521659f 1175 HAVE_DOT=YES
1176 DOT_PATH=`dirname $DOT`
1177fi
ae1c1854 1178
1179AC_MSG_CHECKING([for documentation mode])
1180AC_ARG_ENABLE(doc,
1181 [AC_HELP_STRING([--disable-doc],
1182 [disable documentation build; monolithic build --enable-doc=mono ])],
1183 [],[enable_doc=modules])
fb345ed7 1184
ae1c1854 1185if test "x$DOXYGEN" = "x" ; then
1186 enable_doc=no.doxygen
fb345ed7 1187elif test "x$enable_doc" = "xyes" ; then
1188 enable_doc=yes
ae1c1854 1189elif test ! "x$enable_doc" = "xmono" && \
1190 test ! "x$enable_doc" = "xmodules" && \
1191 test ! "x$enable_doc" = "xno"; then
1192 enable_doc=no
1193 AC_MSG_WARN([unknown option])
1194fi
1195if test "x$enable_doc" = "xno" ; then
1196 enable_doc=off
1197 DOXYGEN=
1198fi
1199
1200AC_MSG_RESULT([$enable_doc])
1201AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1202AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
b521659f 1203AC_SUBST([HAVE_DOT])
1204AC_SUBST([DOT_PATH])
1205
90ebac25 1206dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1207dnl echo $HAVE_SRC_SUBDIR
1208dnl if ! test -d $HAVE_SRC_SUBDIR; then
1209dnl HAVE_SRC_SUBDIR=
1210dnl fi
1211dnl AC_SUBST([HAVE_SRC_SUBDIR])
1212
b521659f 1213dnl ------------------------------------------------------------------
7233bc62 1214AC_MSG_NOTICE([---------------------------------------------- ])
1215AC_MSG_NOTICE([ build summary ])
1216AC_MSG_NOTICE([---------------------------------------------- ])
1217
b521659f 1218AC_CONFIG_FILES([Makefile
1219 BASE/Makefile
53feaef5 1220 BASE/setenv.sh
1221 BASE/setenv.csh
2be16a33 1222 BASE/HOMER/Makefile
242bb794 1223 BASE/util/Makefile
4b31e06b 1224 BASE/util/test/Makefile
d098ebd4 1225 BASE/interface/Makefile
853121af 1226 BASE/test/Makefile
1a21074a 1227 BASE/interface/test/Makefile
b521659f 1228 doc/Makefile
2efb85be 1229 doc/doxygen.conf
1230 doc/doxymodule.conf])
b521659f 1231
7233bc62 1232dnl AliRoot and installation directory for libraries
1233dnl
1234AC_MSG_NOTICE([AliRoot: $have_aliroot])
1235AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1236if test "x$have_aliroot" != "xno"; then
1237 AC_CONFIG_FILES([sim/Makefile
1238 rec/Makefile
652cf9d2 1239 rec/test/Makefile
436c2d0c 1240 rec/startAliEVE-barrel-tracks.sh
7233bc62 1241 shuttle/Makefile
ff4edcee 1242 pendolino/Makefile
ce5f90bf 1243 benchmark/Makefile
7233bc62 1244 ])
1245fi
1246if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1247libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1248AC_MSG_NOTICE([libdir set to $libdir])
1249fi
1250
1251AC_MSG_NOTICE([compile sample library: $enable_sample])
1252if test "x$enable_sample" = "xyes"; then
1253 AC_CONFIG_FILES([SampleLib/Makefile])
1254fi
1255
652cf9d2 1256AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1257if test "x$enable_rcu" = "xyes"; then
1258 AC_CONFIG_FILES([RCU/Makefile
1259 RCU/test/Makefile
1260 ])
1261fi
1262
7233bc62 1263AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1264if test "x$enable_tpc" = "xyes"; then
1265 AC_CONFIG_FILES([TPCLib/Makefile
1266 TPCLib/test/Makefile
1267 TPCLib/mapping2array.cxx
b658d7e4 1268 TPCLib/EVE/Makefile
7233bc62 1269 ])
1270fi
1271
7233bc62 1272AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1273if test "x$enable_phos" = "xyes"; then
1274 AC_CONFIG_FILES([PHOS/Makefile])
1275fi
1276
1277AC_MSG_NOTICE([compile TRD library: $enable_trd])
1278if test "x$enable_trd" = "xyes"; then
1279 AC_CONFIG_FILES([TRD/Makefile])
1280fi
1281
50a3793d 1282AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1283if test "x$enable_fmd" = "xyes"; then
1284 AC_CONFIG_FILES([FMD/Makefile])
1285fi
1286
7233bc62 1287AC_MSG_NOTICE([compile MUON library: $enable_muon])
1288if test "x$enable_muon" = "xyes"; then
1289 AC_CONFIG_FILES([MUON/Makefile])
1290fi
1291
1292AC_MSG_NOTICE([compile ITS library: $enable_its])
1293if test "x$enable_its" = "xyes"; then
1294 AC_CONFIG_FILES([ITS/Makefile])
1295fi
1296
5dded172 1297AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1298if test "x$enable_emcal" = "xyes"; then
1299 AC_CONFIG_FILES([EMCAL/Makefile])
1300fi
1301
7233bc62 1302AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1303if test "x$enable_trigger" = "xyes"; then
0a76630e 1304 AC_CONFIG_FILES([trigger/Makefile
1305 trigger/test/Makefile])
7233bc62 1306fi
1307
ec6160d5 1308AC_MSG_NOTICE([compile global library: $enable_global])
1309if test "x$enable_global" = "xyes"; then
1310 AC_CONFIG_FILES([global/Makefile])
1311fi
1312
33daad3d 1313AC_MSG_NOTICE([compile jet library: $enable_jet])
1314if test "x$enable_jet" = "xyes"; then
1315 AC_CONFIG_FILES([JET/Makefile])
1316fi
1317
7233bc62 1318AC_MSG_NOTICE([compile comp library: $enable_comp])
1319if test "x$enable_comp" = "xyes"; then
1320 AC_CONFIG_FILES([comp/Makefile])
1321fi
b521659f 1322
1323AC_OUTPUT
1324dnl
1325dnl EOF
1326dnl
1327