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