Protection against division by zero.
[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)
77 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
dc8f7cb7 78 for CHECKLIB in $ROOT_CHECKLIBS ; do
dc8f7cb7 79 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
80 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
81 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
82 done
dfaa582a 83
84 # TBuffer.h has been made pure virtual in root v5-15-02 and one
85 # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
ba4b0dd7 86 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
dfaa582a 87
0b6c2560 88 # TView.h has been made pure virtual right after root v5-15-02 and one
89 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
ba4b0dd7 90 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
0b6c2560 91
dc8f7cb7 92 CPPFLAGS=$save_CPPFLAGS
93 LDFLAGS=$save_LDFLAGS
94 LIBS=$save_LIBS
dfaa582a 95 AC_LANG_POP(C++)
dc8f7cb7 96fi
b521659f 97
98dnl ------------------------------------------------------------------
99# TODO: make this configurable through arguments
100#Define whether you want to run with ALIROOT or only ROOT
101AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
102ALIHLT_USEPACKAGE=ALIROOT
103#ALIHLT_USEPACKAGE=ROOT
104#ALIHLT_USEPACKAGE=STANDALONE
105AC_DEFINE(use_aliroot)
106AC_DEFINE(use_root)
85869391 107CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
7233bc62 108save_CPPFLAGS=$CPPFLAGS
109save_LDFLAGS=$LDFLAGS
110save_LIBS=$LIBS
85869391 111
112dnl ------------------------------------------------------------------
74c73e5a 113dnl check for AliRoot features
114AC_LANG_PUSH(C++)
74c73e5a 115have_aliroot=no
2bbbadd1 116AC_ARG_WITH(aliroot,[ --with-aliroot top of the AliRoot installation],
117 [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
118 [])
119
120if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
121 dnl ------------------------------------------------------------------
122 dnl Try to estimate the system architecture
123 case $host_os:$host_cpu in
124 linux*:x86_64*) alice_target='linuxx8664gcc' ;;
125 linux*) alice_target='linux' ;;
126 *) alice_target='unknown' ;;
127 esac
128 if test "x$alice_target" = "xunknown" ; then
129 if test -z $ALICE_TARGET ; then
130 AC_MSG_ERROR([Can not estimate system architecture.
131 To avoid the problem, set the ALICE_TARGET variable appropriately.
132 Please send the following information to Matthias.Richter@ift.uib.no:
133 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
134 else
135 AC_MSG_NOTICE([Unknown system architecture.
136 Please send the following information to Matthias.Richter@ift.uib.no:
137 ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
138 fi
139 else
140 if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
141 AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
142 overriding $ALICE_TARGET by $alice_target])
143 fi
144 ALICE_TARGET=$alice_target
145 fi
dc8f7cb7 146 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
74c73e5a 147 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
148 ALIROOTINCDIR=${ALICE_ROOT}/include
dc8f7cb7 149 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
2bbbadd1 150 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
151 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
74c73e5a 152fi
2bbbadd1 153
154AC_MSG_CHECKING([for AliRoot])
74c73e5a 155if test "x$ALICE_ROOT" != "x" \
dc8f7cb7 156 && test -d ${ALIROOTBINDIR} \
74c73e5a 157 && test -d ${ALIROOTLIBDIR} \
158 && test -d ${ALIROOTINCDIR}; then
159 have_aliroot=$ALICE_ROOT
160else
dc8f7cb7 161 ALIROOTBINDIR=
74c73e5a 162 ALIROOTLIBDIR=
163 ALIROOTINCDIR=
164fi
165AC_MSG_RESULT([$have_aliroot])
166
167if test ! "x$have_aliroot" = "xno" ; then
74c73e5a 168 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
dc8f7cb7 170 ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
74c73e5a 171 save_CPPFLAGS=$CPPFLAGS
172 save_LDFLAGS=$LDFLAGS
173 save_LIBS=$LIBS
174 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
db16520a 175 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
2bbbadd1 176
f8c5e339 177 # check for certain AliRoot libraries/files/features
c018a1bd 178 # libSTEERBase present since Aug 7 2007
179 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
180 CHECKLIB=STEERBase
181 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
182
f5bf5fc3 183 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
184 CHECKLIB=AOD
185 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
186
2bbbadd1 187 # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
188 have_alirawdata=no
189 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
190 CHECKLIB=RAWDatabase
191 AC_CHECK_LIB([$CHECKLIB],[_init],
192 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
193 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
194 CHECKLIB=RAWDatarec
195 AC_CHECK_LIB([$CHECKLIB],[_init],
196 [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
2bbbadd1 197 have_alirawdata=$CHECKLIB])],
198 [# second pass with -RAWData
199 CHECKLIB="-lRAWData"
200 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
201 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
202 #include <AliRawReaderFile.h>
203 #include <AliRawReaderDate.h>
204 #include <AliRawReaderRoot.h>],
205 [AliRawReaderMemory mreader;
206 AliRawReaderFile freader;
207 AliRawReaderDate dreader(NULL,0);
208 AliRawReaderRoot rreader(NULL,0);])],
e962f438 209 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
2bbbadd1 210 have_alirawdata=$CHECKLIB],
211 [have_alirawdata=no])
212 ]) dnl AC_CHECK_LIB RAWDatabase
fa274626 213 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
214 AC_MSG_RESULT([$have_alirawdata])
215
fbf4d793 216 # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
217 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
218 CHECKLIB=CDB
219 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
220
221 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
222 CHECKLIB=STEER
223 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
224
225 dnl
226 dnl check whether AliLog supports notification callback
227 dnl
228 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
229 have_alilog_notification=no
230 if test ! "x$have_aliroot" = "xno" ; then
231 AC_MSG_CHECKING([whether AliLog supports notification callback])
232 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>],
233 [AliLog::AliLogNotification fct])],
234 [have_alilog_notification=yes],
235 [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
236 AC_MSG_RESULT([$have_alilog_notification])
237 fi
238
239 if test "x$have_aliroot" = "xno" ; then
240 # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
241 # but library dependencies might not be resolved completely
242 #ALIROOT_CPPFLAGS=
243 AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
244 This can happen from time to time due to development in AliRoot. You can
245 force compilation of detector libs by --enable-<detector>, but be aware
246 of unresolved references at runtime.])
247 AC_MSG_WARN([ ------------------------------------------ ])
248 AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ])
249 AC_MSG_WARN([ please include config.log ])
250 AC_MSG_WARN([ ------------------------------------------ ])
251 ALIROOT_LDFLAGS=
252 ALIROOT_LIBS=
253 fi
254
f5bf5fc3 255 dnl
f527516f 256 dnl ESD supports non-std content
257 dnl
258 have_esd_nonstd=no
259 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
260 #include <AliExternalTrackParam.h>
261 #include <TTree.h>
262 #include <TClonesArray.h>],
263 [AliESDEvent esd;
264 esd.CreateStdContent();
265 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
266 esd.WriteToTree(tree);
267 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
268 a->SetName("SomeObject");
269 esd.AddObject(a);
270 if (!tree->FindBranch("SomeObject")) return 1;
271 return 0;])],
272 [have_esd_nonstd=yes],
273 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
274 AC_MSG_CHECKING(whether ESD supports non standard content)
275 AC_MSG_RESULT([$have_esd_nonstd])
276
277 dnl
83cb7e1d 278 dnl ESD copy function added May 9 2008 rev 25667
279 dnl
f527516f 280 if test "x$have_esd_nonstd" != "xyes"; then
83cb7e1d 281 have_esd_copy=no
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
283 [AliESDEvent esd1;
284 AliESDEvent esd2;
285 esd2=esd1;])],
9877121c 286 [have_esd_copy=yes],
287 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
83cb7e1d 288 AC_MSG_CHECKING(for ESD assignment operator)
289 AC_MSG_RESULT([$have_esd_copy])
f527516f 290 fi
83cb7e1d 291
292 dnl
296b5188 293 dnl AliRawReaderMemory support for multiple buffers added
c03e064d 294 dnl revision 26829 Jun 2008
296b5188 295 dnl
296 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
297 have_rawreadermemory_multbuffers=no
298 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
299 [AliRawReaderMemory rr;
300 rr.AddBuffer(NULL, 0, 0);])],
301 [have_rawreadermemory_multbuffers=yes],
302 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
c03e064d 303 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
296b5188 304 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
305
306 dnl
fbf4d793 307 dnl required header files and libraries for modules
f5bf5fc3 308 dnl
04dbc9e4 309
f59fee6d 310 dnl
311 dnl Check for the interface of AliExternalTrackParam which has been changed
312 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
313 dnl or higher)
314 externaltrackparam_version=1
315 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
316 [AliExternalTrackParam trackparam;
317 Double_t param[[5]]; Double_t covar[[15]];
318 trackparam.Set(0., 0., param, covar);])],
319 [externaltrackparam_version=2],
320 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
321 AC_MSG_CHECKING(for version of AliExternalTrackParam)
322 AC_MSG_RESULT($externaltrackparam_version)
323
74c73e5a 324 CPPFLAGS=$save_CPPFLAGS
325 LDFLAGS=$save_LDFLAGS
326 LIBS=$save_LIBS
7233bc62 327fi # if test ! "x$have_aliroot" = "xno"
f59fee6d 328
74c73e5a 329AC_LANG_POP(C++)
5f5b708b 330AC_SUBST([ALICE_ROOT])
74c73e5a 331AC_SUBST([ALIROOT_CPPFLAGS])
332AC_SUBST([ALIROOT_LDFLAGS])
dc8f7cb7 333AC_SUBST([ALIROOTBINDIR])
53feaef5 334AC_SUBST([ALIROOTLIBDIR])
74c73e5a 335AC_SUBST([ALIROOT_LIBS])
0f51f5b8 336AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
85869391 337
6c1a9d9e 338HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
339HLTBASE_LDFLAGS=
340AC_SUBST([HLTBASE_CPPFLAGS])
341AC_SUBST([HLTBASE_LDFLAGS])
342
85869391 343dnl ------------------------------------------------------------------
78b557c2 344dnl check for the HLT PubSub Framework
f8c5e339 345dnl namely for the existence of the HOMER library
346dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
347dnl package. It os though possible to choose an external. library
348dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
349dnl got the name libAliHLTHOMER
78b557c2 350AC_MSG_CHECKING([for HLT PubSub Framework])
351AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
352 [],
353 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
354if test -z $with_pubsub || ! test -d $with_pubsub ; then
355 with_pubsub=no
356fi
357AC_MSG_RESULT([$with_pubsub])
f8c5e339 358HOMER_VERSION=2
5f1685a0 359HOMER_LIBS=
78b557c2 360
361AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
362if test "x$with_pubsub" != "xno" ; then
363 save_CPPFLAGS=$CPPFLAGS
364 save_LDFLAGS=$LDFLAGS
365 save_LIBS=$LIBS
4a6b4894 366 # currently the different versions of the HLT PubSub framework have a different
367 # directory layout
20b6dd9a 368 if test -d ${with_pubsub}/include/HOMER ; then
5235c3e9 369 # the 'early' location of the include files with separated HOMER sub dirs
9ce4bf4a 370 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
5235c3e9 371 elif test -d ${with_pubsub}/include/Util/HOMER ; then
372 # location for HLT Framework versions after Sep 2006
9ce4bf4a 373 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
5235c3e9 374 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
375 # fall back if include files were not installed (versions after Sep 06)
9ce4bf4a 376 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
4a6b4894 377 else
5235c3e9 378 # fall back if include files were not installed (versions before Sep 06)
9ce4bf4a 379 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
4a6b4894 380 fi
9ce4bf4a 381 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
5894eaa5 382
383 AC_ARG_ENABLE(pubsub-debug,
384 [AC_HELP_STRING([--disable-pubsub-debug],
385 [force the production version of the PubSub framework])],
386 [],[enable_pubsub_debug=yes])
387 homer_type="none"
388 HOMER_TARGET="`uname -s`-`uname -m`"
389 AC_MSG_CHECKING([for HLT PubSub Framework release type])
390 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
391 homer_type="production"
392 HOMER_TARGET="${HOMER_TARGET}-release"
393 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
394 homer_type="debug"
395 HOMER_TARGET="${HOMER_TARGET}-debug"
396 fi
397 AC_MSG_RESULT([${homer_type}])
f8c5e339 398 HOMERREADER_HEADER=HOMERReader.h
5894eaa5 399 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
400 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
53feaef5 401 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
78b557c2 402 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
403 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
404 LIBS="$save_LIBS "
405 with_homer=no
406 AC_LANG_PUSH(C++)
f8c5e339 407 AC_CHECK_HEADER([$HOMERREADER_HEADER],
5f1685a0 408 [ AC_CHECK_LIB([HOMER],[_init],
409 [with_homer=yes
410 HOMER_LIBS="-lHOMER"],
411 [ AC_CHECK_LIB([HOMERReader],[_init],
412 [with_homer=yes
413 HOMER_LIBS="-lHOMERReader"])])
414 LIBS="$LIBS $HOMER_LIBS"
9ce4bf4a 415 AC_MSG_CHECKING([version of HOMER library])
5f1685a0 416 dnl The Homer library has no versioning, so we do our own
417 dnl version description
418 dnl ----------------------------------------------------------------------
419 dnl 1 inintial version
420 dnl 2 GetBlockStatusFlags added to the interface
421 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
422 [HOMERReader reader("dummy", 0);
423 reader.GetBlockStatusFlags(0);])],
f8c5e339 424 [],
425 [HOMER_VERSION=1])
5f1685a0 426 AC_MSG_RESULT([$HOMER_VERSION])
f8c5e339 427 ],
428 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
78b557c2 429 AC_LANG_POP(C++)
f8c5e339 430 HOMER_INBUILT_LIB=
431else
432dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
433 topdir=`dirname $0`
434 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
435 HOMERREADER_HEADER=AliHLTHOMERReader.h
436 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
437 HOMER_BINDIR=
438 HOMER_LIBDIR=
439 HOMER_LDFLAGS=
440fi
441
78b557c2 442 if test "x$with_homer" = "xno" ; then
443 HOMER_CPPFLAGS=
444 HOMER_LDFLAGS=
5f1685a0 445 HOMER_LIBS=
78b557c2 446 else
5f1685a0 447 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
78b557c2 448 AC_DEFINE(HAVE_HOMERREADER)
449 fi
450 CPPFLAGS="$save_CPPFLAGS"
451 LDFLAGS="$save_LDFLAGS"
452 LIBS="$save_LIBS"
f8c5e339 453
454AC_SUBST([HOMERREADER_HEADER])
455AC_SUBST([HOMER_INBUILT_LIB])
78b557c2 456AC_SUBST([HOMER_CPPFLAGS])
457AC_SUBST([HOMER_LDFLAGS])
53feaef5 458AC_SUBST([HOMER_LIBDIR])
459AC_SUBST([HOMER_BINDIR])
5f1685a0 460AC_SUBST([HOMER_LIBS])
78b557c2 461
462dnl ------------------------------------------------------------------
7233bc62 463AC_ARG_ENABLE(all,
464 [AC_HELP_STRING([--disable-all],
465 [disable all detector modules, individual modules can be switched on by --enable-det])],
466 [disable_all=yes],[])
467
468dnl ------------------------------------------------------------------
85869391 469AC_MSG_CHECKING([whether to impose strict coding conventions])
470AC_ARG_ENABLE(strict,
2028353f 471 [AC_HELP_STRING([--disable-strict],
472 [disable coding convention checks ])],
473 [],[enable_strict=yes])
85869391 474if test "x$enable_strict" = "xyes" ; then
f7561f8d 475 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
85869391 476fi
477AC_MSG_RESULT([$enable_strict])
b521659f 478
479dnl ------------------------------------------------------------------
5b6ab198 480AC_MSG_CHECKING([whether to enable component statistics])
481AC_ARG_ENABLE(component-stat,
482 [AC_HELP_STRING([--enable-component-stat],
483 [enable component statistics ])],
484 [],[enable_component_stat=no])
485if test "x$enable_component_stat" = "xyes" ; then
486 AC_DEFINE(HLT_COMPONENT_STATISTICS)
487fi
488AC_MSG_RESULT([$enable_component_stat])
489
490dnl ------------------------------------------------------------------
cad2d06c 491dnl ---- module checks
492dnl ------------------------------------------------------------------
493save_CPPFLAGS=$CPPFLAGS
494save_LDFLAGS=$LDFLAGS
495save_LIBS=$LIBS
496
497dnl ------------------------------------------------------------------
b521659f 498AC_MSG_CHECKING([whether to compile sample library])
499AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
500AC_ARG_ENABLE(sample,
c018a1bd 501 [AC_HELP_STRING([--disable-sample],
b521659f 502 [compile the sample library ])],
2e742d30 503 [],
504 [if test "x$have_aliroot" = "xno" ; then
505 enable_sample="no...requires.AliRoot"
506 else
507 enable_sample=yes
508 fi
509 ])
510
b521659f 511if test "x$enable_sample" = "xyes" ; then
512 AC_DEFINE(HLT_SAMPLE)
513fi
514AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
515AC_MSG_RESULT([$enable_sample])
516
517dnl ------------------------------------------------------------------
c018a1bd 518AC_MSG_CHECKING([whether to compile util library])
519AH_TEMPLATE([HLT_UTIL],[HLT utility library])
520AC_ARG_ENABLE(util,
521 [AC_HELP_STRING([--disable-util],
522 [compile the util library ])],
2e742d30 523 [],
524 [if test "x$have_aliroot" = "xno" ; then
525 enable_util="no...requires.AliRoot"
526 else
527 enable_util=yes
528 fi
529 ])
c018a1bd 530
531if test "x$enable_util" = "xyes" ; then
532 AC_DEFINE(HLT_UTIL)
533fi
534AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
535AC_MSG_RESULT([$enable_util])
536
537dnl ------------------------------------------------------------------
b521659f 538AH_TEMPLATE([HLT_TPC],[hlt tpc library])
f59fee6d 539
e642ae99 540ALITPC_LIBS=
f59fee6d 541CHECK_HLTMODULE([tpc],
e962f438 542 [AliTPCRawStream.h],
543 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
70d00903 544 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
e642ae99 545 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 546 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
547
c6b46c3f 548if test "x$enable_module" = "xmissheader"; then
549 enable_module="no...missing.headers"
f59fee6d 550 enable_tpc="no...missing.headers"
c6b46c3f 551elif test "x$enable_module" = "xforce"; then
552 enable_tpc="yes"
f59fee6d 553else
554 enable_tpc=$enable_module
555fi
2e742d30 556
b521659f 557if test "x$enable_tpc" = "xyes" ; then
e642ae99 558 AC_LANG_PUSH(C++)
b521659f 559 AC_DEFINE(HLT_TPC)
e642ae99 560 ALITPC_LIBS=$ALIHLTMODULE_LIBS
561 dnl
562 dnl Check for functionality in the TPC reconstruction required for online
563 dnl processing
564 dnl
565 have_tpc_hltoffline_rec=no
566 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
567 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
568 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
569 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
570 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
571 #include <AliTPCclustererMI.h>
572 #include <TObjArray.h>],
573 [AliTPCtrackerMI tracker;
574 TObjArray* array=NULL;
575 tracker.LoadClusters(array);
576 AliTPCclustererMI cl(NULL, NULL);
89c2e505 577 cl.GetOutputClonesArray();])],
e642ae99 578 [have_tpc_hltoffline_rec=yes],
579 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
cad2d06c 580 LIBS=$save_LIBS
e642ae99 581 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
582
583 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
584 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
585
586 have_tpc_mapping=no
587 if test ! "x$have_aliroot" = "xno" ; then
588 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
589 # which is stored in the TPC/mapping/Patchx.data files from
590 # AliRoot version v4-04-Release (May 2006)
591 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
592 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
593 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
594 [have_tpc_mapping=yes
595 AC_SUBST(TPC_PAD_MAPPING_PATH)
596 AC_DEFINE(HAVE_TPC_MAPPING)],
597 [])
598
599 fi
600 AC_MSG_CHECKING([for TPC mapping layout])
601 AC_MSG_RESULT([$have_tpc_mapping])
602 AC_LANG_POP(C++)
603
adec4ad4 604else
605 enable_module=$enable_tpc
b521659f 606fi
607AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
d6e2c707 608AC_MSG_CHECKING([whether to compile TPC library])
c6b46c3f 609AC_MSG_RESULT([$enable_module])
f59fee6d 610AC_SUBST([ALITPC_LIBS])
b521659f 611
612dnl ------------------------------------------------------------------
5e3820e2 613AH_TEMPLATE([HLT_RCU],[hlt rcu library])
614
615CHECK_HLTMODULE([rcu],
616 [AliAltroDecoder.h],
617 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
618 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
619 [], [-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_rcu="no...missing.headers"
5e3820e2 625elif test "x$enable_module" = "xforce"; then
626 enable_rcu="yes"
627else
628 AC_LANG_PUSH(C++)
5e3820e2 629 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
630 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
631 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
632 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
633 [AliAltroDecoder decoder;
634 decoder.CopyBackward(NULL, 0);])],
635 [enable_rcu=$enable_module],
636 [enable_module="no...requires.AliRoot>v4-10-Release"
637 enable_rcu="no...requires.AliRoot>v4-10-Release"])
638 CPPFLAGS=$save_CPPFLAGS
639 LDFLAGS=$save_LDFLAGS
640 LIBS=$save_LIBS
641 AC_LANG_POP(C++)
642fi
643
644if test "x$enable_rcu" = "xyes" ; then
645 AC_DEFINE(HLT_RCU)
adec4ad4 646else
647 enable_module=$enable_rcu
5e3820e2 648fi
649AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
d6e2c707 650AC_MSG_CHECKING([whether to compile RCU library])
5e3820e2 651AC_MSG_RESULT([$enable_module])
652AC_SUBST([ALIRCU_LIBS])
653
654dnl ------------------------------------------------------------------
c160eda8 655AH_TEMPLATE([HLT_PHOS],[hlt phos library])
f59fee6d 656
657ALIPHOS_LIBS=
658CHECK_HLTMODULE([phos],
659 [], [$ALIROOT_CPPFLAGS],
660 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
652cf9d2 661 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 662 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
663
c6b46c3f 664if test "x$enable_module" = "xmissheader"; then
665 enable_module="no...requires.AliRoot>v4-05-07"
f59fee6d 666 enable_phos="no...requires.AliRoot>v4-05-07"
c6b46c3f 667elif test "x$enable_module" = "xforce"; then
668 enable_phos="yes"
f59fee6d 669else
670 have_alicalorawstream=no
671 if test ! "x$have_aliroot" = "xno" ; then
672 AC_LANG_PUSH(C++)
673 save_CPPFLAGS="$CPPFLAGS"
674 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
675 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
56584e00 676 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
f59fee6d 677 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
678 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
679 #include <AliCaloRawStream.h>],
680 [int i])],
681 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
682 have_alicalorawstream=yes],
683 [])
ae1c1854 684 AC_MSG_RESULT([$have_aliphosrecoparam])
685 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
686 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
687 [AliPHOSRecoParam param;
688 param.GetEMCClusteringThreshold()])],
689 [have_aliphosrecoparam=yes],
690 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
f59fee6d 691 AC_MSG_RESULT([$have_alicalorawstream])
692 AC_LANG_POP(C++)
693 CPPFLAGS="$save_CPPFLAGS"
694 fi
695 if test "x$have_alicalorawstream" != "xyes"; then
696 enable_phos="no...requires.AliRoot>v4-05-07"
697 else
698 enable_phos=$enable_module
699 fi
700fi
2e742d30 701
c160eda8 702if test "x$enable_phos" = "xyes" ; then
703 AC_DEFINE(HLT_PHOS)
f59fee6d 704 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 705else
706 enable_module=$enable_phos
c160eda8 707fi
708AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
d6e2c707 709AC_MSG_CHECKING([whether to compile PHOS library])
c6b46c3f 710AC_MSG_RESULT([$enable_module])
f59fee6d 711AC_SUBST([ALIPHOS_LIBS])
c160eda8 712
c6b46c3f 713dnl ------------------------------------------------------------------
714AH_TEMPLATE([HLT_TRD],[hlt trd library])
715
f59fee6d 716ALITRD_LIBS=
717CHECK_HLTMODULE([trd],
718 [], [],
b3f74118 719 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
f59fee6d 720 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
721 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
722
c6b46c3f 723if test "x$enable_module" = "xmissheader"; then
724 enable_module="no...requires.AliRoot>v4-07-Release"
f59fee6d 725 enable_trd="no...requires.AliRoot>v4-07-Release"
c6b46c3f 726elif test "x$enable_module" = "xforce"; then
727 enable_trd="yes"
f59fee6d 728else
729 enable_trd=$enable_module
730 if test "x$enable_trd" = "xyes" ; then
731 AC_LANG_PUSH(C++)
732 save_CPPFLAGS="$CPPFLAGS"
733 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
adec4ad4 734 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
735 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
0d66dbf5 736 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
ae5bf1dd 737 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
0d66dbf5 738 AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
739 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>],
740 [AliTRDReconstructor r;
ae5bf1dd 741 r.SetClusters(0)])],
f59fee6d 742 [],
0d66dbf5 743 [enable_trd="no...requires.AliRoot>v4-14-Release"])
f59fee6d 744 AC_MSG_RESULT([$enable_trd])
745 AC_LANG_POP(C++)
746 CPPFLAGS="$save_CPPFLAGS"
747 fi
748fi
2e742d30 749
0f51f5b8 750if test "x$enable_trd" = "xyes" ; then
751 AC_DEFINE(HLT_TRD)
f59fee6d 752 ALITRD_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 753else
754 enable_module=$enable_trd
0f51f5b8 755fi
756AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
d6e2c707 757AC_MSG_CHECKING([whether to compile TRD library])
c6b46c3f 758AC_MSG_RESULT([$enable_module])
f59fee6d 759AC_SUBST([ALITRD_LIBS])
0f51f5b8 760
761dnl ------------------------------------------------------------------
629266d1 762AH_TEMPLATE([HLT_FMD],[hlt fmd library])
763
764ALIFMD_LIBS=$ALIHLTMODULE_LIBS
765CHECK_HLTMODULE([fmd],
766 [], [],
767 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
768 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
769 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
770
771if test "x$enable_module" = "xmissheader"; then
772 enable_module="no...requires.AliRoot>v4-15-Release"
773 enable_fmd="no...requires.AliRoot>v4-15-Release"
774elif test "x$enable_module" = "xforce"; then
775 enable_fmd="yes"
776else
777 enable_fmd=$enable_module
778 if test "x$enable_fmd" = "xyes" ; then
779 AC_LANG_PUSH(C++)
780 save_CPPFLAGS="$CPPFLAGS"
781 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/FMD"
782 AC_MSG_RESULT([$enable_fmd])
783 AC_LANG_POP(C++)
784 CPPFLAGS="$save_CPPFLAGS"
785 fi
786fi
787
788if test "x$enable_fmd" = "xyes" ; then
789 AC_DEFINE(HLT_FMD)
790 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
791else
792 enable_module=$enable_fmd
793fi
794AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
795AC_MSG_CHECKING([whether to compile FMD library])
796AC_MSG_RESULT([$enable_module])
797AC_SUBST([ALIFMD_LIBS])
798
799
800dnl ------------------------------------------------------------------
94cc9aab 801AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
2e742d30 802
f59fee6d 803ALIMUON_LIBS=
e89e6b23 804CHECK_HLTMODULE([dimuon],
41f99620 805 [AliMpExMap.h AliMUONTriggerIO.h],
806 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
b3f74118 807 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
808 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 809 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
810
811if test "x$enable_module" = "xmissheader"; then
a853a794 812 enable_module="no...requires.AliRoot>=v4-08-Release"
813 enable_muon="no...requires.AliRoot>=v4-08-Release"
c6b46c3f 814elif test "x$enable_module" = "xforce"; then
815 enable_muon="yes"
f59fee6d 816else
817 enable_muon=$enable_module
818fi
819
820if test "x$enable_muon" = "xyes" ; then
94cc9aab 821 AC_DEFINE(HLT_MUON)
f59fee6d 822 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
6ed1b948 823 AC_LANG_PUSH(C++)
824 dnl
825 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
826 dnl
827 have_muon_digitmaker_getrawstream=no
828 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
829 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
830 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
831 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
832 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
833 [AliMUONDigitMaker dm;
834 dm.GetRawStreamTracker();])],
835 [have_muon_digitmaker_getrawstream=yes],
836 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
837 LIBS=$save_LIBS
838 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
839
840 AC_LANG_POP(C++)
adec4ad4 841else
842 enable_module=$enable_muon
94cc9aab 843fi
f59fee6d 844AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
d6e2c707 845AC_MSG_CHECKING([whether to compile MUON library])
c6b46c3f 846AC_MSG_RESULT([$enable_module])
f59fee6d 847AC_SUBST([ALIMUON_LIBS])
94cc9aab 848
849dnl ------------------------------------------------------------------
d6e2c707 850AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
851
852ALITRIGGER_LIBS=
853CHECK_HLTMODULE([trigger],
854 [], [$ALIROOT_CPPFLAGS],
855 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
856 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
857 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
858
859if test "x$enable_module" = "xmissheader"; then
860 enable_module="no...header.missing"
861 enable_trigger="no...header.missing"
862elif test "x$enable_module" = "xforce"; then
863 enable_trigger="yes"
864else
865 enable_trigger=$enable_module
866fi
867
868if test "x$enable_trigger" = "xyes" ; then
869 AC_DEFINE(HLT_TRIGGER)
870 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 871else
872 enable_module=$enable_trigger
d6e2c707 873fi
874AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
875AC_MSG_CHECKING([whether to compile Trigger library])
876AC_MSG_RESULT([$enable_module])
877AC_SUBST([ALITRIGGER_LIBS])
878
879dnl ------------------------------------------------------------------
880AH_TEMPLATE([HLT_ITS],[hlt its library])
881
882ALIITS_LIBS=
883CHECK_HLTMODULE([its],
ae5bf1dd 884 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
cad2d06c 885 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
886 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
d6e2c707 887 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
888
889if test "x$enable_module" = "xmissheader"; then
890 enable_module="no...header.missing"
891 enable_its="no...header.missing"
892elif test "x$enable_module" = "xforce"; then
893 enable_its="yes"
894else
895 enable_its=$enable_module
adec4ad4 896 if test "x$enable_its" = "xyes" ; then
897 AC_LANG_PUSH(C++)
898 save_CPPFLAGS="$CPPFLAGS"
899 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
900 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
901 # require AliVertexer::GetNominalPos()
902 AC_MSG_CHECKING([for required functions in AliITSVertexer])
903 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
904 [AliITSVertexerZ v;
905 v.GetNominalPos()])],
906 [],
907 [enable_its="no...requires.AliRoot>v4-13-Release"])
908 AC_MSG_RESULT([$enable_its])
909 AC_LANG_POP(C++)
910 CPPFLAGS="$save_CPPFLAGS"
911 fi
d6e2c707 912fi
913
914if test "x$enable_its" = "xyes" ; then
915 AC_DEFINE(HLT_ITS)
916 ALIITS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 917else
918 enable_module=$enable_its
d6e2c707 919fi
920AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
921AC_MSG_CHECKING([whether to compile ITS library])
922AC_MSG_RESULT([$enable_module])
923AC_SUBST([ALIITS_LIBS])
924
925dnl ------------------------------------------------------------------
e89e6b23 926AH_TEMPLATE([HLT_COMP],[hlt comp library])
927
928ALICOMP_LIBS=
929CHECK_HLTMODULE([comp],
930 [], [$ALIROOT_CPPFLAGS],
931 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
932 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
933 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
934
935if test "x$enable_module" = "xmissheader"; then
c6b46c3f 936 enable_module="no...header.missing"
e89e6b23 937 enable_comp="no...header.missing"
c6b46c3f 938elif test "x$enable_module" = "xforce"; then
939 enable_comp="yes"
e89e6b23 940else
941 enable_comp=$enable_module
942fi
943
944if test "x$enable_comp" = "xyes" ; then
945 AC_DEFINE(HLT_COMP)
946 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 947else
948 enable_module=$enable_comp
e89e6b23 949fi
950AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
951AC_MSG_CHECKING([whether to compile comp library])
c6b46c3f 952AC_MSG_RESULT([$enable_module])
e89e6b23 953AC_SUBST([ALICOMP_LIBS])
954
955dnl ------------------------------------------------------------------
fc455fba 956AC_MSG_CHECKING([whether to disable AliRoot logging])
957AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
958AC_ARG_ENABLE(aliroot-logging,
959 [AC_HELP_STRING([--disable-aliroot-logging],
960 [disable logging through AliRoot logging methods])],
961 [],[enable_aliroot_logging=no])
c018a1bd 962if test "x$have_aliroot" = "xno" ; then
963 enable_aliroot_logging=yes # this means 'disable'
964fi
fc455fba 965if test "x$enable_aliroot_logging" != "xno" ; then
966 AC_DEFINE(NOALIROOT_LOGGING)
b521659f 967fi
fc455fba 968AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
969AC_MSG_RESULT([$enable_aliroot_logging])
b521659f 970
971dnl ------------------------------------------------------------------
972AC_MSG_CHECKING([whether to enable saving MC data through the chain])
973AH_TEMPLATE([DOMC],[MC saving])
974AC_ARG_ENABLE(mc-saving,
975 [AC_HELP_STRING([--enable-mc-saving],
976 [enable saving MC data through the chain])],
977 [],[enable_mc_saving=no])
978if test "x$enable_mc_saving" = "xyes" ; then
979 AC_DEFINE(DOMC)
980fi
981AC_MSG_RESULT([$enable_mc_saving])
982
983dnl ------------------------------------------------------------------
b521659f 984dnl certainly something old, but we keep the define
985AC_MSG_CHECKING([whether to use ROWHOUGH])
986AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
987AC_ARG_ENABLE(rowhough,
988 [AC_HELP_STRING([--enable-rowhough],
989 [use ROWHOUGH ])],
990 [],[enable_rowhough=no])
991if test "x$enable_rowhough" = "xyes" ; then
992 AC_DEFINE(USEROWHOUGH)
993fi
994AC_MSG_RESULT([$enable_rowhough])
995
996dnl ------------------------------------------------------------------
53feaef5 997dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
998dnl stand-alone build system. This is most likely something old we can
999dnl get rid off later, or do something more reasonable. Since the define
1000dnl needs the quotes they have to be escaped. This works well for the
1001dnl Makefile but not for the configure script. So we have to add the
1002dnl defines after all the other checks.
1003CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1004if test ! "x$have_aliroot" = "xno" ; then
1005 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1006fi
1007
1008dnl ------------------------------------------------------------------
b521659f 1009dnl
1010dnl Documentation
1011dnl
1012AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1013AC_PATH_PROG(PERL, perl)
1014AC_PATH_PROG(DOXYGEN, doxygen)
5894eaa5 1015AC_ARG_ENABLE(dot,
1016 [AC_HELP_STRING([--enable-dot],
1017 [enable dot documentation generator])],
1018 [],[enable_dot=no])
b521659f 1019HAVE_DOT=NO
1020DOT_PATH=
1021AC_PATH_PROG(DOT, dot)
5894eaa5 1022if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
b521659f 1023 HAVE_DOT=YES
1024 DOT_PATH=`dirname $DOT`
1025fi
ae1c1854 1026
1027AC_MSG_CHECKING([for documentation mode])
1028AC_ARG_ENABLE(doc,
1029 [AC_HELP_STRING([--disable-doc],
1030 [disable documentation build; monolithic build --enable-doc=mono ])],
1031 [],[enable_doc=modules])
1032if test "x$DOXYGEN" = "x" ; then
1033 enable_doc=no.doxygen
1034elif test ! "x$enable_doc" = "xmono" && \
1035 test ! "x$enable_doc" = "xmodules" && \
1036 test ! "x$enable_doc" = "xno"; then
1037 enable_doc=no
1038 AC_MSG_WARN([unknown option])
1039fi
1040if test "x$enable_doc" = "xno" ; then
1041 enable_doc=off
1042 DOXYGEN=
1043fi
1044
1045AC_MSG_RESULT([$enable_doc])
1046AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1047AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
b521659f 1048AC_SUBST([HAVE_DOT])
1049AC_SUBST([DOT_PATH])
1050
90ebac25 1051dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1052dnl echo $HAVE_SRC_SUBDIR
1053dnl if ! test -d $HAVE_SRC_SUBDIR; then
1054dnl HAVE_SRC_SUBDIR=
1055dnl fi
1056dnl AC_SUBST([HAVE_SRC_SUBDIR])
1057
b521659f 1058dnl ------------------------------------------------------------------
7233bc62 1059AC_MSG_NOTICE([---------------------------------------------- ])
1060AC_MSG_NOTICE([ build summary ])
1061AC_MSG_NOTICE([---------------------------------------------- ])
1062
b521659f 1063AC_CONFIG_FILES([Makefile
1064 BASE/Makefile
53feaef5 1065 BASE/setenv.sh
1066 BASE/setenv.csh
2be16a33 1067 BASE/HOMER/Makefile
242bb794 1068 BASE/util/Makefile
d098ebd4 1069 BASE/interface/Makefile
853121af 1070 BASE/test/Makefile
1a21074a 1071 BASE/interface/test/Makefile
b521659f 1072 doc/Makefile
2efb85be 1073 doc/doxygen.conf
1074 doc/doxymodule.conf])
b521659f 1075
7233bc62 1076dnl AliRoot and installation directory for libraries
1077dnl
1078AC_MSG_NOTICE([AliRoot: $have_aliroot])
1079AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1080if test "x$have_aliroot" != "xno"; then
1081 AC_CONFIG_FILES([sim/Makefile
1082 rec/Makefile
652cf9d2 1083 rec/test/Makefile
7233bc62 1084 shuttle/Makefile
ff4edcee 1085 pendolino/Makefile
7233bc62 1086 ])
1087fi
1088if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1089libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1090AC_MSG_NOTICE([libdir set to $libdir])
1091fi
1092
1093AC_MSG_NOTICE([compile sample library: $enable_sample])
1094if test "x$enable_sample" = "xyes"; then
1095 AC_CONFIG_FILES([SampleLib/Makefile])
1096fi
1097
652cf9d2 1098AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1099if test "x$enable_rcu" = "xyes"; then
1100 AC_CONFIG_FILES([RCU/Makefile
1101 RCU/test/Makefile
1102 ])
1103fi
1104
7233bc62 1105AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1106if test "x$enable_tpc" = "xyes"; then
1107 AC_CONFIG_FILES([TPCLib/Makefile
1108 TPCLib/test/Makefile
1109 TPCLib/mapping2array.cxx
1110 TPCLib/OnlineDisplay/Makefile
1111 ])
1112fi
1113
7233bc62 1114AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1115if test "x$enable_phos" = "xyes"; then
1116 AC_CONFIG_FILES([PHOS/Makefile])
1117fi
1118
1119AC_MSG_NOTICE([compile TRD library: $enable_trd])
1120if test "x$enable_trd" = "xyes"; then
1121 AC_CONFIG_FILES([TRD/Makefile])
1122fi
1123
1124AC_MSG_NOTICE([compile MUON library: $enable_muon])
1125if test "x$enable_muon" = "xyes"; then
1126 AC_CONFIG_FILES([MUON/Makefile])
1127fi
1128
1129AC_MSG_NOTICE([compile ITS library: $enable_its])
1130if test "x$enable_its" = "xyes"; then
1131 AC_CONFIG_FILES([ITS/Makefile])
1132fi
1133
1134AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1135if test "x$enable_trigger" = "xyes"; then
1136 AC_CONFIG_FILES([trigger/Makefile])
1137fi
1138
1139AC_MSG_NOTICE([compile comp library: $enable_comp])
1140if test "x$enable_comp" = "xyes"; then
1141 AC_CONFIG_FILES([comp/Makefile])
1142fi
b521659f 1143
1144AC_OUTPUT
1145dnl
1146dnl EOF
1147dnl
1148