- fixing use of centrality class
[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   AC_CHECK_HEADER([AliVCluster.h], [], [AC_DEFINE(HAVE_NOT_ALIVCLUSTER)])
356
357   dnl
358   dnl required header files and libraries for modules
359   dnl
360
361   dnl
362   dnl Check for the interface of AliExternalTrackParam which has been changed
363   dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
364   dnl or higher)
365   externaltrackparam_version=1
366   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>], 
367                                   [AliExternalTrackParam trackparam;
368                                    Double_t param[[5]]; Double_t covar[[15]];
369                                    trackparam.Set(0., 0., param, covar);])],
370                                   [externaltrackparam_version=2],
371                                   [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
372   AC_MSG_CHECKING(for version of AliExternalTrackParam)
373   AC_MSG_RESULT($externaltrackparam_version)
374
375   dnl The AliShuttleInterface was changed in rev 29388. Some return types
376   dnl had been const, now changed according to gcc 4.3 warnings 
377   AC_MSG_CHECKING(for version of AliShuttleInterface.h)
378     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/"
379     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
380     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
381     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliShuttleInterface.h>],
382                                     [class dummy : public AliShuttleInterface {
383                                      public:
384                                        const UInt_t GetStartTimeDCSQuery() {;}
385                                      };])],
386                                     [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE)
387                                      alishuttleinterface_version=pre.rev.29388],
388                                     [alishuttleinterface_version=up.to.date])
389   AC_MSG_RESULT([$alishuttleinterface_version])
390
391   CPPFLAGS=$save_CPPFLAGS
392   LDFLAGS=$save_LDFLAGS
393   LIBS=$save_LIBS
394 fi # if test ! "x$have_aliroot" = "xno"
395
396 AC_LANG_POP(C++)
397 AC_SUBST([ALICE_ROOT])
398 AC_SUBST([ALIROOT_CPPFLAGS])
399 AC_SUBST([ALIROOT_LDFLAGS])
400 AC_SUBST([ALIROOTBINDIR])
401 AC_SUBST([ALIROOTLIBDIR])
402
403 ALIROOT_LIBS="$ALIROOT_LIBS $ADD_ROOTLIBS"
404 AC_SUBST([ALIROOT_LIBS])
405 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
406
407 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
408 HLTBASE_LDFLAGS=
409 AC_SUBST([HLTBASE_CPPFLAGS])
410 AC_SUBST([HLTBASE_LDFLAGS])
411
412 dnl ------------------------------------------------------------------
413 dnl check for the HLT PubSub Framework
414 dnl namely for the existence of the HOMER library
415 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
416 dnl package. It os though possible to choose an external. library
417 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
418 dnl got the name libAliHLTHOMER
419 AC_MSG_CHECKING([for HLT PubSub Framework])
420 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
421                     [],
422                     [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
423 if test -z $with_pubsub || ! test -d $with_pubsub ; then
424   with_pubsub=no
425 fi
426 AC_MSG_RESULT([$with_pubsub])
427 HOMER_VERSION=2
428 HOMER_LIBS=
429
430 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
431 if test "x$with_pubsub" != "xno" ; then
432   save_CPPFLAGS=$CPPFLAGS
433   save_LDFLAGS=$LDFLAGS
434   save_LIBS=$LIBS
435   # currently the different versions of the HLT PubSub framework have a different
436   # directory layout
437   if test -d ${with_pubsub}/include/HOMER ; then
438     # the 'early' location of the include files with separated HOMER sub dirs
439     HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
440   elif test -d ${with_pubsub}/include/Util/HOMER ; then
441     # location for HLT Framework versions after Sep 2006
442     HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
443   elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
444     # fall back if include files were not installed (versions after Sep 06)
445     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
446   else
447     # fall back if include files were not installed (versions before Sep 06)
448     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
449   fi
450   HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
451
452   AC_ARG_ENABLE(pubsub-debug,
453     [AC_HELP_STRING([--disable-pubsub-debug],
454         [force the production version of the PubSub framework])],
455     [],[enable_pubsub_debug=yes])
456   homer_type="none"
457   HOMER_TARGET="`uname -s`-`uname -m`"
458   AC_MSG_CHECKING([for HLT PubSub Framework release type])
459   if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
460     homer_type="production"
461     HOMER_TARGET="${HOMER_TARGET}-release"
462   elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
463     homer_type="debug"
464     HOMER_TARGET="${HOMER_TARGET}-debug"
465   fi
466   AC_MSG_RESULT([${homer_type}])
467   HOMERREADER_HEADER=HOMERReader.h
468   HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
469   HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
470   HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
471   CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
472   LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
473   LIBS="$save_LIBS "
474   with_homer=no
475   AC_LANG_PUSH(C++)
476   AC_CHECK_HEADER([$HOMERREADER_HEADER],
477     [ AC_CHECK_LIB([HOMER],[_init],
478       [with_homer=yes
479        HOMER_LIBS="-lHOMER"],
480       [ AC_CHECK_LIB([HOMERReader],[_init],
481                      [with_homer=yes
482                       HOMER_LIBS="-lHOMERReader"])])
483       LIBS="$LIBS $HOMER_LIBS"
484       AC_MSG_CHECKING([version of HOMER library])
485       dnl The Homer library has no versioning, so we do our own
486       dnl version           description
487       dnl ----------------------------------------------------------------------
488       dnl   1          inintial version
489       dnl   2          GetBlockStatusFlags added to the interface
490       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
491                                       [HOMERReader reader("dummy", 0);
492                                        reader.GetBlockStatusFlags(0);])],
493                                       [],
494                                       [HOMER_VERSION=1])
495       AC_MSG_RESULT([$HOMER_VERSION])
496   ],
497   [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
498   AC_LANG_POP(C++)
499   HOMER_INBUILT_LIB=
500 else
501 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
502   topdir=`dirname $0`
503   HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
504   HOMERREADER_HEADER=AliHLTHOMERReader.h
505   HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
506   HOMER_BINDIR=
507   HOMER_LIBDIR=
508   HOMER_LDFLAGS=
509 fi
510
511   if test "x$with_homer" = "xno" ; then
512     HOMER_CPPFLAGS=
513     HOMER_LDFLAGS=
514     HOMER_LIBS=
515   else
516     HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
517     AC_DEFINE(HAVE_HOMERREADER)
518   fi
519   CPPFLAGS="$save_CPPFLAGS"
520   LDFLAGS="$save_LDFLAGS"
521   LIBS="$save_LIBS"  
522
523 AC_SUBST([HOMERREADER_HEADER])
524 AC_SUBST([HOMER_INBUILT_LIB])
525 AC_SUBST([HOMER_CPPFLAGS])
526 AC_SUBST([HOMER_LDFLAGS])
527 AC_SUBST([HOMER_LIBDIR])
528 AC_SUBST([HOMER_BINDIR])
529 AC_SUBST([HOMER_LIBS])
530
531 dnl ------------------------------------------------------------------
532 AC_ARG_ENABLE(all,
533   [AC_HELP_STRING([--disable-all],
534       [disable all detector modules, individual modules can be switched on by --enable-det])],
535   [disable_all=yes],[])
536
537 dnl ------------------------------------------------------------------
538 AC_MSG_CHECKING([whether to impose strict coding conventions])
539 AC_ARG_ENABLE(strict,
540   [AC_HELP_STRING([--disable-strict],
541       [disable coding convention checks ])],
542   [],[enable_strict=yes])
543 if test "x$enable_strict" = "xyes" ; then
544    CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
545 fi
546 AC_MSG_RESULT([$enable_strict])
547
548 dnl ------------------------------------------------------------------
549 AC_MSG_CHECKING([whether to enable component statistics])
550 AC_ARG_ENABLE(component-stat,
551   [AC_HELP_STRING([--enable-component-stat],
552       [enable component statistics ])],
553   [],[])
554
555 dnl enable component statistics if not explicitely disabled
556 if test "x$enable_component_stat" != "xno" &&
557    test "x$enable_debug" = "xyes" ; then
558    enable_component_stat=yes.debug
559 fi
560
561 if test "x$enable_component_stat" = "x" ; then
562    enable_component_stat=no
563 fi
564
565 if test "x$enable_component_stat" != "xno" ; then
566    AC_DEFINE(HLT_COMPONENT_STATISTICS)
567 fi
568 AC_MSG_RESULT([$enable_component_stat])
569
570 dnl ------------------------------------------------------------------
571 dnl ----  module checks
572 dnl ------------------------------------------------------------------
573 save_CPPFLAGS=$CPPFLAGS
574 save_LDFLAGS=$LDFLAGS
575 save_LIBS=$LIBS
576
577 dnl ------------------------------------------------------------------
578 AC_MSG_NOTICE([-------------------------------------------------])
579 AC_MSG_NOTICE([checking dependencies for HLTbase library])
580 HLTBASE_CHECKLIBS='XMLParser'
581 for CHECKLIB in $HLTBASE_CHECKLIBS ; do
582   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
583   LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS"
584   AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"])
585 done
586 AC_SUBST([ALIHLTBASE_LIBS])
587
588 dnl ------------------------------------------------------------------
589 AC_MSG_CHECKING([whether to compile sample library])
590 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
591 AC_ARG_ENABLE(sample,
592   [AC_HELP_STRING([--disable-sample],
593       [compile the sample library ])],
594   [],
595   [if test "x$have_aliroot" = "xno" ; then
596      enable_sample="no...requires.AliRoot"
597    else
598      enable_sample=yes
599    fi
600   ])
601
602 if test "x$enable_sample" = "xyes" ; then 
603   AC_DEFINE(HLT_SAMPLE)
604 fi
605 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
606 AC_MSG_RESULT([$enable_sample])
607
608 dnl ------------------------------------------------------------------
609 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
610 ALIUTIL_LIBS=
611 CHECK_HLTMODULE([util],
612                 [], 
613                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6 -I$ALICE_ROOT/ANALYSIS],
614                 [ANALYSIS ANALYSISalice], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
615                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
616                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
617
618 if test "x$enable_module" = "xmissheader"; then
619   enable_module="no...missing.headers"
620   enable_util=$enable_module
621 elif test "x$enable_module" = "xforce"; then
622   enable_util="yes"
623 else
624   enable_util=$enable_module
625 fi
626 if test "x$enable_util" = "xyes" ; then 
627   AC_DEFINE(HLT_UTIL)
628   ALIUTIL_LIBS=$ALIHLTMODULE_LIBS
629 fi
630 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
631 AC_MSG_CHECKING([whether to compile Util library])
632 AC_MSG_RESULT([$enable_module])
633 AC_SUBST([ALIUTIL_LIBS])
634
635 dnl ------------------------------------------------------------------
636 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
637
638 ALITPC_LIBS=
639 CHECK_HLTMODULE([tpc],
640                 [AliTPCRawStream.h], 
641                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
642                 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
643                 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
644                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
645
646 if test "x$enable_module" = "xmissheader"; then
647   enable_module="no...missing.headers"
648   enable_tpc=$enable_module
649 elif test "x$enable_module" = "xforce"; then
650   enable_tpc="yes"
651 else
652   enable_tpc=$enable_module
653 fi
654
655 if test "x$enable_tpc" = "xyes" ; then 
656   AC_LANG_PUSH(C++)
657   AC_DEFINE(HLT_TPC)
658   ALITPC_LIBS=$ALIHLTMODULE_LIBS
659   dnl
660   dnl Check for functionality in the TPC reconstruction required for online
661   dnl processing
662   dnl 
663   have_tpc_hltoffline_rec=no
664   AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
665     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
666     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
667     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
668     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
669                                        #include <AliTPCclustererMI.h>   
670                                        #include <TObjArray.h>], 
671                                     [AliTPCtrackerMI tracker;
672                                        TObjArray* array=NULL;
673                                        tracker.LoadClusters(array);
674                                        AliTPCclustererMI cl(NULL, NULL);
675                                        cl.GetOutputClonesArray();])],
676                                     [have_tpc_hltoffline_rec=yes], 
677                                       [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
678   AC_MSG_RESULT([$have_tpc_hltoffline_rec])
679
680     have_alitpcclusterparam_r40128=no
681     AC_MSG_CHECKING([checking for AliTPCClusterParam r40128])
682     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTPCClusterParam.h>], 
683                                        [AliTPCClusterParam param;
684                                           float test=param.ParamS0Par(0,0,0)]);],
685                                        [have_alitpcclusterparam_r40128=yes],
686                                          [AC_DEFINE(HAVE_NOT_ALITPCCLUSTERPARAM_r40128)])
687     AC_MSG_RESULT([$have_alitpcclusterparam_r40128])
688
689     LIBS=$save_LIBS
690
691
692   AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
693   AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
694   AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)])
695
696   have_tpc_mapping=no
697   if test ! "x$have_aliroot" = "xno" ; then
698     # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC 
699     # which is stored in the TPC/mapping/Patchx.data files from
700     # AliRoot version v4-04-Release (May 2006)
701     AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
702     TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
703     AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], 
704                    [have_tpc_mapping=yes
705                     AC_SUBST(TPC_PAD_MAPPING_PATH)
706                     AC_DEFINE(HAVE_TPC_MAPPING)],
707                    [])
708     
709   fi
710   AC_MSG_CHECKING([for TPC mapping layout])
711   AC_MSG_RESULT([$have_tpc_mapping])
712   AC_LANG_POP(C++)
713
714 else
715   enable_module=$enable_tpc
716 fi
717 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
718 AC_MSG_CHECKING([whether to compile TPC library])
719 AC_MSG_RESULT([$enable_module])
720 AC_SUBST([ALITPC_LIBS])
721
722 dnl ------------------------------------------------------------------
723 AH_TEMPLATE([HLT_RCU],[hlt rcu library])
724
725 CHECK_HLTMODULE([rcu],
726                 [AliAltroDecoder.h], 
727                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
728                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
729                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
730                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
731
732 if test "x$enable_module" = "xmissheader"; then
733   enable_module="no...missing.headers"
734   enable_rcu=$enable_module
735 elif test "x$enable_module" = "xforce"; then
736   enable_rcu="yes"
737 else
738   AC_LANG_PUSH(C++)
739   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
740   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
741   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
742   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>], 
743                                   [AliAltroDecoder decoder;
744                                   decoder.CopyBackward(NULL, 0);])],
745                                   [enable_rcu=$enable_module], 
746                                   [enable_module="no...requires.AliRoot>v4-10-Release"
747                                    enable_rcu="no...requires.AliRoot>v4-10-Release"])
748   CPPFLAGS=$save_CPPFLAGS
749   LDFLAGS=$save_LDFLAGS
750   LIBS=$save_LIBS
751   AC_LANG_POP(C++)
752 fi
753
754 if test "x$enable_rcu" = "xyes" ; then 
755   AC_DEFINE(HLT_RCU)
756 else
757   enable_module=$enable_rcu
758 fi
759 AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
760 AC_MSG_CHECKING([whether to compile RCU library])
761 AC_MSG_RESULT([$enable_module])
762 AC_SUBST([ALIRCU_LIBS])
763
764 dnl ------------------------------------------------------------------
765 AH_TEMPLATE([HLT_CALO],[hlt calo(rimeter) library])
766   
767 ALICALO_LIBS=
768 CHECK_HLTMODULE([calo],
769                 [], [$ALIROOT_CPPFLAGS],
770                 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
771                 [EMCALUtils PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
772                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
773
774 if test "x$enable_module" = "xmissheader"; then
775   enable_module="no...missing.headers"
776   enable_calo=$enable_module
777 elif test "x$enable_module" = "xforce"; then
778   enable_calo="yes"
779 else
780   have_alicalorawstream=no
781   if test ! "x$have_aliroot" = "xno" ; then
782     AC_LANG_PUSH(C++)
783     save_CPPFLAGS="$CPPFLAGS"
784     # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
785     #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
786     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
787     AC_MSG_CHECKING([for AliCaloRawStream.h usability])
788     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
789                                         #include <AliCaloRawStream.h>], 
790                                        [int i])],
791                                        [AC_DEFINE(HAVE_ALICALORAWSTREAM)
792                                         have_alicalorawstream=yes], 
793                                        [])
794     AC_MSG_RESULT([$have_alicalorawstream])
795
796     have_aliesdcalocluster_r38477=no
797     AC_MSG_CHECKING([for AliESDCaloCluster r38477])
798     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDCaloCluster.h>], 
799                                        [AliESDCaloCluster cluster;
800                                         cluster.SetTrackDistance(0.0, 0.0)]);],
801                                        [have_aliesdcalocluster_r38477=yes],
802                                          [AC_DEFINE(HAVE_NOT_ALIESDCALOCLUSTER_r38477)])
803     AC_MSG_RESULT([$have_aliesdcalocluster_r38477])
804
805     AC_LANG_POP(C++)
806     CPPFLAGS="$save_CPPFLAGS"
807   fi
808   if test "x$have_alicalorawstream" != "xyes"; then
809     enable_calo="no...requires.AliRoot>v4-05-07"
810   else
811     enable_calo=$enable_module
812   fi
813 fi
814
815 if test "x$enable_calo" = "xyes" ; then 
816   AC_DEFINE(HLT_CALO)
817   ALICALO_LIBS=$ALIHLTMODULE_LIBS
818 else
819   enable_module=$enable_calo
820 fi
821 AM_CONDITIONAL(EN_HLT_CALO, test x$enable_calo = xyes)
822 AC_MSG_CHECKING([whether to compile CALO library])
823 AC_MSG_RESULT([$enable_module])
824 AC_SUBST([ALICALO_LIBS])
825
826 dnl ------------------------------------------------------------------
827 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
828   
829 ALIPHOS_LIBS=
830 CHECK_HLTMODULE([phos],
831                 [], [$ALIROOT_CPPFLAGS],
832                 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
833                 [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
834                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
835
836 if test "x$enable_module" = "xmissheader"; then
837   enable_module="no...requires.AliRoot>v4-05-07"
838   enable_phos=$enable_module
839 elif test "x$enable_module" = "xforce"; then
840   enable_phos="yes"
841 else
842   have_alicalorawstream=no
843   if test ! "x$have_aliroot" = "xno" ; then
844     AC_LANG_PUSH(C++)
845     save_CPPFLAGS="$CPPFLAGS"
846     # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
847     #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
848     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
849     AC_MSG_CHECKING([for AliCaloRawStream.h usability])
850     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
851                                         #include <AliCaloRawStream.h>], 
852                                        [int i])],
853                                        [AC_DEFINE(HAVE_ALICALORAWSTREAM)
854                                         have_alicalorawstream=yes], 
855                                        [])
856     AC_MSG_RESULT([$have_alicalorawstream])
857     have_aliphosrecoparamemc=no
858     AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
859     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>], 
860                                        [AliPHOSRecoParam param;
861                                         param.GetEMCClusteringThreshold()])],
862                                        [have_aliphosrecoparamemc=yes], 
863                                        [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
864     AC_MSG_RESULT([$have_aliphosrecoparamemc])
865
866     have_aliphosreconstructor_r44091=no
867     AC_MSG_CHECKING([for AliPHOSReconstructor r44091 ])
868     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSReconstructor.h>], 
869                                        [float e=0.0;
870                                         AliPHOSReconstructor::CorrectNonlinearity(e)])],
871                                        [have_aliphosreconstructor_r44091=yes], 
872                                        [AC_DEFINE(HAVE_NOT_ALIPHOSRECONSTRUCTOR_r44091)])
873     AC_MSG_RESULT([$have_aliphosreconstructor_r44091])
874
875     AC_LANG_POP(C++)
876     CPPFLAGS="$save_CPPFLAGS"
877   fi
878   if test "x$have_alicalorawstream" != "xyes"; then
879     enable_phos="no...requires.AliRoot>v4-05-07"
880   else
881     enable_phos=$enable_module
882   fi
883 fi
884
885 if test "x$enable_phos" = "xyes" ; then 
886   AC_DEFINE(HLT_PHOS)
887   ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
888 else
889   enable_module=$enable_phos
890 fi
891 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
892 AC_MSG_CHECKING([whether to compile PHOS library])
893 AC_MSG_RESULT([$enable_module])
894 AC_SUBST([ALIPHOS_LIBS])
895
896 dnl ------------------------------------------------------------------
897 AH_TEMPLATE([HLT_EMCAL],[hlt emcal library])
898
899 ALIEMCAL_LIBS=
900 CHECK_HLTMODULE([emcal],
901                 [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/VZERO],
902                 [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
903                 [EMCALrec EMCALsim EMCALbase EMCALUtils VZERObase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
904                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
905
906 if test "x$enable_module" = "xmissheader"; then
907   enable_module="no...header.missing"
908   enable_emcal=$enable_module
909 elif test "x$enable_module" = "xforce"; then
910   enable_emcal="yes"
911 else
912   enable_emcal=$enable_module
913 fi
914
915 if test "x$enable_emcal" = "xyes" ; then 
916   AC_DEFINE(HLT_EMCAL)
917   ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS
918 else
919   enable_module=$enable_emcal
920 fi
921 AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes)
922 AC_MSG_CHECKING([whether to compile EMCAL library])
923 AC_MSG_RESULT([$enable_module])
924 AC_SUBST([ALIEMCAL_LIBS])
925
926 dnl ------------------------------------------------------------------
927 AH_TEMPLATE([HLT_TRD],[hlt trd library])
928   
929 ALITRD_LIBS=
930 CHECK_HLTMODULE([trd],
931                 [], [],
932                 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
933                 [STAT TRDbase TRDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
934                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
935
936 if test "x$enable_module" = "xmissheader"; then
937   enable_module="no...requires.AliRoot>v4-07-Release"
938   enable_trd=$enable_module
939 elif test "x$enable_module" = "xforce"; then
940   enable_trd="yes"
941 else
942   enable_trd=$enable_module
943   if test "x$enable_trd" = "xyes" ; then
944     AC_LANG_PUSH(C++)
945     save_CPPFLAGS="$CPPFLAGS"
946     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
947     # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
948     # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
949     # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
950     # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
951     # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008
952     # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009
953     # changed to AliTRDclusterizer::GetNTimeBins according to revision 37102 Sun Nov 22 2009
954     AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
955     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>], 
956                                        [AliTRDclusterizer c;
957                                        c.GetNTimeBins()])],
958                                        [], 
959                                        [enable_trd="no...requires.AliRoot>v4-18-Release"])
960     AC_MSG_RESULT([$enable_trd])       
961
962     if test "x$enable_trd" = "xyes" ; then
963       have_alitrdseedv1_r39693=no
964       AC_MSG_CHECKING([checking for AliTRDseedV1 r39693])
965       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDseedV1.h>], 
966                                          [AliTRDseedV1 seed;
967                                           seed.SetC(0.0, 1)]);],
968                                          [have_alitrdseedv1_r39693=yes],
969                                          [AC_DEFINE(HAVE_NOT_ALITRD_SEEDV1_r39693)])
970       AC_MSG_RESULT([$have_alitrdseedv1_r39693])
971
972       have_alitrdrawstream_r39608=no
973       AC_MSG_CHECKING([checking for AliTRDrawStream r39608])
974       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrawStreamBase.h>], 
975                                          [AliTRDrawStreamBase::SetRawStreamVersion(AliTRDrawStreamBase::kTRDdefaultStream)]);],
976                                          [have_alitrdrawstream_r39608=yes],
977                                          [AC_DEFINE(HAVE_NOT_ALITRD_RAWSTREAM_r39608)])
978       AC_MSG_RESULT([$have_alitrdrawstream_r39608])
979
980       have_alitrdrecoparam_r41621=no
981       AC_MSG_CHECKING([checking for AliTRDrecoParam r41621])
982       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>], 
983                                          [AliTRDrecoParam::GetLowFluxHLTParam()]);],
984                                          [have_alitrdrecoparam_r41621=yes],
985                                          [AC_DEFINE(HAVE_NOT_ALITRD_RECOPARAM_r41621)])
986       AC_MSG_RESULT([$have_alitrdrecoparam_r41621])
987
988       have_alitrdclusterizer_r42837=no
989       AC_MSG_CHECKING([checking for AliTRDclusterizer r42837])
990       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>], 
991                                          [AliTRDclusterizer o; o.SetSkipTransform()]);],
992                                          [have_alitrdclusterizer_r42837=yes],
993                                          [AC_DEFINE(HAVE_NOT_ALITRD_CLUSTERIZER_r42837)])
994       AC_MSG_RESULT([$have_alitrdclusterizer_r42837])
995     fi
996
997     AC_LANG_POP(C++)
998     CPPFLAGS="$save_CPPFLAGS"
999   fi
1000 fi
1001
1002 if test "x$enable_trd" = "xyes" ; then 
1003   AC_DEFINE(HLT_TRD)
1004   ALITRD_LIBS=$ALIHLTMODULE_LIBS
1005 else
1006   enable_module=$enable_trd
1007 fi
1008 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
1009 AC_MSG_CHECKING([whether to compile TRD library])
1010 AC_MSG_RESULT([$enable_module])
1011 AC_SUBST([ALITRD_LIBS])
1012
1013 dnl ------------------------------------------------------------------
1014 AH_TEMPLATE([HLT_FMD],[hlt fmd library])
1015
1016 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
1017 CHECK_HLTMODULE([fmd],
1018                 [], [],
1019                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1020                 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1021                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1022
1023 if test "x$enable_module" = "xmissheader"; then
1024   enable_module="no...missing.headers"
1025   enable_fmd=$enable_module
1026 elif test "x$enable_module" = "xforce"; then
1027   enable_fmd="yes"
1028 else
1029   enable_fmd=$enable_module
1030 fi
1031
1032 if test "x$enable_fmd" = "xyes" ; then
1033   AC_DEFINE(HLT_FMD)
1034   ALIFMD_LIBS=$ALIHLTMODULE_LIBS
1035 else
1036   enable_module=$enable_fmd
1037 fi
1038 AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
1039 AC_MSG_CHECKING([whether to compile FMD library])
1040 AC_MSG_RESULT([$enable_module])
1041 AC_SUBST([ALIFMD_LIBS])
1042
1043 dnl ------------------------------------------------------------------
1044 AH_TEMPLATE([HLT_ZDC],[hlt zdc library])
1045
1046 ALIZDC_LIBS=$ALIHLTMODULE_LIBS
1047 CHECK_HLTMODULE([zdc],
1048                 [], [$ALIROOT_CPPFLAGS],
1049                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1050                 [ZDCbase ZDCrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
1051                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1052
1053 if test "x$enable_module" = "xmissheader"; then
1054   enable_module="no...missing.headers"
1055   enable_zdc=$enable_module
1056 elif test "x$enable_module" = "xforce"; then
1057   enable_zdc="yes"
1058 else
1059   enable_zdc=$enable_module
1060
1061   if test "x$enable_zdc" = "xyes" ; then
1062     AC_LANG_PUSH(C++)
1063     save_CPPFLAGS="$CPPFLAGS"
1064     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ZDC"
1065
1066
1067     # AliZDCReconstructor::GetZDCESDData() is needed, requires revision 43770, Wed Sep 22 2010
1068     have_alizdcreconstructor_r43770=no
1069     AC_MSG_CHECKING([checking for  AliZDCReconstructor::GetZDCESDData() r43770])
1070     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliZDCReconstructor.h>], 
1071                                        [AliZDCReconstructor rec;
1072                                         rec.GetZDCESDData()])],
1073                                        [have_alizdcreconstructor_r43770=yes], 
1074                                        [AC_DEFINE(HAVE_NOT_ALIZDCRECONSTRUCTOR_r43770)])
1075     if test "x$have_alizdcreconstructor_r43770" != "xyes"; then
1076        enable_zdc="no...requires.r43770"
1077     fi
1078     AC_MSG_RESULT([$have_alizdcreconstructor_r43770])       
1079
1080     AC_LANG_POP(C++)
1081     CPPFLAGS="$save_CPPFLAGS"
1082   fi
1083
1084 fi
1085
1086 if test "x$enable_zdc" = "xyes" ; then
1087   AC_DEFINE(HLT_ZDC)
1088   ALIZDC_LIBS=$ALIHLTMODULE_LIBS
1089 else
1090   enable_module=$enable_zdc
1091 fi
1092 AM_CONDITIONAL(EN_HLT_ZDC, test x$enable_zdc = xyes)
1093 AC_MSG_CHECKING([whether to compile ZDC library])
1094 AC_MSG_RESULT([$enable_module])
1095 AC_SUBST([ALIZDC_LIBS])
1096
1097 dnl ------------------------------------------------------------------
1098 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
1099
1100 ALIMUON_LIBS=
1101 CHECK_HLTMODULE([dimuon],
1102                 [AliMpExMap.h AliMUONTriggerIO.h], 
1103                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
1104                 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1105                 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1106                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1107
1108 if test "x$enable_module" = "xmissheader"; then
1109   enable_module="no...requires.AliRoot>=v4-08-Release"
1110   enable_muon=$enable_module
1111 elif test "x$enable_module" = "xforce"; then
1112   enable_muon="yes"
1113 else
1114   enable_muon=$enable_module
1115 fi
1116
1117 if test "x$enable_muon" = "xyes" ; then 
1118   AC_DEFINE(HLT_MUON)
1119   ALIMUON_LIBS=$ALIHLTMODULE_LIBS
1120   AC_LANG_PUSH(C++)
1121   save_CPPFLAGS="$CPPFLAGS"
1122
1123   dnl
1124   dnl Check for functionality GetRawStream AliMUONDigitMaker.h
1125   dnl 
1126   have_muon_digitmaker_getrawstream=no
1127   AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
1128     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
1129     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1130     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1131     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>], 
1132                                     [AliMUONDigitMaker dm;
1133                                        dm.GetRawStreamTracker();])],
1134                                     [have_muon_digitmaker_getrawstream=yes], 
1135                                       [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
1136     LIBS=$save_LIBS
1137   AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
1138
1139   dnl
1140   dnl Check for AliMpPad::GetPositionX/Y
1141   dnl change of implementation in MUON code
1142   dnl revision 31769, Wed Apr 1 2009
1143   dnl 
1144   have_muon_alimppad_getposition=no
1145   AC_MSG_CHECKING(for GetPosition methods of AliMpPad)
1146     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping"
1147     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
1148     LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
1149     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMpPad.h>], 
1150                                     [AliMpPad pad;
1151                                      pad.GetPositionX();])],
1152                                     [have_muon_alimppad_getposition=yes], 
1153                                       [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)])
1154     LIBS=$save_LIBS
1155   AC_MSG_RESULT([$have_muon_alimppad_getposition])
1156
1157   CPPFLAGS="$save_CPPFLAGS"
1158
1159   AC_LANG_POP(C++)
1160 else
1161   enable_module=$enable_muon
1162 fi
1163 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
1164 AC_MSG_CHECKING([whether to compile MUON library])
1165 AC_MSG_RESULT([$enable_module])
1166 AC_SUBST([ALIMUON_LIBS])
1167
1168 dnl ------------------------------------------------------------------
1169 AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
1170
1171 ALITRIGGER_LIBS=
1172 CHECK_HLTMODULE([trigger],
1173                 [], [$ALIROOT_CPPFLAGS],
1174                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1175                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1176                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1177
1178 if test "x$enable_module" = "xmissheader"; then
1179   enable_module="no...header.missing"
1180   enable_trigger=$enable_module
1181 elif test "x$enable_module" = "xforce"; then
1182   enable_trigger="yes"
1183 else
1184   enable_trigger=$enable_module
1185 fi
1186
1187 if test "x$enable_trigger" = "xyes" ; then 
1188   AC_DEFINE(HLT_TRIGGER)
1189   ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
1190 else
1191   enable_module=$enable_trigger
1192 fi
1193 AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
1194 AC_MSG_CHECKING([whether to compile Trigger library])
1195 AC_MSG_RESULT([$enable_module])
1196 AC_SUBST([ALITRIGGER_LIBS])
1197
1198 dnl ------------------------------------------------------------------
1199 AH_TEMPLATE([HLT_GLOBAL],[hlt global library])
1200
1201 ALIGLOBAL_LIBS=
1202 CHECK_HLTMODULE([global],
1203                 [], [$ALIROOT_CPPFLAGS],
1204                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1205                 [PHOSUtils ], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1206                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1207
1208 if test "x$enable_module" = "xmissheader"; then
1209   enable_module="no...header.missing"
1210   enable_global=$enable_module
1211 elif test "x$enable_module" = "xforce"; then
1212   enable_global="yes"
1213 else
1214   enable_global=$enable_module
1215   if test "x$enable_global" = "xyes" ; then
1216     AC_LANG_PUSH(C++)
1217     save_CPPFLAGS="$CPPFLAGS"
1218     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
1219     AC_MSG_CHECKING([for required functions in AliESDtrack])
1220     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliESDtrack.h>], 
1221                                        [AliESDtrack t;
1222                                        t.SetGlobalChi2(0)])],
1223                                        [], 
1224                                        [enable_global="no...requires.AliRoot>v4-17-Release"])
1225     AC_MSG_RESULT([$enable_global])       
1226     AC_LANG_POP(C++)
1227     CPPFLAGS="$save_CPPFLAGS"
1228   fi
1229 fi
1230
1231 if test "x$enable_global" = "xyes" ; then 
1232   AC_DEFINE(HLT_GLOBAL)
1233   ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS
1234 else
1235   enable_module=$enable_global
1236 fi
1237 AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes)
1238 AC_MSG_CHECKING([whether to compile Global library])
1239 AC_MSG_RESULT([$enable_module])
1240 AC_SUBST([ALIGLOBAL_LIBS])
1241
1242 dnl ------------------------------------------------------------------
1243 AH_TEMPLATE([HLT_JET],[hlt jet library])
1244
1245 ALIFASTJET_HEADER=
1246 ALIFASTJET_INCFLAGS=
1247 ALIFASTJET_LIBS=
1248 ALIFASTJET_LDFLAGS=
1249 AC_ARG_WITH(fastjet, [installation path of the FASTJET package],
1250                      [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet],
1251                      [ test -n $FASTJET && with_fastjet=$FASTJET ])
1252
1253 if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then
1254   ALIFASTJET_INCFLAGS="-I${with_fastjet}/include"
1255   ALIFASTJET_HEADER="fastjet/PseudoJet.hh"
1256   ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib"
1257   ALIFASTJET_LIBS="CGAL fastjet"
1258 else
1259   with_fastjet=no
1260 fi
1261
1262 CHECK_HLTMODULE([jet],
1263         [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS],
1264         [$ALIFASTJET_LIBS], [-L$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS],
1265         [AOD ESD ANALYSIS ANALYSISalice JETAN], 
1266         [-L$ROOTLIBDIR $ALIROOT_LDFLAGS $ALIFASTJET_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET],
1267         [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1268
1269 if test "x$enable_module" = "xmissheader"; then
1270   enable_module="no...header.missing"
1271   enable_jet=$enable_module
1272 elif test "x$enable_module" = "xforce"; then
1273   enable_jet="yes"
1274 else
1275   enable_jet=$enable_module
1276 fi
1277
1278 if test "x$enable_jet" = "xyes" ; then
1279   AC_DEFINE(HLT_JET)
1280   ALIJET_LIBS="$ALIHLTMODULE_LIBS"
1281   
1282   if test "x$with_fastjet" != "xno"; then
1283      AC_DEFINE(HAVE_FASTJET)
1284      AC_DEFINE(WITHFASTJET)
1285      ALIJET_LIBS="$ALIJET_LIBS $FASTJET_LDFLAGS"
1286   fi
1287   AC_MSG_CHECKING([compilation with FASTJET package])
1288   AC_MSG_RESULT($with_fastjet)
1289
1290 else
1291   enable_module=$enable_jet
1292 fi
1293
1294 AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes)
1295 AC_MSG_CHECKING([whether to compile Jet library])
1296 AC_MSG_RESULT([$enable_module])
1297 AC_SUBST([ALIJET_LIBS])
1298
1299 dnl ------------------------------------------------------------------
1300 AH_TEMPLATE([HLT_VZERO],[hlt vzero library])
1301
1302 ALIVZERO_LIBS=
1303 CHECK_HLTMODULE([vzero],
1304                 [], [$ALIROOT_CPPFLAGS],
1305                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1306                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1307                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1308
1309 if test "x$enable_module" = "xmissheader"; then
1310   enable_module="no...header.missing"
1311   enable_vzero=$enable_module
1312 elif test "x$enable_module" = "xforce"; then
1313   enable_vzero="yes"
1314 else
1315   enable_vzero=$enable_module
1316
1317   if test "x$enable_vzero" = "xyes" ; then
1318     AC_LANG_PUSH(C++)
1319     save_CPPFLAGS="$CPPFLAGS"
1320     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/VZERO"
1321
1322     # AliVZEROReconstructor::GetESDVZERO() is needed, requires revision 43718, Tue Sep 21 2010
1323     AC_MSG_CHECKING([checking for AliVZEROReconstructor::GetESDVZERO() r43718])
1324     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliVZEROReconstructor.h>], 
1325                                        [AliVZEROReconstructor rec;
1326                                         rec.GetESDVZERO()])],
1327                                        [], 
1328                                        [enable_vzero="no...requires.r43718"])
1329     AC_MSG_RESULT([$enable_vzero])       
1330
1331     AC_LANG_POP(C++)
1332     CPPFLAGS="$save_CPPFLAGS"
1333   fi
1334 fi
1335
1336 if test "x$enable_vzero" = "xyes" ; then 
1337   AC_DEFINE(HLT_VZERO)
1338   ALIVZERO_LIBS=$ALIHLTMODULE_LIBS
1339 else
1340   enable_module=$enable_vzero
1341 fi
1342 AM_CONDITIONAL(EN_HLT_VZERO, test x$enable_vzero = xyes)
1343 AC_MSG_CHECKING([whether to compile VZERO library])
1344 AC_MSG_RESULT([$enable_module])
1345 AC_SUBST([ALIVZERO_LIBS])
1346
1347 dnl ------------------------------------------------------------------
1348 AH_TEMPLATE([HLT_ITS],[hlt its library])
1349
1350 ALIITS_LIBS=
1351 CHECK_HLTMODULE([its],
1352                 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
1353                 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1354                 [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1355                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1356
1357 if test "x$enable_module" = "xmissheader"; then
1358   enable_module="no...header.missing"
1359   enable_its=$enable_module
1360 elif test "x$enable_module" = "xforce"; then
1361   enable_its="yes"
1362 else
1363   enable_its=$enable_module
1364   if test "x$enable_its" = "xyes" ; then
1365     AC_LANG_PUSH(C++)
1366     save_CPPFLAGS="$CPPFLAGS"
1367     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
1368     # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
1369     # require AliVertexer::GetNominalPos()
1370     AC_MSG_CHECKING([for required functions in AliITSVertexer])
1371     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>], 
1372                                        [AliITSVertexerZ v;
1373                                        v.GetNominalPos()])],
1374                                        [], 
1375                                        [enable_its="no...requires.AliRoot>v4-13-Release"])
1376     AC_MSG_RESULT([$enable_its])       
1377     AC_LANG_POP(C++)
1378     CPPFLAGS="$save_CPPFLAGS"
1379   fi
1380 fi
1381
1382 if test "x$enable_its" = "xyes" ; then 
1383   AC_DEFINE(HLT_ITS)
1384   ALIITS_LIBS=$ALIHLTMODULE_LIBS
1385 else
1386   enable_module=$enable_its
1387 fi
1388 AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
1389 AC_MSG_CHECKING([whether to compile ITS library])
1390 AC_MSG_RESULT([$enable_module])
1391 AC_SUBST([ALIITS_LIBS])
1392
1393 dnl ------------------------------------------------------------------
1394 AH_TEMPLATE([HLT_COMP],[hlt comp library])
1395
1396 ALICOMP_LIBS=
1397 CHECK_HLTMODULE([comp],
1398                 [], [$ALIROOT_CPPFLAGS],
1399                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
1400                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
1401                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
1402
1403 if test "x$enable_module" = "xmissheader"; then
1404   enable_module="no...header.missing"
1405   enable_comp=$enable_module
1406 elif test "x$enable_module" = "xforce"; then
1407   enable_comp="yes"
1408 else
1409   enable_comp=$enable_module
1410 fi
1411
1412 if test "x$enable_comp" = "xyes" ; then 
1413   AC_DEFINE(HLT_COMP)
1414   ALICOMP_LIBS=$ALIHLTMODULE_LIBS
1415 else
1416   enable_module=$enable_comp
1417 fi
1418 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
1419 AC_MSG_CHECKING([whether to compile comp library])
1420 AC_MSG_RESULT([$enable_module])
1421 AC_SUBST([ALICOMP_LIBS])
1422
1423 dnl ------------------------------------------------------------------
1424 AC_MSG_CHECKING([whether to disable AliRoot logging])
1425 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
1426 AC_ARG_ENABLE(aliroot-logging,
1427   [AC_HELP_STRING([--disable-aliroot-logging],
1428       [disable logging through AliRoot logging methods])],
1429   [],[enable_aliroot_logging=no])
1430 if test "x$have_aliroot" = "xno" ; then
1431   enable_aliroot_logging=yes # this means 'disable'
1432 fi
1433 if test "x$enable_aliroot_logging" != "xno" ; then 
1434   AC_DEFINE(NOALIROOT_LOGGING)
1435 fi
1436 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
1437 AC_MSG_RESULT([$enable_aliroot_logging])
1438
1439 dnl ------------------------------------------------------------------
1440 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
1441 AH_TEMPLATE([DOMC],[MC saving])
1442 AC_ARG_ENABLE(mc-saving,
1443   [AC_HELP_STRING([--enable-mc-saving],
1444       [enable saving MC data through the chain])],
1445   [],[enable_mc_saving=no])
1446 if test "x$enable_mc_saving" = "xyes" ; then 
1447   AC_DEFINE(DOMC)
1448 fi
1449 AC_MSG_RESULT([$enable_mc_saving])
1450
1451 dnl ------------------------------------------------------------------
1452 dnl certainly something old, but we keep the define
1453 AC_MSG_CHECKING([whether to use ROWHOUGH])
1454 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
1455 AC_ARG_ENABLE(rowhough,
1456   [AC_HELP_STRING([--enable-rowhough],
1457       [use ROWHOUGH ])],
1458   [],[enable_rowhough=no])
1459 if test "x$enable_rowhough" = "xyes" ; then 
1460   AC_DEFINE(USEROWHOUGH)
1461 fi
1462 AC_MSG_RESULT([$enable_rowhough])
1463
1464 dnl ------------------------------------------------------------------
1465 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
1466 dnl stand-alone build system. This is most likely something old we can
1467 dnl get rid off later, or do something more reasonable. Since the define
1468 dnl needs the quotes they have to be  escaped. This works well for the
1469 dnl Makefile but not for the configure script. So we have to add the
1470 dnl defines after all the other checks.
1471 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
1472 if test ! "x$have_aliroot" = "xno" ; then
1473   CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
1474 fi
1475
1476 dnl ------------------------------------------------------------------
1477 dnl
1478 dnl Documentation
1479 dnl
1480 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1481 AC_PATH_PROG(PERL, perl)
1482 AC_PATH_PROG(DOXYGEN, doxygen)
1483 AC_ARG_ENABLE(dot,
1484   [AC_HELP_STRING([--enable-dot],
1485       [enable dot documentation generator])],
1486   [],[enable_dot=no])
1487 HAVE_DOT=NO
1488 DOT_PATH=
1489 AC_PATH_PROG(DOT, dot)
1490 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
1491    HAVE_DOT=YES
1492    DOT_PATH=`dirname $DOT`
1493 fi
1494
1495 AC_MSG_CHECKING([for documentation mode])
1496 AC_ARG_ENABLE(doc,
1497   [AC_HELP_STRING([--disable-doc],
1498       [disable documentation build; monolithic build --enable-doc=mono ])],
1499   [],[enable_doc=modules])
1500
1501 if test "x$DOXYGEN" = "x" ; then
1502    enable_doc=no.doxygen
1503 elif test "x$enable_doc" = "xyes" ; then
1504    enable_doc=yes
1505 elif test ! "x$enable_doc" = "xmono" && \
1506      test ! "x$enable_doc" = "xmodules"  && \
1507      test ! "x$enable_doc" = "xno"; then
1508    enable_doc=no
1509    AC_MSG_WARN([unknown option])
1510 fi
1511 if test "x$enable_doc" = "xno" ; then
1512    enable_doc=off
1513    DOXYGEN=
1514 fi
1515
1516 AC_MSG_RESULT([$enable_doc])
1517 AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1518 AM_CONDITIONAL(BUILD_DOC, test ! "x$DOXYGEN" = "x")
1519 AC_SUBST([HAVE_DOT])
1520 AC_SUBST([DOT_PATH])
1521
1522 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1523 dnl echo $HAVE_SRC_SUBDIR
1524 dnl if ! test -d $HAVE_SRC_SUBDIR; then
1525 dnl   HAVE_SRC_SUBDIR=
1526 dnl fi
1527 dnl AC_SUBST([HAVE_SRC_SUBDIR])
1528
1529 dnl ------------------------------------------------------------------
1530 AC_MSG_NOTICE([---------------------------------------------- ])
1531 AC_MSG_NOTICE([                build summary                  ])
1532 AC_MSG_NOTICE([---------------------------------------------- ])
1533
1534 AC_CONFIG_FILES([Makefile 
1535                  BASE/Makefile
1536                  BASE/setenv.sh
1537                  BASE/setenv.csh
1538                  BASE/HOMER/Makefile
1539                  BASE/util/Makefile
1540                  BASE/util/test/Makefile
1541                  BASE/interface/Makefile
1542                  BASE/test/Makefile
1543                  BASE/interface/test/Makefile
1544                  doc/Makefile
1545                  doc/doxygen.conf
1546                  doc/doxymodule.conf])
1547
1548 dnl AliRoot and installation directory for libraries
1549 dnl 
1550 AC_MSG_NOTICE([AliRoot: $have_aliroot])
1551 AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1552 if test "x$have_aliroot" != "xno"; then 
1553   AC_CONFIG_FILES([sim/Makefile  
1554                    rec/Makefile  
1555                    rec/test/Makefile     
1556                    rec/startAliEVE-barrel-tracks.sh
1557                    shuttle/Makefile
1558                    pendolino/Makefile
1559                    benchmark/Makefile
1560                    QA/Makefile
1561                    ])
1562 fi
1563 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1564 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1565 AC_MSG_NOTICE([libdir set to $libdir])
1566 fi
1567
1568 AC_MSG_NOTICE([compile sample library: $enable_sample])
1569 if test "x$enable_sample" = "xyes"; then 
1570   AC_CONFIG_FILES([SampleLib/Makefile])
1571 fi
1572
1573 AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1574 if test "x$enable_rcu" = "xyes"; then 
1575   AC_CONFIG_FILES([RCU/Makefile
1576                    RCU/test/Makefile
1577                    ])
1578 fi
1579
1580 AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1581 if test "x$enable_tpc" = "xyes"; then 
1582   AC_CONFIG_FILES([TPCLib/Makefile            
1583                    TPCLib/test/Makefile       
1584                    TPCLib/mapping2array.cxx     
1585                    TPCLib/EVE/Makefile
1586                    TPCLib/calibration/Makefile
1587                    ])
1588 fi
1589
1590 AC_MSG_NOTICE([compile CALO library: $enable_calo])
1591 if test "x$enable_calo" = "xyes"; then 
1592   AC_CONFIG_FILES([CALO/Makefile
1593                    CALO/test/Makefile])
1594 fi
1595
1596 AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1597 if test "x$enable_phos" = "xyes"; then 
1598   AC_CONFIG_FILES([PHOS/Makefile])
1599 fi
1600
1601 AC_MSG_NOTICE([compile EMCAL library: $enable_emcal])
1602 if test "x$enable_emcal" = "xyes"; then 
1603   AC_CONFIG_FILES([EMCAL/Makefile])
1604 fi
1605
1606 AC_MSG_NOTICE([compile TRD library: $enable_trd])
1607 if test "x$enable_trd" = "xyes"; then 
1608   AC_CONFIG_FILES([TRD/Makefile])
1609 fi
1610
1611 AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1612 if test "x$enable_fmd" = "xyes"; then 
1613   AC_CONFIG_FILES([FMD/Makefile])
1614 fi
1615
1616 AC_MSG_NOTICE([compile ZDC library: $enable_zdc])
1617 if test "x$enable_zdc" = "xyes"; then 
1618   AC_CONFIG_FILES([ZDC/Makefile])
1619 fi
1620
1621 AC_MSG_NOTICE([compile MUON library: $enable_muon])
1622 if test "x$enable_muon" = "xyes"; then 
1623   AC_CONFIG_FILES([MUON/Makefile])
1624 fi
1625
1626 AC_MSG_NOTICE([compile ITS library: $enable_its])
1627 if test "x$enable_its" = "xyes"; then 
1628   AC_CONFIG_FILES([ITS/Makefile])
1629 fi
1630
1631 AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1632 if test "x$enable_trigger" = "xyes"; then 
1633   AC_CONFIG_FILES([trigger/Makefile
1634                    trigger/test/Makefile])
1635 fi
1636
1637 AC_MSG_NOTICE([compile global library: $enable_global])
1638 if test "x$enable_global" = "xyes"; then 
1639   AC_CONFIG_FILES([global/Makefile])
1640 fi
1641
1642 AC_MSG_NOTICE([compile jet library: $enable_jet])
1643 if test "x$enable_jet" = "xyes"; then 
1644   AC_CONFIG_FILES([JET/Makefile])
1645 fi
1646
1647 AC_MSG_NOTICE([compile vzero library: $enable_vzero])
1648 if test "x$enable_vzero" = "xyes"; then 
1649   AC_CONFIG_FILES([VZERO/Makefile])
1650 fi
1651
1652 AC_MSG_NOTICE([compile comp library: $enable_comp])
1653 if test "x$enable_comp" = "xyes"; then 
1654   AC_CONFIG_FILES([comp/Makefile])
1655 fi
1656
1657 AC_OUTPUT
1658 dnl
1659 dnl EOF
1660 dnl
1661