]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - HLT/configure.ac
Correct the baseline subtraction in clusterizer
[u/mrichter/AliRoot.git] / HLT / configure.ac
... / ...
CommitLineData
1dnl -*- mode: autoconf -*-
2dnl
3dnl $Id$
4dnl template for the configuration script for the Alice HLT
5dnl framework and components
6dnl
7dnl ------------------------------------------------------------------
8
9dnl Take either the AliRoot tag as version id or the current revision
10AC_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 \
16 cat .revision; \
17 else \
18 echo -n invalid-version; \
19 fi]),
20 [Matthias.Richter@ift.uib.no],
21 [alice-hlt])
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([-Wno-portability])
36AC_PROG_CC
37AC_PROG_CXX
38AC_PROG_LIBTOOL
39
40AC_DEBUG
41AC_OPTIMIZATION
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])
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" )
56AC_SUBST([ROOTSYS])
57ROOTBINDIR=`dirname $ROOTEXEC`
58AC_SUBST([ROOTBINDIR])
59
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
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
76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
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'
79 for CHECKLIB in $ROOT_CHECKLIBS ; do
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
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)
87 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
88
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)
91 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
92
93 CPPFLAGS=$save_CPPFLAGS
94 LDFLAGS=$save_LDFLAGS
95 LIBS=$save_LIBS
96 AC_LANG_POP(C++)
97fi
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)
108CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
109save_CPPFLAGS=$CPPFLAGS
110save_LDFLAGS=$LDFLAGS
111save_LIBS=$LIBS
112
113dnl ------------------------------------------------------------------
114dnl check for AliRoot features
115AC_LANG_PUSH(C++)
116have_aliroot=no
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
147 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
148 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
149 ALIROOTINCDIR=${ALICE_ROOT}/include
150 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
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])
153fi
154
155AC_MSG_CHECKING([for AliRoot])
156if test "x$ALICE_ROOT" != "x" \
157 && test -d ${ALIROOTBINDIR} \
158 && test -d ${ALIROOTLIBDIR} \
159 && test -d ${ALIROOTINCDIR}; then
160 have_aliroot=$ALICE_ROOT
161else
162 ALIROOTBINDIR=
163 ALIROOTLIBDIR=
164 ALIROOTINCDIR=
165fi
166AC_MSG_RESULT([$have_aliroot])
167
168if test ! "x$have_aliroot" = "xno" ; then
169 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
170 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
171 ALIROOT_LIBS="$ADD_ROOTLIBS"
172 save_CPPFLAGS=$CPPFLAGS
173 save_LDFLAGS=$LDFLAGS
174 save_LIBS=$LIBS
175 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
176 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
177
178 # check for certain AliRoot libraries/files/features
179 # libSTEERBase present since Aug 7 2007
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"
185 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
186 CHECKLIB=STEERBase
187 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
188
189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
190 CHECKLIB=AOD
191 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
192
193 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
194 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
195 CHECKLIB=CDB
196 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
197
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"
204 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER"
205 CHECKLIB=RAWDatarec
206 AC_CHECK_LIB([$CHECKLIB],[_init],
207 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
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);])],
220 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
221 have_alirawdata=$CHECKLIB],
222 [have_alirawdata=no])
223 ]) dnl AC_CHECK_LIB RAWDatabase
224 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
225 AC_MSG_RESULT([$have_alirawdata])
226
227 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
228 CHECKLIB=ESD
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
265 dnl
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");
276 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
277 a->SetName("SomeObject");
278 esd.AddObject(a);
279 esd.WriteToTree(tree);
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
288 dnl ESD copy function added May 9 2008 rev 25667
289 dnl
290 if test "x$have_esd_nonstd" != "xyes"; then
291 have_esd_copy=no
292 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
293 [AliESDEvent esd1;
294 AliESDEvent esd2;
295 esd2=esd1;])],
296 [have_esd_copy=yes],
297 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
298 AC_MSG_CHECKING(for ESD assignment operator)
299 AC_MSG_RESULT([$have_esd_copy])
300 fi
301
302 dnl
303 dnl AliRawReaderMemory support for multiple buffers added
304 dnl revision 26829 Jun 2008
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)])
313 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
314 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
315
316 dnl
317 dnl Changes in the magnetic field implementation
318 dnl revision 30848 Feb 1 2009
319 dnl
320 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
321 have_alimagf30848=no
322 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMagF.h>],
323 [int test=AliMagF::k5kG;])],
324 [have_alimagf30848=yes],
325 [AC_DEFINE(HAVE_NOT_ALIMAGF30848)])
326 AC_MSG_CHECKING(AliMagF contains field definitions)
327 AC_MSG_RESULT([$have_alimagf30848])
328
329 dnl
330 dnl Cleanup of the RunLoader implementation
331 dnl revision 30859 Feb 2 2009
332 dnl
333 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER"
334 have_alirunloader30859=no
335 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRunLoader.h>],
336 [AliRunLoader* rl=AliRunLoader::Instance();])],
337 [have_alirunloader30859=yes],
338 [AC_DEFINE(HAVE_NOT_ALIRUNLOADER30859)])
339 AC_MSG_CHECKING(AliRunLoader::Instance)
340 AC_MSG_RESULT([$have_alirunloader30859])
341
342 have_aliqav1=no
343 AC_CHECK_HEADER([AliQAv1.h], [have_aliqav1=yes], [])
344 AM_CONDITIONAL(EN_HLT_QA, test x$have_aliqav1 = xyes)
345
346 dnl
347 dnl required header files and libraries for modules
348 dnl
349
350 dnl
351 dnl Check for the interface of AliExternalTrackParam which has been changed
352 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
353 dnl or higher)
354 externaltrackparam_version=1
355 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
356 [AliExternalTrackParam trackparam;
357 Double_t param[[5]]; Double_t covar[[15]];
358 trackparam.Set(0., 0., param, covar);])],
359 [externaltrackparam_version=2],
360 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
361 AC_MSG_CHECKING(for version of AliExternalTrackParam)
362 AC_MSG_RESULT($externaltrackparam_version)
363
364 dnl The AliShuttleInterface was changed in rev 29388. Some return types
365 dnl had been const, now changed according to gcc 4.3 warnings
366 AC_MSG_CHECKING(for version of AliShuttleInterface.h)
367 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
368 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
369 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
370 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
371 [class dummy : public AliShuttleInterface {
372 public:
373 const UInt_t GetStartTimeDCSQuery() {;}
374 };])],
375 [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
376 alishuttleinterface_version=pre.rev.29388],
377 [alishuttleinterface_version=up.to.date])
378 AC_MSG_RESULT([$alishuttleinterface_version])
379
380 CPPFLAGS=$save_CPPFLAGS
381 LDFLAGS=$save_LDFLAGS
382 LIBS=$save_LIBS
383fi # if test ! "x$have_aliroot" = "xno"
384
385AC_LANG_POP(C++)
386AC_SUBST([ALICE_ROOT])
387AC_SUBST([ALIROOT_CPPFLAGS])
388AC_SUBST([ALIROOT_LDFLAGS])
389AC_SUBST([ALIROOTBINDIR])
390AC_SUBST([ALIROOTLIBDIR])
391AC_SUBST([ALIROOT_LIBS])
392AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
393
394HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
395HLTBASE_LDFLAGS=
396AC_SUBST([HLTBASE_CPPFLAGS])
397AC_SUBST([HLTBASE_LDFLAGS])
398
399dnl ------------------------------------------------------------------
400dnl check for the HLT PubSub Framework
401dnl namely for the existence of the HOMER library
402dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
403dnl package. It os though possible to choose an external. library
404dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
405dnl got the name libAliHLTHOMER
406AC_MSG_CHECKING([for HLT PubSub Framework])
407AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
408 [],
409 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
410if test -z $with_pubsub || ! test -d $with_pubsub ; then
411 with_pubsub=no
412fi
413AC_MSG_RESULT([$with_pubsub])
414HOMER_VERSION=2
415HOMER_LIBS=
416
417AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
418if test "x$with_pubsub" != "xno" ; then
419 save_CPPFLAGS=$CPPFLAGS
420 save_LDFLAGS=$LDFLAGS
421 save_LIBS=$LIBS
422 # currently the different versions of the HLT PubSub framework have a different
423 # directory layout
424 if test -d ${with_pubsub}/include/HOMER ; then
425 # the 'early' location of the include files with separated HOMER sub dirs
426 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
427 elif test -d ${with_pubsub}/include/Util/HOMER ; then
428 # location for HLT Framework versions after Sep 2006
429 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
430 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
431 # fall back if include files were not installed (versions after Sep 06)
432 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
433 else
434 # fall back if include files were not installed (versions before Sep 06)
435 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
436 fi
437 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
438
439 AC_ARG_ENABLE(pubsub-debug,
440 [AC_HELP_STRING([--disable-pubsub-debug],
441 [force the production version of the PubSub framework])],
442 [],[enable_pubsub_debug=yes])
443 homer_type="none"
444 HOMER_TARGET="`uname -s`-`uname -m`"
445 AC_MSG_CHECKING([for HLT PubSub Framework release type])
446 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
447 homer_type="production"
448 HOMER_TARGET="${HOMER_TARGET}-release"
449 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
450 homer_type="debug"
451 HOMER_TARGET="${HOMER_TARGET}-debug"
452 fi
453 AC_MSG_RESULT([${homer_type}])
454 HOMERREADER_HEADER=HOMERReader.h
455 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
456 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
457 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
458 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
459 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
460 LIBS="$save_LIBS "
461 with_homer=no
462 AC_LANG_PUSH(C++)
463 AC_CHECK_HEADER([$HOMERREADER_HEADER],
464 [ AC_CHECK_LIB([HOMER],[_init],
465 [with_homer=yes
466 HOMER_LIBS="-lHOMER"],
467 [ AC_CHECK_LIB([HOMERReader],[_init],
468 [with_homer=yes
469 HOMER_LIBS="-lHOMERReader"])])
470 LIBS="$LIBS $HOMER_LIBS"
471 AC_MSG_CHECKING([version of HOMER library])
472 dnl The Homer library has no versioning, so we do our own
473 dnl version description
474 dnl ----------------------------------------------------------------------
475 dnl 1 inintial version
476 dnl 2 GetBlockStatusFlags added to the interface
477 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
478 [HOMERReader reader("dummy", 0);
479 reader.GetBlockStatusFlags(0);])],
480 [],
481 [HOMER_VERSION=1])
482 AC_MSG_RESULT([$HOMER_VERSION])
483 ],
484 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
485 AC_LANG_POP(C++)
486 HOMER_INBUILT_LIB=
487else
488dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
489 topdir=`dirname $0`
490 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
491 HOMERREADER_HEADER=AliHLTHOMERReader.h
492 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
493 HOMER_BINDIR=
494 HOMER_LIBDIR=
495 HOMER_LDFLAGS=
496fi
497
498 if test "x$with_homer" = "xno" ; then
499 HOMER_CPPFLAGS=
500 HOMER_LDFLAGS=
501 HOMER_LIBS=
502 else
503 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
504 AC_DEFINE(HAVE_HOMERREADER)
505 fi
506 CPPFLAGS="$save_CPPFLAGS"
507 LDFLAGS="$save_LDFLAGS"
508 LIBS="$save_LIBS"
509
510AC_SUBST([HOMERREADER_HEADER])
511AC_SUBST([HOMER_INBUILT_LIB])
512AC_SUBST([HOMER_CPPFLAGS])
513AC_SUBST([HOMER_LDFLAGS])
514AC_SUBST([HOMER_LIBDIR])
515AC_SUBST([HOMER_BINDIR])
516AC_SUBST([HOMER_LIBS])
517
518dnl ------------------------------------------------------------------
519AC_ARG_ENABLE(all,
520 [AC_HELP_STRING([--disable-all],
521 [disable all detector modules, individual modules can be switched on by --enable-det])],
522 [disable_all=yes],[])
523
524dnl ------------------------------------------------------------------
525AC_MSG_CHECKING([whether to impose strict coding conventions])
526AC_ARG_ENABLE(strict,
527 [AC_HELP_STRING([--disable-strict],
528 [disable coding convention checks ])],
529 [],[enable_strict=yes])
530if test "x$enable_strict" = "xyes" ; then
531 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
532fi
533AC_MSG_RESULT([$enable_strict])
534
535dnl ------------------------------------------------------------------
536AC_MSG_CHECKING([whether to enable component statistics])
537AC_ARG_ENABLE(component-stat,
538 [AC_HELP_STRING([--enable-component-stat],
539 [enable component statistics ])],
540 [],[enable_component_stat=no])
541if test "x$enable_component_stat" = "xyes" ; then
542 AC_DEFINE(HLT_COMPONENT_STATISTICS)
543fi
544AC_MSG_RESULT([$enable_component_stat])
545
546dnl ------------------------------------------------------------------
547dnl ---- module checks
548dnl ------------------------------------------------------------------
549save_CPPFLAGS=$CPPFLAGS
550save_LDFLAGS=$LDFLAGS
551save_LIBS=$LIBS
552
553dnl ------------------------------------------------------------------
554AC_MSG_NOTICE([-------------------------------------------------])
555AC_MSG_NOTICE([checking dependencies for HLTbase library])
556HLTBASE_CHECKLIBS='XMLParser'
557for CHECKLIB in $HLTBASE_CHECKLIBS ; do
558 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
559 LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS"
560 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"])
561done
562AC_SUBST([ALIHLTBASE_LIBS])
563
564dnl ------------------------------------------------------------------
565AC_MSG_CHECKING([whether to compile sample library])
566AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
567AC_ARG_ENABLE(sample,
568 [AC_HELP_STRING([--disable-sample],
569 [compile the sample library ])],
570 [],
571 [if test "x$have_aliroot" = "xno" ; then
572 enable_sample="no...requires.AliRoot"
573 else
574 enable_sample=yes
575 fi
576 ])
577
578if test "x$enable_sample" = "xyes" ; then
579 AC_DEFINE(HLT_SAMPLE)
580fi
581AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
582AC_MSG_RESULT([$enable_sample])
583
584dnl ------------------------------------------------------------------
585AH_TEMPLATE([HLT_UTIL],[HLT utility library])
586ALIUTIL_LIBS=
587CHECK_HLTMODULE([util],
588 [],
589 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6],
590 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
591 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
592 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
593
594if test "x$enable_module" = "xmissheader"; then
595 enable_module="no...missing.headers"
596 enable_util=$enable_module
597elif test "x$enable_module" = "xforce"; then
598 enable_util="yes"
599else
600 enable_util=$enable_module
601fi
602if test "x$enable_util" = "xyes" ; then
603 AC_DEFINE(HLT_UTIL)
604 ALIUTIL_LIBS=$ALIHLTMODULE_LIBS
605fi
606AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
607AC_MSG_CHECKING([whether to compile Util library])
608AC_MSG_RESULT([$enable_module])
609AC_SUBST([ALIUTIL_LIBS])
610
611dnl ------------------------------------------------------------------
612AH_TEMPLATE([HLT_TPC],[hlt tpc library])
613
614ALITPC_LIBS=
615CHECK_HLTMODULE([tpc],
616 [AliTPCRawStream.h],
617 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
618 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
619 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
620 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
621
622if test "x$enable_module" = "xmissheader"; then
623 enable_module="no...missing.headers"
624 enable_tpc=$enable_module
625elif test "x$enable_module" = "xforce"; then
626 enable_tpc="yes"
627else
628 enable_tpc=$enable_module
629fi
630
631if test "x$enable_tpc" = "xyes" ; then
632 AC_LANG_PUSH(C++)
633 AC_DEFINE(HLT_TPC)
634 ALITPC_LIBS=$ALIHLTMODULE_LIBS
635 dnl
636 dnl Check for functionality in the TPC reconstruction required for online
637 dnl processing
638 dnl
639 have_tpc_hltoffline_rec=no
640 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
641 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
642 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
643 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
644 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
645 #include <AliTPCclustererMI.h>
646 #include <TObjArray.h>],
647 [AliTPCtrackerMI tracker;
648 TObjArray* array=NULL;
649 tracker.LoadClusters(array);
650 AliTPCclustererMI cl(NULL, NULL);
651 cl.GetOutputClonesArray();])],
652 [have_tpc_hltoffline_rec=yes],
653 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
654 LIBS=$save_LIBS
655 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
656
657 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
658 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
659 AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)])
660
661 have_tpc_mapping=no
662 if test ! "x$have_aliroot" = "xno" ; then
663 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
664 # which is stored in the TPC/mapping/Patchx.data files from
665 # AliRoot version v4-04-Release (May 2006)
666 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
667 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
668 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
669 [have_tpc_mapping=yes
670 AC_SUBST(TPC_PAD_MAPPING_PATH)
671 AC_DEFINE(HAVE_TPC_MAPPING)],
672 [])
673
674 fi
675 AC_MSG_CHECKING([for TPC mapping layout])
676 AC_MSG_RESULT([$have_tpc_mapping])
677 AC_LANG_POP(C++)
678
679else
680 enable_module=$enable_tpc
681fi
682AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
683AC_MSG_CHECKING([whether to compile TPC library])
684AC_MSG_RESULT([$enable_module])
685AC_SUBST([ALITPC_LIBS])
686
687dnl ------------------------------------------------------------------
688AH_TEMPLATE([HLT_RCU],[hlt rcu library])
689
690CHECK_HLTMODULE([rcu],
691 [AliAltroDecoder.h],
692 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
693 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
694 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
695 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
696
697if test "x$enable_module" = "xmissheader"; then
698 enable_module="no...missing.headers"
699 enable_rcu=$enable_module
700elif test "x$enable_module" = "xforce"; then
701 enable_rcu="yes"
702else
703 AC_LANG_PUSH(C++)
704 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
705 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
706 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
707 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
708 [AliAltroDecoder decoder;
709 decoder.CopyBackward(NULL, 0);])],
710 [enable_rcu=$enable_module],
711 [enable_module="no...requires.AliRoot>v4-10-Release"
712 enable_rcu="no...requires.AliRoot>v4-10-Release"])
713 CPPFLAGS=$save_CPPFLAGS
714 LDFLAGS=$save_LDFLAGS
715 LIBS=$save_LIBS
716 AC_LANG_POP(C++)
717fi
718
719if test "x$enable_rcu" = "xyes" ; then
720 AC_DEFINE(HLT_RCU)
721else
722 enable_module=$enable_rcu
723fi
724AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
725AC_MSG_CHECKING([whether to compile RCU library])
726AC_MSG_RESULT([$enable_module])
727AC_SUBST([ALIRCU_LIBS])
728
729dnl ------------------------------------------------------------------
730AH_TEMPLATE([HLT_PHOS],[hlt phos library])
731
732ALIPHOS_LIBS=
733CHECK_HLTMODULE([phos],
734 [], [$ALIROOT_CPPFLAGS],
735 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
736 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
737 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
738
739if test "x$enable_module" = "xmissheader"; then
740 enable_module="no...requires.AliRoot>v4-05-07"
741 enable_phos=$enable_module
742elif test "x$enable_module" = "xforce"; then
743 enable_phos="yes"
744else
745 have_alicalorawstream=no
746 if test ! "x$have_aliroot" = "xno" ; then
747 AC_LANG_PUSH(C++)
748 save_CPPFLAGS="$CPPFLAGS"
749 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
750 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
751 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
752 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
753 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
754 #include <AliCaloRawStream.h>],
755 [int i])],
756 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
757 have_alicalorawstream=yes],
758 [])
759 AC_MSG_RESULT([$have_aliphosrecoparam])
760 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
761 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
762 [AliPHOSRecoParam param;
763 param.GetEMCClusteringThreshold()])],
764 [have_aliphosrecoparam=yes],
765 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
766 AC_MSG_RESULT([$have_alicalorawstream])
767 AC_LANG_POP(C++)
768 CPPFLAGS="$save_CPPFLAGS"
769 fi
770 if test "x$have_alicalorawstream" != "xyes"; then
771 enable_phos="no...requires.AliRoot>v4-05-07"
772 else
773 enable_phos=$enable_module
774 fi
775fi
776
777if test "x$enable_phos" = "xyes" ; then
778 AC_DEFINE(HLT_PHOS)
779 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
780else
781 enable_module=$enable_phos
782fi
783AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
784AC_MSG_CHECKING([whether to compile PHOS library])
785AC_MSG_RESULT([$enable_module])
786AC_SUBST([ALIPHOS_LIBS])
787
788dnl ------------------------------------------------------------------
789AH_TEMPLATE([HLT_TRD],[hlt trd library])
790
791ALITRD_LIBS=
792CHECK_HLTMODULE([trd],
793 [], [],
794 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
795 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
796 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
797
798if test "x$enable_module" = "xmissheader"; then
799 enable_module="no...requires.AliRoot>v4-07-Release"
800 enable_trd=$enable_module
801elif test "x$enable_module" = "xforce"; then
802 enable_trd="yes"
803else
804 enable_trd=$enable_module
805 if test "x$enable_trd" = "xyes" ; then
806 AC_LANG_PUSH(C++)
807 save_CPPFLAGS="$CPPFLAGS"
808 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
809 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
810 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
811 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
812 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
813 # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
814 # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009
815 AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
816 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
817 [AliTRDclusterizer c;
818 c.GetAddedClusters()])],
819 [],
820 [enable_trd="no...requires.AliRoot>v4-16-Release"])
821 AC_MSG_RESULT([$enable_trd])
822 AC_LANG_POP(C++)
823 CPPFLAGS="$save_CPPFLAGS"
824 fi
825fi
826
827if test "x$enable_trd" = "xyes" ; then
828 AC_DEFINE(HLT_TRD)
829 ALITRD_LIBS=$ALIHLTMODULE_LIBS
830else
831 enable_module=$enable_trd
832fi
833AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
834AC_MSG_CHECKING([whether to compile TRD library])
835AC_MSG_RESULT([$enable_module])
836AC_SUBST([ALITRD_LIBS])
837
838dnl ------------------------------------------------------------------
839AH_TEMPLATE([HLT_FMD],[hlt fmd library])
840
841ALIFMD_LIBS=$ALIHLTMODULE_LIBS
842CHECK_HLTMODULE([fmd],
843 [], [],
844 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
845 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
846 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
847
848if test "x$enable_module" = "xmissheader"; then
849 enable_module="no...missing.headers"
850 enable_fmd=$enable_module
851elif test "x$enable_module" = "xforce"; then
852 enable_fmd="yes"
853else
854 enable_fmd=$enable_module
855fi
856
857if test "x$enable_fmd" = "xyes" ; then
858 AC_DEFINE(HLT_FMD)
859 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
860else
861 enable_module=$enable_fmd
862fi
863AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
864AC_MSG_CHECKING([whether to compile FMD library])
865AC_MSG_RESULT([$enable_module])
866AC_SUBST([ALIFMD_LIBS])
867
868dnl ------------------------------------------------------------------
869AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
870
871ALIMUON_LIBS=
872CHECK_HLTMODULE([dimuon],
873 [AliMpExMap.h AliMUONTriggerIO.h],
874 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
875 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
876 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
877 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
878
879if test "x$enable_module" = "xmissheader"; then
880 enable_module="no...requires.AliRoot>=v4-08-Release"
881 enable_muon=$enable_module
882elif test "x$enable_module" = "xforce"; then
883 enable_muon="yes"
884else
885 enable_muon=$enable_module
886fi
887
888if test "x$enable_muon" = "xyes" ; then
889 AC_DEFINE(HLT_MUON)
890 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
891 AC_LANG_PUSH(C++)
892 save_CPPFLAGS="$CPPFLAGS"
893
894 dnl
895 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
896 dnl
897 have_muon_digitmaker_getrawstream=no
898 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
899 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
900 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
901 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
902 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
903 [AliMUONDigitMaker dm;
904 dm.GetRawStreamTracker();])],
905 [have_muon_digitmaker_getrawstream=yes],
906 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
907 LIBS=$save_LIBS
908 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
909
910 dnl
911 dnl Check for AliMpPad::GetPositionX/Y
912 dnl change of implementation in MUON code
913 dnl revision 31769, Wed Apr 1 2009
914 dnl
915 have_muon_alimppad_getposition=no
916 AC_MSG_CHECKING(for GetPosition methods of AliMpPad)
917 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping"
918 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
919 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
920 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMpPad.h>],
921 [AliMpPad pad;
922 pad.GetPositionX();])],
923 [have_muon_alimppad_getposition=yes],
924 [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)])
925 LIBS=$save_LIBS
926 AC_MSG_RESULT([$have_muon_alimppad_getposition])
927
928 CPPFLAGS="$save_CPPFLAGS"
929
930 AC_LANG_POP(C++)
931else
932 enable_module=$enable_muon
933fi
934AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
935AC_MSG_CHECKING([whether to compile MUON library])
936AC_MSG_RESULT([$enable_module])
937AC_SUBST([ALIMUON_LIBS])
938
939dnl ------------------------------------------------------------------
940AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
941
942ALITRIGGER_LIBS=
943CHECK_HLTMODULE([trigger],
944 [], [$ALIROOT_CPPFLAGS],
945 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
946 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
947 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
948
949if test "x$enable_module" = "xmissheader"; then
950 enable_module="no...header.missing"
951 enable_trigger=$enable_module
952elif test "x$enable_module" = "xforce"; then
953 enable_trigger="yes"
954else
955 enable_trigger=$enable_module
956fi
957
958if test "x$enable_trigger" = "xyes" ; then
959 AC_DEFINE(HLT_TRIGGER)
960 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
961else
962 enable_module=$enable_trigger
963fi
964AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
965AC_MSG_CHECKING([whether to compile Trigger library])
966AC_MSG_RESULT([$enable_module])
967AC_SUBST([ALITRIGGER_LIBS])
968
969dnl ------------------------------------------------------------------
970AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
971
972ALIGLOBAL_LIBS=
973CHECK_HLTMODULE([global],
974 [], [$ALIROOT_CPPFLAGS],
975 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
976 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
977 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
978
979if test "x$enable_module" = "xmissheader"; then
980 enable_module="no...header.missing"
981 enable_global=$enable_module
982elif test "x$enable_module" = "xforce"; then
983 enable_global="yes"
984else
985 enable_global=$enable_module
986 if test "x$enable_global" = "xyes" ; then
987 AC_LANG_PUSH(C++)
988 save_CPPFLAGS="$CPPFLAGS"
989 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
990 AC_MSG_CHECKING([for required functions in AliESDtrack])
991 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>],
992 [AliESDtrack t;
993 t.SetGlobalChi2(0)])],
994 [],
995 [enable_global="no...requires.AliRoot>v4-17-Release"])
996 AC_MSG_RESULT([$enable_global])
997 AC_LANG_POP(C++)
998 CPPFLAGS="$save_CPPFLAGS"
999 fi
1000fi
1001
1002if test "x$enable_global" = "xyes" ; then
1003 AC_DEFINE(HLT_GLOBAL)
1004 ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
1005else
1006 enable_module=$enable_global
1007fi
1008AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
1009AC_MSG_CHECKING([whether to compile Global library])
1010AC_MSG_RESULT([$enable_module])
1011AC_SUBST([ALIGLOBAL_LIBS])
1012
1013dnl ------------------------------------------------------------------
1014AH_TEMPLATE([HLT_JET],[hlt jet library])
1015
1016ALIFASTJET_HEADER=
1017ALIFASTJET_INCFLAGS=
1018ALIFASTJET_LIBS=
1019ALIFASTJET_LDFLAGS=
1020AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
1021 [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
1022 [ test -n $FASTJET && with_fastjet=$FASTJET ])
1023
1024if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
1025 ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
1026 ALIFASTJET_HEADER="PseudoJet.hh"
1027 ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
1028 ALIFASTJET_LIBS="CGAL fastjet"
1029else
1030 with_fastjet=no
1031fi
1032
1033CHECK_HLTMODULE([jet],
1034 [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
1035 [$ALIFASTJET_LIBS], [-L$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
1036 [AOD ESD ANALYSIS ANALYSISalice JETAN JETANMC],
1037 [-L$ROOTLIBDIR $ALIROOT_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
1038 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1039
1040if test "x$enable_module" = "xmissheader"; then
1041 enable_module="no...header.missing"
1042 enable_jet=$enable_module
1043elif test "x$enable_module" = "xforce"; then
1044 enable_jet="yes"
1045else
1046 enable_jet=$enable_module
1047fi
1048
1049if test "x$enable_jet" = "xyes" ; then
1050 AC_DEFINE(HLT_JET)
1051 ALIJET_LIBS="$ALIHLTMODULE_LIBS"
1052
1053 if test "x$with_fastjet" != "xno"; then
1054 AC_DEFINE(HAVE_FASTJET)
1055 AC_DEFINE(WITHFASTJET)
1056 ALIJET_LIBS="$ALIJET_LIBS -L$FASTJET_LDFLAGS"
1057 fi
1058 AC_MSG_CHECKING([compilation with FASTJET package])
1059 AC_MSG_RESULT($with_fastjet)
1060
1061else
1062 enable_module=$enable_jet
1063fi
1064
1065AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
1066AC_MSG_CHECKING([whether to compile Jet library])
1067AC_MSG_RESULT([$enable_module])
1068AC_SUBST([ALIJET_LIBS])
1069
1070dnl ------------------------------------------------------------------
1071AH_TEMPLATE([HLT_ITS],[hlt its library])
1072
1073ALIITS_LIBS=
1074CHECK_HLTMODULE([its],
1075 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
1076 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1077 [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1078 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1079
1080if test "x$enable_module" = "xmissheader"; then
1081 enable_module="no...header.missing"
1082 enable_its=$enable_module
1083elif test "x$enable_module" = "xforce"; then
1084 enable_its="yes"
1085else
1086 enable_its=$enable_module
1087 if test "x$enable_its" = "xyes" ; then
1088 AC_LANG_PUSH(C++)
1089 save_CPPFLAGS="$CPPFLAGS"
1090 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1091 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1092 # require AliVertexer::GetNominalPos()
1093 AC_MSG_CHECKING([for required functions in AliITSVertexer])
1094 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
1095 [AliITSVertexerZ v;
1096 v.GetNominalPos()])],
1097 [],
1098 [enable_its="no...requires.AliRoot>v4-13-Release"])
1099 AC_MSG_RESULT([$enable_its])
1100 AC_LANG_POP(C++)
1101 CPPFLAGS="$save_CPPFLAGS"
1102 fi
1103fi
1104
1105if test "x$enable_its" = "xyes" ; then
1106 AC_DEFINE(HLT_ITS)
1107 ALIITS_LIBS=$ALIHLTMODULE_LIBS
1108else
1109 enable_module=$enable_its
1110fi
1111AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1112AC_MSG_CHECKING([whether to compile ITS library])
1113AC_MSG_RESULT([$enable_module])
1114AC_SUBST([ALIITS_LIBS])
1115
1116dnl ------------------------------------------------------------------
1117AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
1118
1119ALIEMCAL_LIBS=
1120CHECK_HLTMODULE([emcal],
1121 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL],
1122 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1123 [EMCALrec EMCALsim EMCALbase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1124 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1125
1126if test "x$enable_module" = "xmissheader"; then
1127 enable_module="no...header.missing"
1128 enable_emcal=$enable_module
1129elif test "x$enable_module" = "xforce"; then
1130 enable_emcal="yes"
1131else
1132 enable_emcal=$enable_module
1133fi
1134
1135if test "x$enable_emcal" = "xyes" ; then
1136 AC_DEFINE(HLT_EMCAL)
1137 ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
1138else
1139 enable_module=$enable_emcal
1140fi
1141AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
1142AC_MSG_CHECKING([whether to compile EMCAL library])
1143AC_MSG_RESULT([$enable_module])
1144AC_SUBST([ALIEMCAL_LIBS])
1145
1146dnl ------------------------------------------------------------------
1147AH_TEMPLATE([HLT_COMP],[hlt comp library])
1148
1149ALICOMP_LIBS=
1150CHECK_HLTMODULE([comp],
1151 [], [$ALIROOT_CPPFLAGS],
1152 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1153 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1154 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1155
1156if test "x$enable_module" = "xmissheader"; then
1157 enable_module="no...header.missing"
1158 enable_comp=$enable_module
1159elif test "x$enable_module" = "xforce"; then
1160 enable_comp="yes"
1161else
1162 enable_comp=$enable_module
1163fi
1164
1165if test "x$enable_comp" = "xyes" ; then
1166 AC_DEFINE(HLT_COMP)
1167 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
1168else
1169 enable_module=$enable_comp
1170fi
1171AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1172AC_MSG_CHECKING([whether to compile comp library])
1173AC_MSG_RESULT([$enable_module])
1174AC_SUBST([ALICOMP_LIBS])
1175
1176dnl ------------------------------------------------------------------
1177AC_MSG_CHECKING([whether to disable AliRoot logging])
1178AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1179AC_ARG_ENABLE(aliroot-logging,
1180 [AC_HELP_STRING([--disable-aliroot-logging],
1181 [disable logging through AliRoot logging methods])],
1182 [],[enable_aliroot_logging=no])
1183if test "x$have_aliroot" = "xno" ; then
1184 enable_aliroot_logging=yes # this means 'disable'
1185fi
1186if test "x$enable_aliroot_logging" != "xno" ; then
1187 AC_DEFINE(NOALIROOT_LOGGING)
1188fi
1189AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1190AC_MSG_RESULT([$enable_aliroot_logging])
1191
1192dnl ------------------------------------------------------------------
1193AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1194AH_TEMPLATE([DOMC],[MC saving])
1195AC_ARG_ENABLE(mc-saving,
1196 [AC_HELP_STRING([--enable-mc-saving],
1197 [enable saving MC data through the chain])],
1198 [],[enable_mc_saving=no])
1199if test "x$enable_mc_saving" = "xyes" ; then
1200 AC_DEFINE(DOMC)
1201fi
1202AC_MSG_RESULT([$enable_mc_saving])
1203
1204dnl ------------------------------------------------------------------
1205dnl certainly something old, but we keep the define
1206AC_MSG_CHECKING([whether to use ROWHOUGH])
1207AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1208AC_ARG_ENABLE(rowhough,
1209 [AC_HELP_STRING([--enable-rowhough],
1210 [use ROWHOUGH ])],
1211 [],[enable_rowhough=no])
1212if test "x$enable_rowhough" = "xyes" ; then
1213 AC_DEFINE(USEROWHOUGH)
1214fi
1215AC_MSG_RESULT([$enable_rowhough])
1216
1217dnl ------------------------------------------------------------------
1218dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1219dnl stand-alone build system. This is most likely something old we can
1220dnl get rid off later, or do something more reasonable. Since the define
1221dnl needs the quotes they have to be escaped. This works well for the
1222dnl Makefile but not for the configure script. So we have to add the
1223dnl defines after all the other checks.
1224CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1225if test ! "x$have_aliroot" = "xno" ; then
1226 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1227fi
1228
1229dnl ------------------------------------------------------------------
1230dnl
1231dnl Documentation
1232dnl
1233AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1234AC_PATH_PROG(PERL, perl)
1235AC_PATH_PROG(DOXYGEN, doxygen)
1236AC_ARG_ENABLE(dot,
1237 [AC_HELP_STRING([--enable-dot],
1238 [enable dot documentation generator])],
1239 [],[enable_dot=no])
1240HAVE_DOT=NO
1241DOT_PATH=
1242AC_PATH_PROG(DOT, dot)
1243if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1244 HAVE_DOT=YES
1245 DOT_PATH=`dirname $DOT`
1246fi
1247
1248AC_MSG_CHECKING([for documentation mode])
1249AC_ARG_ENABLE(doc,
1250 [AC_HELP_STRING([--disable-doc],
1251 [disable documentation build; monolithic build --enable-doc=mono ])],
1252 [],[enable_doc=modules])
1253
1254if test "x$DOXYGEN" = "x" ; then
1255 enable_doc=no.doxygen
1256elif test "x$enable_doc" = "xyes" ; then
1257 enable_doc=yes
1258elif test ! "x$enable_doc" = "xmono" && \
1259 test ! "x$enable_doc" = "xmodules" && \
1260 test ! "x$enable_doc" = "xno"; then
1261 enable_doc=no
1262 AC_MSG_WARN([unknown option])
1263fi
1264if test "x$enable_doc" = "xno" ; then
1265 enable_doc=off
1266 DOXYGEN=
1267fi
1268
1269AC_MSG_RESULT([$enable_doc])
1270AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1271AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1272AC_SUBST([HAVE_DOT])
1273AC_SUBST([DOT_PATH])
1274
1275dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1276dnl echo $HAVE_SRC_SUBDIR
1277dnl if ! test -d $HAVE_SRC_SUBDIR; then
1278dnl HAVE_SRC_SUBDIR=
1279dnl fi
1280dnl AC_SUBST([HAVE_SRC_SUBDIR])
1281
1282dnl ------------------------------------------------------------------
1283AC_MSG_NOTICE([---------------------------------------------- ])
1284AC_MSG_NOTICE([ build summary ])
1285AC_MSG_NOTICE([---------------------------------------------- ])
1286
1287AC_CONFIG_FILES([Makefile
1288 BASE/Makefile
1289 BASE/setenv.sh
1290 BASE/setenv.csh
1291 BASE/HOMER/Makefile
1292 BASE/util/Makefile
1293 BASE/util/test/Makefile
1294 BASE/interface/Makefile
1295 BASE/test/Makefile
1296 BASE/interface/test/Makefile
1297 doc/Makefile
1298 doc/doxygen.conf
1299 doc/doxymodule.conf])
1300
1301dnl AliRoot and installation directory for libraries
1302dnl
1303AC_MSG_NOTICE([AliRoot: $have_aliroot])
1304AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1305if test "x$have_aliroot" != "xno"; then
1306 AC_CONFIG_FILES([sim/Makefile
1307 rec/Makefile
1308 rec/test/Makefile
1309 rec/startAliEVE-barrel-tracks.sh
1310 shuttle/Makefile
1311 pendolino/Makefile
1312 benchmark/Makefile
1313 QA/Makefile
1314 ])
1315fi
1316if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1317libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1318AC_MSG_NOTICE([libdir set to $libdir])
1319fi
1320
1321AC_MSG_NOTICE([compile sample library: $enable_sample])
1322if test "x$enable_sample" = "xyes"; then
1323 AC_CONFIG_FILES([SampleLib/Makefile])
1324fi
1325
1326AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1327if test "x$enable_rcu" = "xyes"; then
1328 AC_CONFIG_FILES([RCU/Makefile
1329 RCU/test/Makefile
1330 ])
1331fi
1332
1333AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1334if test "x$enable_tpc" = "xyes"; then
1335 AC_CONFIG_FILES([TPCLib/Makefile
1336 TPCLib/test/Makefile
1337 TPCLib/mapping2array.cxx
1338 TPCLib/EVE/Makefile
1339 TPCLib/calibration/Makefile
1340 ])
1341fi
1342
1343AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1344if test "x$enable_phos" = "xyes"; then
1345 AC_CONFIG_FILES([PHOS/Makefile])
1346fi
1347
1348AC_MSG_NOTICE([compile TRD library: $enable_trd])
1349if test "x$enable_trd" = "xyes"; then
1350 AC_CONFIG_FILES([TRD/Makefile])
1351fi
1352
1353AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1354if test "x$enable_fmd" = "xyes"; then
1355 AC_CONFIG_FILES([FMD/Makefile])
1356fi
1357
1358AC_MSG_NOTICE([compile MUON library: $enable_muon])
1359if test "x$enable_muon" = "xyes"; then
1360 AC_CONFIG_FILES([MUON/Makefile])
1361fi
1362
1363AC_MSG_NOTICE([compile ITS library: $enable_its])
1364if test "x$enable_its" = "xyes"; then
1365 AC_CONFIG_FILES([ITS/Makefile])
1366fi
1367
1368AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1369if test "x$enable_emcal" = "xyes"; then
1370 AC_CONFIG_FILES([EMCAL/Makefile])
1371fi
1372
1373AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1374if test "x$enable_trigger" = "xyes"; then
1375 AC_CONFIG_FILES([trigger/Makefile
1376 trigger/test/Makefile])
1377fi
1378
1379AC_MSG_NOTICE([compile global library: $enable_global])
1380if test "x$enable_global" = "xyes"; then
1381 AC_CONFIG_FILES([global/Makefile])
1382fi
1383
1384AC_MSG_NOTICE([compile jet library: $enable_jet])
1385if test "x$enable_jet" = "xyes"; then
1386 AC_CONFIG_FILES([JET/Makefile])
1387fi
1388
1389AC_MSG_NOTICE([compile comp library: $enable_comp])
1390if test "x$enable_comp" = "xyes"; then
1391 AC_CONFIG_FILES([comp/Makefile])
1392fi
1393
1394AC_OUTPUT
1395dnl
1396dnl EOF
1397dnl
1398