]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/configure.ac
adding component library for HLT system benchmarks and profiling; not yet part of...
[u/mrichter/AliRoot.git] / HLT / configure.ac
1 dnl -*- mode: autoconf -*- 
2 dnl
3 dnl $Id$
4 dnl template for the configuration script for the Alice HLT 
5 dnl framework and components
6 dnl 
7 dnl ------------------------------------------------------------------
8
9 dnl Take either the AliRoot tag as version id or the current revision
10 AC_INIT([Alice High Level Trigger] , 
11         m4_esyscmd([url=`svn info 2> /dev/null | grep "URL:" | cut -d: -f3 | sed -e 's|[/]*HLT[/]*$||' | sed -e 's|^[/]*||g' | cut -d '/' -f 4`; \
12                     revision=`svn info 2> /dev/null | grep "Revision:" | cut -d ' ' -f 2 | cut -d '/' -f 4`; \
13                     if test "x$url" != "x"; then echo -n $url; \
14                     elif test "x$revision" != "x"; then echo -n $revision ; \
15                     elif test -e .revision && test x`cat .revision` != x; then \
16                        cat .revision; \
17                     else \
18                        echo -n invalid-version; \
19                     fi]),
20         [Matthias.Richter@ift.uib.no], 
21         [alice-hlt])
22
23 dnl ------------------------------------------------------------------
24 dnl the package from CVS contains the old Makefiles as well. In order to
25 dnl prevent them from becoming overwritten, we require a separate build
26 dnl directory
27 if test "`dirname $0`" = "." ; then
28    AC_ERROR([please run the script from a separate build directory])
29 fi
30
31 dnl ------------------------------------------------------------------
32 AC_CANONICAL_SYSTEM
33 AC_PREFIX_DEFAULT(${PWD})
34 AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
35 AM_INIT_AUTOMAKE
36 AC_PROG_CC
37 AC_PROG_CXX
38 AC_PROG_LIBTOOL
39
40 AC_DEBUG
41 AC_OPTIMIZATION
42 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
43
44 dnl ------------------------------------------------------------------
45 dnl A warning posted into the auto-generated files
46 dnl Does NOT concern this file ;-)
47 AUTOGENERATED_WARNING="!!!!!!!    DO NOT EDIT THIS FILE !!!!!!"
48 AC_SUBST([AUTOGENERATED_WARNING])
49
50 dnl ------------------------------------------------------------------
51 dnl
52 dnl Check for ROOT
53 dnl
54 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
55 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
56 AC_SUBST([ROOTSYS])
57 ROOTBINDIR=`dirname $ROOTEXEC`
58 AC_SUBST([ROOTBINDIR])
59
60 dnl test for additional required root libraries and headers
61 LIBS='-ldl'
62 if 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++)
96 fi
97
98 dnl ------------------------------------------------------------------
99 # TODO: make this configurable through arguments
100 #Define whether you want to run with ALIROOT or only ROOT
101 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
102 ALIHLT_USEPACKAGE=ALIROOT
103 #ALIHLT_USEPACKAGE=ROOT
104 #ALIHLT_USEPACKAGE=STANDALONE
105 AC_DEFINE(use_aliroot)
106 AC_DEFINE(use_root)
107 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
108 save_CPPFLAGS=$CPPFLAGS
109 save_LDFLAGS=$LDFLAGS
110 save_LIBS=$LIBS
111
112 dnl ------------------------------------------------------------------
113 dnl check for AliRoot features
114 AC_LANG_PUSH(C++)
115 have_aliroot=no
116 AC_ARG_WITH(aliroot,[  --with-aliroot   top of the AliRoot installation],
117                     [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
118                     [])
119
120 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
121   dnl ------------------------------------------------------------------
122   dnl Try to estimate the system architecture
123   case $host_os:$host_cpu in
124   linux*:x86_64*)       alice_target='linuxx8664gcc'            ;;
125   linux*)               alice_target='linux'                    ;;
126   *)                    alice_target='unknown'                  ;;
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])
152 fi
153
154 AC_MSG_CHECKING([for AliRoot])
155 if test "x$ALICE_ROOT" != "x" \
156    && test -d ${ALIROOTBINDIR} \
157    && test -d ${ALIROOTLIBDIR} \
158    && test -d ${ALIROOTINCDIR}; then
159   have_aliroot=$ALICE_ROOT
160 else
161   ALIROOTBINDIR=
162   ALIROOTLIBDIR=
163   ALIROOTINCDIR=
164 fi
165 AC_MSG_RESULT([$have_aliroot])
166
167 if test ! "x$have_aliroot" = "xno" ; then
168   ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169   ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
170   ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
171   save_CPPFLAGS=$CPPFLAGS
172   save_LDFLAGS=$LDFLAGS
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                                    TClonesArray* a=new TClonesArray("AliExternalTrackParam");
267                                    a->SetName("SomeObject");
268                                    esd.AddObject(a);
269                                    esd.WriteToTree(tree);
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   dnl The AliShuttleInterface was changed in rev 29388. Some return types
325   dnl had been const, now changed according to gcc 4.3 warnings 
326   AC_MSG_CHECKING(for version of AliShuttleInterface.h)
327     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
328     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
329     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
330     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
331                                     [class dummy : public AliShuttleInterface {
332                                      public:
333                                        const UInt_t GetStartTimeDCSQuery() {;}
334                                      };])],
335                                     [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
336                                      alishuttleinterface_version=pre.rev.29388],
337                                     [alishuttleinterface_version=up.to.date])
338   AC_MSG_RESULT([$alishuttleinterface_version])
339
340   CPPFLAGS=$save_CPPFLAGS
341   LDFLAGS=$save_LDFLAGS
342   LIBS=$save_LIBS
343 fi # if test ! "x$have_aliroot" = "xno"
344
345 AC_LANG_POP(C++)
346 AC_SUBST([ALICE_ROOT])
347 AC_SUBST([ALIROOT_CPPFLAGS])
348 AC_SUBST([ALIROOT_LDFLAGS])
349 AC_SUBST([ALIROOTBINDIR])
350 AC_SUBST([ALIROOTLIBDIR])
351 AC_SUBST([ALIROOT_LIBS])
352 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
353
354 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
355 HLTBASE_LDFLAGS=
356 AC_SUBST([HLTBASE_CPPFLAGS])
357 AC_SUBST([HLTBASE_LDFLAGS])
358
359 dnl ------------------------------------------------------------------
360 dnl check for the HLT PubSub Framework
361 dnl namely for the existence of the HOMER library
362 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
363 dnl package. It os though possible to choose an external. library
364 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
365 dnl got the name libAliHLTHOMER
366 AC_MSG_CHECKING([for HLT PubSub Framework])
367 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
368                     [],
369                     [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
370 if test -z $with_pubsub || ! test -d $with_pubsub ; then
371   with_pubsub=no
372 fi
373 AC_MSG_RESULT([$with_pubsub])
374 HOMER_VERSION=2
375 HOMER_LIBS=
376
377 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
378 if test "x$with_pubsub" != "xno" ; then
379   save_CPPFLAGS=$CPPFLAGS
380   save_LDFLAGS=$LDFLAGS
381   save_LIBS=$LIBS
382   # currently the different versions of the HLT PubSub framework have a different
383   # directory layout
384   if test -d ${with_pubsub}/include/HOMER ; then
385     # the 'early' location of the include files with separated HOMER sub dirs
386     HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
387   elif test -d ${with_pubsub}/include/Util/HOMER ; then
388     # location for HLT Framework versions after Sep 2006
389     HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
390   elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
391     # fall back if include files were not installed (versions after Sep 06)
392     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
393   else
394     # fall back if include files were not installed (versions before Sep 06)
395     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
396   fi
397   HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
398
399   AC_ARG_ENABLE(pubsub-debug,
400     [AC_HELP_STRING([--disable-pubsub-debug],
401         [force the production version of the PubSub framework])],
402     [],[enable_pubsub_debug=yes])
403   homer_type="none"
404   HOMER_TARGET="`uname -s`-`uname -m`"
405   AC_MSG_CHECKING([for HLT PubSub Framework release type])
406   if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
407     homer_type="production"
408     HOMER_TARGET="${HOMER_TARGET}-release"
409   elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
410     homer_type="debug"
411     HOMER_TARGET="${HOMER_TARGET}-debug"
412   fi
413   AC_MSG_RESULT([${homer_type}])
414   HOMERREADER_HEADER=HOMERReader.h
415   HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
416   HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
417   HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
418   CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
419   LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
420   LIBS="$save_LIBS "
421   with_homer=no
422   AC_LANG_PUSH(C++)
423   AC_CHECK_HEADER([$HOMERREADER_HEADER],
424     [ AC_CHECK_LIB([HOMER],[_init],
425       [with_homer=yes
426        HOMER_LIBS="-lHOMER"],
427       [ AC_CHECK_LIB([HOMERReader],[_init],
428                      [with_homer=yes
429                       HOMER_LIBS="-lHOMERReader"])])
430       LIBS="$LIBS $HOMER_LIBS"
431       AC_MSG_CHECKING([version of HOMER library])
432       dnl The Homer library has no versioning, so we do our own
433       dnl version           description
434       dnl ----------------------------------------------------------------------
435       dnl   1          inintial version
436       dnl   2          GetBlockStatusFlags added to the interface
437       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
438                                       [HOMERReader reader("dummy", 0);
439                                        reader.GetBlockStatusFlags(0);])],
440                                       [],
441                                       [HOMER_VERSION=1])
442       AC_MSG_RESULT([$HOMER_VERSION])
443   ],
444   [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
445   AC_LANG_POP(C++)
446   HOMER_INBUILT_LIB=
447 else
448 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
449   topdir=`dirname $0`
450   HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
451   HOMERREADER_HEADER=AliHLTHOMERReader.h
452   HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
453   HOMER_BINDIR=
454   HOMER_LIBDIR=
455   HOMER_LDFLAGS=
456 fi
457
458   if test "x$with_homer" = "xno" ; then
459     HOMER_CPPFLAGS=
460     HOMER_LDFLAGS=
461     HOMER_LIBS=
462   else
463     HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
464     AC_DEFINE(HAVE_HOMERREADER)
465   fi
466   CPPFLAGS="$save_CPPFLAGS"
467   LDFLAGS="$save_LDFLAGS"
468   LIBS="$save_LIBS"  
469
470 AC_SUBST([HOMERREADER_HEADER])
471 AC_SUBST([HOMER_INBUILT_LIB])
472 AC_SUBST([HOMER_CPPFLAGS])
473 AC_SUBST([HOMER_LDFLAGS])
474 AC_SUBST([HOMER_LIBDIR])
475 AC_SUBST([HOMER_BINDIR])
476 AC_SUBST([HOMER_LIBS])
477
478 dnl ------------------------------------------------------------------
479 AC_ARG_ENABLE(all,
480   [AC_HELP_STRING([--disable-all],
481       [disable all detector modules, individual modules can be switched on by --enable-det])],
482   [disable_all=yes],[])
483
484 dnl ------------------------------------------------------------------
485 AC_MSG_CHECKING([whether to impose strict coding conventions])
486 AC_ARG_ENABLE(strict,
487   [AC_HELP_STRING([--disable-strict],
488       [disable coding convention checks ])],
489   [],[enable_strict=yes])
490 if test "x$enable_strict" = "xyes" ; then
491    CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
492 fi
493 AC_MSG_RESULT([$enable_strict])
494
495 dnl ------------------------------------------------------------------
496 AC_MSG_CHECKING([whether to enable component statistics])
497 AC_ARG_ENABLE(component-stat,
498   [AC_HELP_STRING([--enable-component-stat],
499       [enable component statistics ])],
500   [],[enable_component_stat=no])
501 if test "x$enable_component_stat" = "xyes" ; then
502    AC_DEFINE(HLT_COMPONENT_STATISTICS)
503 fi
504 AC_MSG_RESULT([$enable_component_stat])
505
506 dnl ------------------------------------------------------------------
507 dnl ----  module checks
508 dnl ------------------------------------------------------------------
509 save_CPPFLAGS=$CPPFLAGS
510 save_LDFLAGS=$LDFLAGS
511 save_LIBS=$LIBS
512
513 dnl ------------------------------------------------------------------
514 AC_MSG_CHECKING([whether to compile sample library])
515 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
516 AC_ARG_ENABLE(sample,
517   [AC_HELP_STRING([--disable-sample],
518       [compile the sample library ])],
519   [],
520   [if test "x$have_aliroot" = "xno" ; then
521      enable_sample="no...requires.AliRoot"
522    else
523      enable_sample=yes
524    fi
525   ])
526
527 if test "x$enable_sample" = "xyes" ; then 
528   AC_DEFINE(HLT_SAMPLE)
529 fi
530 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
531 AC_MSG_RESULT([$enable_sample])
532
533 dnl ------------------------------------------------------------------
534 AC_MSG_CHECKING([whether to compile util library])
535 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
536 AC_ARG_ENABLE(util,
537   [AC_HELP_STRING([--disable-util],
538       [compile the util library ])],
539   [],
540   [if test "x$have_aliroot" = "xno" ; then
541      enable_util="no...requires.AliRoot"
542    else
543      enable_util=yes
544    fi
545   ])
546
547 if test "x$enable_util" = "xyes" ; then 
548   AC_DEFINE(HLT_UTIL)
549 fi
550 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
551 AC_MSG_RESULT([$enable_util])
552
553 dnl ------------------------------------------------------------------
554 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
555
556 ALITPC_LIBS=
557 CHECK_HLTMODULE([tpc],
558                 [AliTPCRawStream.h], 
559                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
560                 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
561                 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
562                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
563
564 if test "x$enable_module" = "xmissheader"; then
565   enable_module="no...missing.headers"
566   enable_tpc=$enable_module
567 elif test "x$enable_module" = "xforce"; then
568   enable_tpc="yes"
569 else
570   enable_tpc=$enable_module
571 fi
572
573 if test "x$enable_tpc" = "xyes" ; then 
574   AC_LANG_PUSH(C++)
575   AC_DEFINE(HLT_TPC)
576   ALITPC_LIBS=$ALIHLTMODULE_LIBS
577   dnl
578   dnl Check for functionality in the TPC reconstruction required for online
579   dnl processing
580   dnl 
581   have_tpc_hltoffline_rec=no
582   AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
583     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
584     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
585     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
586     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
587                                        #include <AliTPCclustererMI.h>   
588                                        #include <TObjArray.h>], 
589                                     [AliTPCtrackerMI tracker;
590                                        TObjArray* array=NULL;
591                                        tracker.LoadClusters(array);
592                                        AliTPCclustererMI cl(NULL, NULL);
593                                        cl.GetOutputClonesArray();])],
594                                     [have_tpc_hltoffline_rec=yes], 
595                                       [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
596     LIBS=$save_LIBS
597   AC_MSG_RESULT([$have_tpc_hltoffline_rec])
598
599   AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
600   AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
601
602   have_tpc_mapping=no
603   if test ! "x$have_aliroot" = "xno" ; then
604     # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC 
605     # which is stored in the TPC/mapping/Patchx.data files from
606     # AliRoot version v4-04-Release (May 2006)
607     AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
608     TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
609     AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], 
610                    [have_tpc_mapping=yes
611                     AC_SUBST(TPC_PAD_MAPPING_PATH)
612                     AC_DEFINE(HAVE_TPC_MAPPING)],
613                    [])
614     
615   fi
616   AC_MSG_CHECKING([for TPC mapping layout])
617   AC_MSG_RESULT([$have_tpc_mapping])
618   AC_LANG_POP(C++)
619
620 else
621   enable_module=$enable_tpc
622 fi
623 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
624 AC_MSG_CHECKING([whether to compile TPC library])
625 AC_MSG_RESULT([$enable_module])
626 AC_SUBST([ALITPC_LIBS])
627
628 dnl ------------------------------------------------------------------
629 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
630
631 CHECK_HLTMODULE([rcu],
632                 [AliAltroDecoder.h], 
633                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
634                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
635                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
636                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
637
638 if test "x$enable_module" = "xmissheader"; then
639   enable_module="no...missing.headers"
640   enable_rcu=$enable_module
641 elif test "x$enable_module" = "xforce"; then
642   enable_rcu="yes"
643 else
644   AC_LANG_PUSH(C++)
645   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
646   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
647   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
648   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>], 
649                                   [AliAltroDecoder decoder;
650                                   decoder.CopyBackward(NULL, 0);])],
651                                   [enable_rcu=$enable_module], 
652                                   [enable_module="no...requires.AliRoot>v4-10-Release"
653                                    enable_rcu="no...requires.AliRoot>v4-10-Release"])
654   CPPFLAGS=$save_CPPFLAGS
655   LDFLAGS=$save_LDFLAGS
656   LIBS=$save_LIBS
657   AC_LANG_POP(C++)
658 fi
659
660 if test "x$enable_rcu" = "xyes" ; then 
661   AC_DEFINE(HLT_RCU)
662 else
663   enable_module=$enable_rcu
664 fi
665 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
666 AC_MSG_CHECKING([whether to compile RCU library])
667 AC_MSG_RESULT([$enable_module])
668 AC_SUBST([ALIRCU_LIBS])
669
670 dnl ------------------------------------------------------------------
671 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
672   
673 ALIPHOS_LIBS=
674 CHECK_HLTMODULE([phos],
675                 [], [$ALIROOT_CPPFLAGS],
676                 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
677                 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
678                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
679
680 if test "x$enable_module" = "xmissheader"; then
681   enable_module="no...requires.AliRoot>v4-05-07"
682   enable_phos=$enable_module
683 elif test "x$enable_module" = "xforce"; then
684   enable_phos="yes"
685 else
686   have_alicalorawstream=no
687   if test ! "x$have_aliroot" = "xno" ; then
688     AC_LANG_PUSH(C++)
689     save_CPPFLAGS="$CPPFLAGS"
690     # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
691     #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
692     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
693     AC_MSG_CHECKING([for AliCaloRawStream.h usability])
694     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
695                                         #include <AliCaloRawStream.h>], 
696                                        [int i])],
697                                        [AC_DEFINE(HAVE_ALICALORAWSTREAM)
698                                         have_alicalorawstream=yes], 
699                                        [])
700     AC_MSG_RESULT([$have_aliphosrecoparam])
701     AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
702     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>], 
703                                        [AliPHOSRecoParam param;
704                                         param.GetEMCClusteringThreshold()])],
705                                        [have_aliphosrecoparam=yes], 
706                                        [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
707     AC_MSG_RESULT([$have_alicalorawstream])
708     AC_LANG_POP(C++)
709     CPPFLAGS="$save_CPPFLAGS"
710   fi
711   if test "x$have_alicalorawstream" != "xyes"; then
712     enable_phos="no...requires.AliRoot>v4-05-07"
713   else
714     enable_phos=$enable_module
715   fi
716 fi
717
718 if test "x$enable_phos" = "xyes" ; then 
719   AC_DEFINE(HLT_PHOS)
720   ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
721 else
722   enable_module=$enable_phos
723 fi
724 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
725 AC_MSG_CHECKING([whether to compile PHOS library])
726 AC_MSG_RESULT([$enable_module])
727 AC_SUBST([ALIPHOS_LIBS])
728
729 dnl ------------------------------------------------------------------
730 AH_TEMPLATE([HLT_TRD],[hlt trd library])
731   
732 ALITRD_LIBS=
733 CHECK_HLTMODULE([trd],
734                 [], [],
735                 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
736                 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
737                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
738
739 if test "x$enable_module" = "xmissheader"; then
740   enable_module="no...requires.AliRoot>v4-07-Release"
741   enable_trd=$enable_module
742 elif test "x$enable_module" = "xforce"; then
743   enable_trd="yes"
744 else
745   enable_trd=$enable_module
746   if test "x$enable_trd" = "xyes" ; then
747     AC_LANG_PUSH(C++)
748     save_CPPFLAGS="$CPPFLAGS"
749     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
750     # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
751     # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
752     # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
753     # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
754     AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
755     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>], 
756                                        [AliTRDReconstructor r;
757                                        r.SetClusters(0)])],
758                                        [], 
759                                        [enable_trd="no...requires.AliRoot>v4-14-Release"])
760     AC_MSG_RESULT([$enable_trd])       
761     AC_LANG_POP(C++)
762     CPPFLAGS="$save_CPPFLAGS"
763   fi
764 fi
765
766 if test "x$enable_trd" = "xyes" ; then 
767   AC_DEFINE(HLT_TRD)
768   ALITRD_LIBS=$ALIHLTMODULE_LIBS
769 else
770   enable_module=$enable_trd
771 fi
772 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
773 AC_MSG_CHECKING([whether to compile TRD library])
774 AC_MSG_RESULT([$enable_module])
775 AC_SUBST([ALITRD_LIBS])
776
777 dnl ------------------------------------------------------------------
778 AH_TEMPLATE([HLT_FMD],[hlt fmd library])
779
780 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
781 CHECK_HLTMODULE([fmd],
782                 [], [],
783                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
784                 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
785                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
786
787 if test "x$enable_module" = "xmissheader"; then
788   enable_module="no...missing.headers"
789   enable_fmd=$enable_module
790 elif test "x$enable_module" = "xforce"; then
791   enable_fmd="yes"
792 else
793   enable_fmd=$enable_module
794 fi
795
796 if test "x$enable_fmd" = "xyes" ; then
797   AC_DEFINE(HLT_FMD)
798   ALIFMD_LIBS=$ALIHLTMODULE_LIBS
799 else
800   enable_module=$enable_fmd
801 fi
802 AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
803 AC_MSG_CHECKING([whether to compile FMD library])
804 AC_MSG_RESULT([$enable_module])
805 AC_SUBST([ALIFMD_LIBS])
806
807 dnl ------------------------------------------------------------------
808 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
809
810 ALIMUON_LIBS=
811 CHECK_HLTMODULE([dimuon],
812                 [AliMpExMap.h AliMUONTriggerIO.h], 
813                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
814                 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
815                 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
816                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
817
818 if test "x$enable_module" = "xmissheader"; then
819   enable_module="no...requires.AliRoot>=v4-08-Release"
820   enable_muon=$enable_module
821 elif test "x$enable_module" = "xforce"; then
822   enable_muon="yes"
823 else
824   enable_muon=$enable_module
825 fi
826
827 if test "x$enable_muon" = "xyes" ; then 
828   AC_DEFINE(HLT_MUON)
829   ALIMUON_LIBS=$ALIHLTMODULE_LIBS
830   AC_LANG_PUSH(C++)
831   save_CPPFLAGS="$CPPFLAGS"
832
833   dnl
834   dnl Check for functionality GetRawStream AliMUONDigitMaker.h
835   dnl 
836   have_muon_digitmaker_getrawstream=no
837   AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
838     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
839     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
840     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
841     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>], 
842                                     [AliMUONDigitMaker dm;
843                                        dm.GetRawStreamTracker();])],
844                                     [have_muon_digitmaker_getrawstream=yes], 
845                                       [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
846     LIBS=$save_LIBS
847   AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
848   CPPFLAGS="$save_CPPFLAGS"
849
850   AC_LANG_POP(C++)
851 else
852   enable_module=$enable_muon
853 fi
854 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
855 AC_MSG_CHECKING([whether to compile MUON library])
856 AC_MSG_RESULT([$enable_module])
857 AC_SUBST([ALIMUON_LIBS])
858
859 dnl ------------------------------------------------------------------
860 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
861
862 ALITRIGGER_LIBS=
863 CHECK_HLTMODULE([trigger],
864                 [], [$ALIROOT_CPPFLAGS],
865                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
866                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
867                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
868
869 if test "x$enable_module" = "xmissheader"; then
870   enable_module="no...header.missing"
871   enable_trigger=$enable_module
872 elif test "x$enable_module" = "xforce"; then
873   enable_trigger="yes"
874 else
875   enable_trigger=$enable_module
876 fi
877
878 if test "x$enable_trigger" = "xyes" ; then 
879   AC_DEFINE(HLT_TRIGGER)
880   ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
881 else
882   enable_module=$enable_trigger
883 fi
884 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
885 AC_MSG_CHECKING([whether to compile Trigger library])
886 AC_MSG_RESULT([$enable_module])
887 AC_SUBST([ALITRIGGER_LIBS])
888
889 dnl ------------------------------------------------------------------
890 AH_TEMPLATE([HLT_ITS],[hlt its library])
891
892 ALIITS_LIBS=
893 CHECK_HLTMODULE([its],
894                 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
895                 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
896                 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
897                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
898
899 if test "x$enable_module" = "xmissheader"; then
900   enable_module="no...header.missing"
901   enable_its=$enable_module
902 elif test "x$enable_module" = "xforce"; then
903   enable_its="yes"
904 else
905   enable_its=$enable_module
906   if test "x$enable_its" = "xyes" ; then
907     AC_LANG_PUSH(C++)
908     save_CPPFLAGS="$CPPFLAGS"
909     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
910     # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
911     # require AliVertexer::GetNominalPos()
912     AC_MSG_CHECKING([for required functions in AliITSVertexer])
913     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>], 
914                                        [AliITSVertexerZ v;
915                                        v.GetNominalPos()])],
916                                        [], 
917                                        [enable_its="no...requires.AliRoot>v4-13-Release"])
918     AC_MSG_RESULT([$enable_its])       
919     AC_LANG_POP(C++)
920     CPPFLAGS="$save_CPPFLAGS"
921   fi
922 fi
923
924 if test "x$enable_its" = "xyes" ; then 
925   AC_DEFINE(HLT_ITS)
926   ALIITS_LIBS=$ALIHLTMODULE_LIBS
927 else
928   enable_module=$enable_its
929 fi
930 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
931 AC_MSG_CHECKING([whether to compile ITS library])
932 AC_MSG_RESULT([$enable_module])
933 AC_SUBST([ALIITS_LIBS])
934
935 dnl ------------------------------------------------------------------
936 AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
937
938 ALIEMCAL_LIBS=
939 CHECK_HLTMODULE([emcal],
940                 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL],
941                 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
942                 [EMCALrec EMCALsim EMCALbase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
943                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
944
945 if test "x$enable_module" = "xmissheader"; then
946   enable_module="no...header.missing"
947   enable_emcal=$enable_module
948 elif test "x$enable_module" = "xforce"; then
949   enable_emcal="yes"
950 else
951   enable_emcal=$enable_module
952 fi
953
954 if test "x$enable_emcal" = "xyes" ; then 
955   AC_DEFINE(HLT_EMCAL)
956   ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
957 else
958   enable_module=$enable_emcal
959 fi
960 AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
961 AC_MSG_CHECKING([whether to compile EMCAL library])
962 AC_MSG_RESULT([$enable_module])
963 AC_SUBST([ALIEMCAL_LIBS])
964
965 dnl ------------------------------------------------------------------
966 AH_TEMPLATE([HLT_COMP],[hlt comp library])
967
968 ALICOMP_LIBS=
969 CHECK_HLTMODULE([comp],
970                 [], [$ALIROOT_CPPFLAGS],
971                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
972                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
973                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
974
975 if test "x$enable_module" = "xmissheader"; then
976   enable_module="no...header.missing"
977   enable_comp=$enable_module
978 elif test "x$enable_module" = "xforce"; then
979   enable_comp="yes"
980 else
981   enable_comp=$enable_module
982 fi
983
984 if test "x$enable_comp" = "xyes" ; then 
985   AC_DEFINE(HLT_COMP)
986   ALICOMP_LIBS=$ALIHLTMODULE_LIBS
987 else
988   enable_module=$enable_comp
989 fi
990 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
991 AC_MSG_CHECKING([whether to compile comp library])
992 AC_MSG_RESULT([$enable_module])
993 AC_SUBST([ALICOMP_LIBS])
994
995 dnl ------------------------------------------------------------------
996 AC_MSG_CHECKING([whether to disable AliRoot logging])
997 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
998 AC_ARG_ENABLE(aliroot-logging,
999   [AC_HELP_STRING([--disable-aliroot-logging],
1000       [disable logging through AliRoot logging methods])],
1001   [],[enable_aliroot_logging=no])
1002 if test "x$have_aliroot" = "xno" ; then
1003   enable_aliroot_logging=yes # this means 'disable'
1004 fi
1005 if test "x$enable_aliroot_logging" != "xno" ; then 
1006   AC_DEFINE(NOALIROOT_LOGGING)
1007 fi
1008 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1009 AC_MSG_RESULT([$enable_aliroot_logging])
1010
1011 dnl ------------------------------------------------------------------
1012 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1013 AH_TEMPLATE([DOMC],[MC saving])
1014 AC_ARG_ENABLE(mc-saving,
1015   [AC_HELP_STRING([--enable-mc-saving],
1016       [enable saving MC data through the chain])],
1017   [],[enable_mc_saving=no])
1018 if test "x$enable_mc_saving" = "xyes" ; then 
1019   AC_DEFINE(DOMC)
1020 fi
1021 AC_MSG_RESULT([$enable_mc_saving])
1022
1023 dnl ------------------------------------------------------------------
1024 dnl certainly something old, but we keep the define
1025 AC_MSG_CHECKING([whether to use ROWHOUGH])
1026 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1027 AC_ARG_ENABLE(rowhough,
1028   [AC_HELP_STRING([--enable-rowhough],
1029       [use ROWHOUGH ])],
1030   [],[enable_rowhough=no])
1031 if test "x$enable_rowhough" = "xyes" ; then 
1032   AC_DEFINE(USEROWHOUGH)
1033 fi
1034 AC_MSG_RESULT([$enable_rowhough])
1035
1036 dnl ------------------------------------------------------------------
1037 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1038 dnl stand-alone build system. This is most likely something old we can
1039 dnl get rid off later, or do something more reasonable. Since the define
1040 dnl needs the quotes they have to be  escaped. This works well for the
1041 dnl Makefile but not for the configure script. So we have to add the
1042 dnl defines after all the other checks.
1043 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1044 if test ! "x$have_aliroot" = "xno" ; then
1045   CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1046 fi
1047
1048 dnl ------------------------------------------------------------------
1049 dnl
1050 dnl Documentation
1051 dnl
1052 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1053 AC_PATH_PROG(PERL, perl)
1054 AC_PATH_PROG(DOXYGEN, doxygen)
1055 AC_ARG_ENABLE(dot,
1056   [AC_HELP_STRING([--enable-dot],
1057       [enable dot documentation generator])],
1058   [],[enable_dot=no])
1059 HAVE_DOT=NO
1060 DOT_PATH=
1061 AC_PATH_PROG(DOT, dot)
1062 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1063    HAVE_DOT=YES
1064    DOT_PATH=`dirname $DOT`
1065 fi
1066
1067 AC_MSG_CHECKING([for documentation mode])
1068 AC_ARG_ENABLE(doc,
1069   [AC_HELP_STRING([--disable-doc],
1070       [disable documentation build; monolithic build --enable-doc=mono ])],
1071   [],[enable_doc=modules])
1072
1073 if test "x$DOXYGEN" = "x" ; then
1074    enable_doc=no.doxygen
1075 elif test "x$enable_doc" = "xyes" ; then
1076    enable_doc=yes
1077 elif test ! "x$enable_doc" = "xmono" && \
1078      test ! "x$enable_doc" = "xmodules"  && \
1079      test ! "x$enable_doc" = "xno"; then
1080    enable_doc=no
1081    AC_MSG_WARN([unknown option])
1082 fi
1083 if test "x$enable_doc" = "xno" ; then
1084    enable_doc=off
1085    DOXYGEN=
1086 fi
1087
1088 AC_MSG_RESULT([$enable_doc])
1089 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1090 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
1091 AC_SUBST([HAVE_DOT])
1092 AC_SUBST([DOT_PATH])
1093
1094 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1095 dnl echo $HAVE_SRC_SUBDIR
1096 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1097 dnl   HAVE_SRC_SUBDIR=
1098 dnl fi
1099 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1100
1101 dnl ------------------------------------------------------------------
1102 AC_MSG_NOTICE([---------------------------------------------- ])
1103 AC_MSG_NOTICE([                build summary                  ])
1104 AC_MSG_NOTICE([---------------------------------------------- ])
1105
1106 AC_CONFIG_FILES([Makefile 
1107                  BASE/Makefile
1108                  BASE/setenv.sh
1109                  BASE/setenv.csh
1110                  BASE/HOMER/Makefile
1111                  BASE/util/Makefile
1112                  BASE/interface/Makefile
1113                  BASE/test/Makefile
1114                  BASE/interface/test/Makefile
1115                  doc/Makefile
1116                  doc/doxygen.conf
1117                  doc/doxymodule.conf])
1118
1119 dnl AliRoot and installation directory for libraries
1120 dnl 
1121 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1122 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1123 if test "x$have_aliroot" != "xno"; then 
1124   AC_CONFIG_FILES([sim/Makefile  
1125                    rec/Makefile  
1126                    rec/test/Makefile     
1127                    rec/startAliEVE-barrel-tracks.sh
1128                    shuttle/Makefile
1129                    pendolino/Makefile
1130                    benchmark/Makefile
1131                    ])
1132 fi
1133 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1134 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1135 AC_MSG_NOTICE([libdir set to $libdir])
1136 fi
1137
1138 AC_MSG_NOTICE([compile sample library: $enable_sample])
1139 if test "x$enable_sample" = "xyes"; then 
1140   AC_CONFIG_FILES([SampleLib/Makefile])
1141 fi
1142
1143 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1144 if test "x$enable_rcu" = "xyes"; then 
1145   AC_CONFIG_FILES([RCU/Makefile
1146                    RCU/test/Makefile
1147                    ])
1148 fi
1149
1150 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1151 if test "x$enable_tpc" = "xyes"; then 
1152   AC_CONFIG_FILES([TPCLib/Makefile            
1153                    TPCLib/test/Makefile       
1154                    TPCLib/mapping2array.cxx     
1155                    TPCLib/OnlineDisplay/Makefile
1156                    TPCLib/EVE/Makefile
1157                    ])
1158 fi
1159
1160 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1161 if test "x$enable_phos" = "xyes"; then 
1162   AC_CONFIG_FILES([PHOS/Makefile])
1163 fi
1164
1165 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1166 if test "x$enable_trd" = "xyes"; then 
1167   AC_CONFIG_FILES([TRD/Makefile])
1168 fi
1169
1170 AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1171 if test "x$enable_fmd" = "xyes"; then 
1172   AC_CONFIG_FILES([FMD/Makefile])
1173 fi
1174
1175 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1176 if test "x$enable_muon" = "xyes"; then 
1177   AC_CONFIG_FILES([MUON/Makefile])
1178 fi
1179
1180 AC_MSG_NOTICE([compile ITS library: $enable_its])
1181 if test "x$enable_its" = "xyes"; then 
1182   AC_CONFIG_FILES([ITS/Makefile])
1183 fi
1184
1185 AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1186 if test "x$enable_emcal" = "xyes"; then 
1187   AC_CONFIG_FILES([EMCAL/Makefile])
1188 fi
1189
1190 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1191 if test "x$enable_trigger" = "xyes"; then 
1192   AC_CONFIG_FILES([trigger/Makefile])
1193 fi
1194
1195 AC_MSG_NOTICE([compile comp library: $enable_comp])
1196 if test "x$enable_comp" = "xyes"; then 
1197   AC_CONFIG_FILES([comp/Makefile])
1198 fi
1199
1200 AC_OUTPUT
1201 dnl
1202 dnl EOF
1203 dnl
1204