Protection against division by zero.
[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
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 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
78 for CHECKLIB in $ROOT_CHECKLIBS ; do
79 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
80 LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
81 AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
82 done
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)
86 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
87
88 # TView.h has been made pure virtual right after root v5-15-02 and one
89 # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
90 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
91
92 CPPFLAGS=$save_CPPFLAGS
93 LDFLAGS=$save_LDFLAGS
94 LIBS=$save_LIBS
95 AC_LANG_POP(C++)
96fi
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)
107CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
108save_CPPFLAGS=$CPPFLAGS
109save_LDFLAGS=$LDFLAGS
110save_LIBS=$LIBS
111
112dnl ------------------------------------------------------------------
113dnl check for AliRoot features
114AC_LANG_PUSH(C++)
115have_aliroot=no
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
146 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
147 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
148 ALIROOTINCDIR=${ALICE_ROOT}/include
149 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
150 test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
151 test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
152fi
153
154AC_MSG_CHECKING([for AliRoot])
155if test "x$ALICE_ROOT" != "x" \
156 && test -d ${ALIROOTBINDIR} \
157 && test -d ${ALIROOTLIBDIR} \
158 && test -d ${ALIROOTINCDIR}; then
159 have_aliroot=$ALICE_ROOT
160else
161 ALIROOTBINDIR=
162 ALIROOTLIBDIR=
163 ALIROOTINCDIR=
164fi
165AC_MSG_RESULT([$have_aliroot])
166
167if test ! "x$have_aliroot" = "xno" ; then
168 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
170 ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
171 save_CPPFLAGS=$CPPFLAGS
172 save_LDFLAGS=$LDFLAGS
173 save_LIBS=$LIBS
174 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
175 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
176
177 # check for certain AliRoot libraries/files/features
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
183 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
184 CHECKLIB=AOD
185 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
186
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"
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);])],
209 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
210 have_alirawdata=$CHECKLIB],
211 [have_alirawdata=no])
212 ]) dnl AC_CHECK_LIB RAWDatabase
213 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
214 AC_MSG_RESULT([$have_alirawdata])
215
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
255 dnl
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
278 dnl ESD copy function added May 9 2008 rev 25667
279 dnl
280 if test "x$have_esd_nonstd" != "xyes"; then
281 have_esd_copy=no
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
283 [AliESDEvent esd1;
284 AliESDEvent esd2;
285 esd2=esd1;])],
286 [have_esd_copy=yes],
287 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
288 AC_MSG_CHECKING(for ESD assignment operator)
289 AC_MSG_RESULT([$have_esd_copy])
290 fi
291
292 dnl
293 dnl AliRawReaderMemory support for multiple buffers added
294 dnl revision 26829 Jun 2008
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)])
303 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
304 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
305
306 dnl
307 dnl required header files and libraries for modules
308 dnl
309
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
324 CPPFLAGS=$save_CPPFLAGS
325 LDFLAGS=$save_LDFLAGS
326 LIBS=$save_LIBS
327fi # if test ! "x$have_aliroot" = "xno"
328
329AC_LANG_POP(C++)
330AC_SUBST([ALICE_ROOT])
331AC_SUBST([ALIROOT_CPPFLAGS])
332AC_SUBST([ALIROOT_LDFLAGS])
333AC_SUBST([ALIROOTBINDIR])
334AC_SUBST([ALIROOTLIBDIR])
335AC_SUBST([ALIROOT_LIBS])
336AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
337
338HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
339HLTBASE_LDFLAGS=
340AC_SUBST([HLTBASE_CPPFLAGS])
341AC_SUBST([HLTBASE_LDFLAGS])
342
343dnl ------------------------------------------------------------------
344dnl check for the HLT PubSub Framework
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
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])
358HOMER_VERSION=2
359HOMER_LIBS=
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
366 # currently the different versions of the HLT PubSub framework have a different
367 # directory layout
368 if test -d ${with_pubsub}/include/HOMER ; then
369 # the 'early' location of the include files with separated HOMER sub dirs
370 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
371 elif test -d ${with_pubsub}/include/Util/HOMER ; then
372 # location for HLT Framework versions after Sep 2006
373 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
374 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
375 # fall back if include files were not installed (versions after Sep 06)
376 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
377 else
378 # fall back if include files were not installed (versions before Sep 06)
379 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
380 fi
381 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
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}])
398 HOMERREADER_HEADER=HOMERReader.h
399 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
400 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
401 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
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++)
407 AC_CHECK_HEADER([$HOMERREADER_HEADER],
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"
415 AC_MSG_CHECKING([version of HOMER library])
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);])],
424 [],
425 [HOMER_VERSION=1])
426 AC_MSG_RESULT([$HOMER_VERSION])
427 ],
428 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
429 AC_LANG_POP(C++)
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
442 if test "x$with_homer" = "xno" ; then
443 HOMER_CPPFLAGS=
444 HOMER_LDFLAGS=
445 HOMER_LIBS=
446 else
447 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
448 AC_DEFINE(HAVE_HOMERREADER)
449 fi
450 CPPFLAGS="$save_CPPFLAGS"
451 LDFLAGS="$save_LDFLAGS"
452 LIBS="$save_LIBS"
453
454AC_SUBST([HOMERREADER_HEADER])
455AC_SUBST([HOMER_INBUILT_LIB])
456AC_SUBST([HOMER_CPPFLAGS])
457AC_SUBST([HOMER_LDFLAGS])
458AC_SUBST([HOMER_LIBDIR])
459AC_SUBST([HOMER_BINDIR])
460AC_SUBST([HOMER_LIBS])
461
462dnl ------------------------------------------------------------------
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 ------------------------------------------------------------------
469AC_MSG_CHECKING([whether to impose strict coding conventions])
470AC_ARG_ENABLE(strict,
471 [AC_HELP_STRING([--disable-strict],
472 [disable coding convention checks ])],
473 [],[enable_strict=yes])
474if test "x$enable_strict" = "xyes" ; then
475 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
476fi
477AC_MSG_RESULT([$enable_strict])
478
479dnl ------------------------------------------------------------------
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 ------------------------------------------------------------------
491dnl ---- module checks
492dnl ------------------------------------------------------------------
493save_CPPFLAGS=$CPPFLAGS
494save_LDFLAGS=$LDFLAGS
495save_LIBS=$LIBS
496
497dnl ------------------------------------------------------------------
498AC_MSG_CHECKING([whether to compile sample library])
499AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
500AC_ARG_ENABLE(sample,
501 [AC_HELP_STRING([--disable-sample],
502 [compile the sample library ])],
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
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 ------------------------------------------------------------------
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 ])],
523 [],
524 [if test "x$have_aliroot" = "xno" ; then
525 enable_util="no...requires.AliRoot"
526 else
527 enable_util=yes
528 fi
529 ])
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 ------------------------------------------------------------------
538AH_TEMPLATE([HLT_TPC],[hlt tpc library])
539
540ALITPC_LIBS=
541CHECK_HLTMODULE([tpc],
542 [AliTPCRawStream.h],
543 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
544 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
545 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
546 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
547
548if test "x$enable_module" = "xmissheader"; then
549 enable_module="no...missing.headers"
550 enable_tpc="no...missing.headers"
551elif test "x$enable_module" = "xforce"; then
552 enable_tpc="yes"
553else
554 enable_tpc=$enable_module
555fi
556
557if test "x$enable_tpc" = "xyes" ; then
558 AC_LANG_PUSH(C++)
559 AC_DEFINE(HLT_TPC)
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);
577 cl.GetOutputClonesArray();])],
578 [have_tpc_hltoffline_rec=yes],
579 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
580 LIBS=$save_LIBS
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
604else
605 enable_module=$enable_tpc
606fi
607AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
608AC_MSG_CHECKING([whether to compile TPC library])
609AC_MSG_RESULT([$enable_module])
610AC_SUBST([ALITPC_LIBS])
611
612dnl ------------------------------------------------------------------
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"
625elif test "x$enable_module" = "xforce"; then
626 enable_rcu="yes"
627else
628 AC_LANG_PUSH(C++)
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)
646else
647 enable_module=$enable_rcu
648fi
649AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
650AC_MSG_CHECKING([whether to compile RCU library])
651AC_MSG_RESULT([$enable_module])
652AC_SUBST([ALIRCU_LIBS])
653
654dnl ------------------------------------------------------------------
655AH_TEMPLATE([HLT_PHOS],[hlt phos library])
656
657ALIPHOS_LIBS=
658CHECK_HLTMODULE([phos],
659 [], [$ALIROOT_CPPFLAGS],
660 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
661 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
662 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
663
664if test "x$enable_module" = "xmissheader"; then
665 enable_module="no...requires.AliRoot>v4-05-07"
666 enable_phos="no...requires.AliRoot>v4-05-07"
667elif test "x$enable_module" = "xforce"; then
668 enable_phos="yes"
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])
676 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
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 [])
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)])
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
701
702if test "x$enable_phos" = "xyes" ; then
703 AC_DEFINE(HLT_PHOS)
704 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
705else
706 enable_module=$enable_phos
707fi
708AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
709AC_MSG_CHECKING([whether to compile PHOS library])
710AC_MSG_RESULT([$enable_module])
711AC_SUBST([ALIPHOS_LIBS])
712
713dnl ------------------------------------------------------------------
714AH_TEMPLATE([HLT_TRD],[hlt trd library])
715
716ALITRD_LIBS=
717CHECK_HLTMODULE([trd],
718 [], [],
719 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
720 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
721 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
722
723if test "x$enable_module" = "xmissheader"; then
724 enable_module="no...requires.AliRoot>v4-07-Release"
725 enable_trd="no...requires.AliRoot>v4-07-Release"
726elif test "x$enable_module" = "xforce"; then
727 enable_trd="yes"
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"
734 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
735 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
736 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
737 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
738 AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
739 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>],
740 [AliTRDReconstructor r;
741 r.SetClusters(0)])],
742 [],
743 [enable_trd="no...requires.AliRoot>v4-14-Release"])
744 AC_MSG_RESULT([$enable_trd])
745 AC_LANG_POP(C++)
746 CPPFLAGS="$save_CPPFLAGS"
747 fi
748fi
749
750if test "x$enable_trd" = "xyes" ; then
751 AC_DEFINE(HLT_TRD)
752 ALITRD_LIBS=$ALIHLTMODULE_LIBS
753else
754 enable_module=$enable_trd
755fi
756AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
757AC_MSG_CHECKING([whether to compile TRD library])
758AC_MSG_RESULT([$enable_module])
759AC_SUBST([ALITRD_LIBS])
760
761dnl ------------------------------------------------------------------
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 ------------------------------------------------------------------
801AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
802
803ALIMUON_LIBS=
804CHECK_HLTMODULE([dimuon],
805 [AliMpExMap.h AliMUONTriggerIO.h],
806 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
807 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
808 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
809 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
810
811if test "x$enable_module" = "xmissheader"; then
812 enable_module="no...requires.AliRoot>=v4-08-Release"
813 enable_muon="no...requires.AliRoot>=v4-08-Release"
814elif test "x$enable_module" = "xforce"; then
815 enable_muon="yes"
816else
817 enable_muon=$enable_module
818fi
819
820if test "x$enable_muon" = "xyes" ; then
821 AC_DEFINE(HLT_MUON)
822 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
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++)
841else
842 enable_module=$enable_muon
843fi
844AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
845AC_MSG_CHECKING([whether to compile MUON library])
846AC_MSG_RESULT([$enable_module])
847AC_SUBST([ALIMUON_LIBS])
848
849dnl ------------------------------------------------------------------
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
871else
872 enable_module=$enable_trigger
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],
884 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
885 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
886 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
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
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
912fi
913
914if test "x$enable_its" = "xyes" ; then
915 AC_DEFINE(HLT_ITS)
916 ALIITS_LIBS=$ALIHLTMODULE_LIBS
917else
918 enable_module=$enable_its
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 ------------------------------------------------------------------
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
936 enable_module="no...header.missing"
937 enable_comp="no...header.missing"
938elif test "x$enable_module" = "xforce"; then
939 enable_comp="yes"
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
947else
948 enable_module=$enable_comp
949fi
950AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
951AC_MSG_CHECKING([whether to compile comp library])
952AC_MSG_RESULT([$enable_module])
953AC_SUBST([ALICOMP_LIBS])
954
955dnl ------------------------------------------------------------------
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])
962if test "x$have_aliroot" = "xno" ; then
963 enable_aliroot_logging=yes # this means 'disable'
964fi
965if test "x$enable_aliroot_logging" != "xno" ; then
966 AC_DEFINE(NOALIROOT_LOGGING)
967fi
968AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
969AC_MSG_RESULT([$enable_aliroot_logging])
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 ------------------------------------------------------------------
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 ------------------------------------------------------------------
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 ------------------------------------------------------------------
1009dnl
1010dnl Documentation
1011dnl
1012AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1013AC_PATH_PROG(PERL, perl)
1014AC_PATH_PROG(DOXYGEN, doxygen)
1015AC_ARG_ENABLE(dot,
1016 [AC_HELP_STRING([--enable-dot],
1017 [enable dot documentation generator])],
1018 [],[enable_dot=no])
1019HAVE_DOT=NO
1020DOT_PATH=
1021AC_PATH_PROG(DOT, dot)
1022if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1023 HAVE_DOT=YES
1024 DOT_PATH=`dirname $DOT`
1025fi
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")
1048AC_SUBST([HAVE_DOT])
1049AC_SUBST([DOT_PATH])
1050
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
1058dnl ------------------------------------------------------------------
1059AC_MSG_NOTICE([---------------------------------------------- ])
1060AC_MSG_NOTICE([ build summary ])
1061AC_MSG_NOTICE([---------------------------------------------- ])
1062
1063AC_CONFIG_FILES([Makefile
1064 BASE/Makefile
1065 BASE/setenv.sh
1066 BASE/setenv.csh
1067 BASE/HOMER/Makefile
1068 BASE/util/Makefile
1069 BASE/interface/Makefile
1070 BASE/test/Makefile
1071 BASE/interface/test/Makefile
1072 doc/Makefile
1073 doc/doxygen.conf
1074 doc/doxymodule.conf])
1075
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
1083 rec/test/Makefile
1084 shuttle/Makefile
1085 pendolino/Makefile
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
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
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
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
1143
1144AC_OUTPUT
1145dnl
1146dnl EOF
1147dnl
1148