]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/configure.ac
Adding a filter components to filter on empty events or alternatively specifically...
[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 AC_INIT([Alice High Level Trigger] , [0.9-dev], [Matthias.Richter@ift.uib.no], alice-hlt)
9
10 dnl ------------------------------------------------------------------
11 dnl the package from CVS contains the old Makefiles as well. In order to
12 dnl prevent them from becoming overwritten, we require a separate build
13 dnl directory
14 if test "`dirname $0`" = "." ; then
15    AC_ERROR([please run the script from a separate build directory])
16 fi
17
18 dnl ------------------------------------------------------------------
19 AC_CANONICAL_SYSTEM
20 AC_PREFIX_DEFAULT(${PWD})
21 AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
22 AM_INIT_AUTOMAKE
23 AC_PROG_CC
24 AC_PROG_CXX
25 AC_PROG_LIBTOOL
26
27 AC_DEBUG
28 AC_OPTIMIZATION
29 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 0 )
30
31 dnl ------------------------------------------------------------------
32 dnl A warning posted into the auto-generated files
33 dnl Does NOT concern this file ;-)
34 AUTOGENERATED_WARNING="!!!!!!!    DO NOT EDIT THIS FILE !!!!!!"
35 AC_SUBST([AUTOGENERATED_WARNING])
36
37 dnl ------------------------------------------------------------------
38 dnl
39 dnl Check for ROOT
40 dnl
41 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
42 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
43 AC_SUBST([ROOTSYS])
44 ROOTBINDIR=`dirname $ROOTEXEC`
45 AC_SUBST([ROOTBINDIR])
46
47 dnl test for additional required root libraries and headers
48 LIBS='-ldl'
49 if test "x$have_root" = "x1"; then
50   AC_LANG_PUSH(C++)
51   save_CPPFLAGS=$CPPFLAGS
52   save_LDFLAGS=$LDFLAGS
53   save_LIBS=$LIBS
54   CPPFLAGS=`echo $save_CPPFLAGS; for i in ${ROOTINCDIR}; do echo -n "-I$i " ; done`
55   
56   # we check for the libSTEER library which is linked to
57   # - the ROOT libs libGeom libMinuit libVMC libEG
58   # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
59   # - ROOT libCint needs also libdl
60   # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
61   #   libTreePlayer.so
62   # - from Jan 07 libESD also depends on libXMLIO
63   # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
64   ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
65   for CHECKLIB in $ROOT_CHECKLIBS ; do
66     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
67     LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
68     AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
69   done
70
71   # TBuffer.h has been made pure virtual in root v5-15-02 and one
72   # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
73   AC_CHECK_HEADERS([TBufferFile.h])
74
75   # TView.h has been made pure virtual right after root v5-15-02 and one
76   # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
77   AC_CHECK_HEADERS([TView3D.h])
78
79   CPPFLAGS=$save_CPPFLAGS
80   LDFLAGS=$save_LDFLAGS
81   LIBS=$save_LIBS
82   AC_LANG_POP(C++)
83 fi
84
85 dnl ------------------------------------------------------------------
86 # TODO: make this configurable through arguments
87 #Define whether you want to run with ALIROOT or only ROOT
88 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
89 ALIHLT_USEPACKAGE=ALIROOT
90 #ALIHLT_USEPACKAGE=ROOT
91 #ALIHLT_USEPACKAGE=STANDALONE
92 AC_DEFINE(use_aliroot)
93 AC_DEFINE(use_root)
94 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
95
96 dnl ------------------------------------------------------------------
97 dnl check for AliRoot features
98 AC_LANG_PUSH(C++)
99 have_aliroot=no
100 AC_ARG_WITH(aliroot,[  --with-aliroot   top of the AliRoot installation],
101                     [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
102                     [])
103
104 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
105   dnl ------------------------------------------------------------------
106   dnl Try to estimate the system architecture
107   case $host_os:$host_cpu in
108   linux*:x86_64*)       alice_target='linuxx8664gcc'            ;;
109   linux*)               alice_target='linux'                    ;;
110   *)                    alice_target='unknown'                  ;;
111   esac
112   if test "x$alice_target" = "xunknown" ; then
113     if test -z $ALICE_TARGET ; then
114     AC_MSG_ERROR([Can not estimate system architecture.
115     To avoid the problem, set the ALICE_TARGET variable appropriately.
116     Please send the following information to Matthias.Richter@ift.uib.no:
117         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
118     else
119     AC_MSG_NOTICE([Unknown system architecture.
120     Please send the following information to Matthias.Richter@ift.uib.no:
121         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])  
122     fi
123   else
124     if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
125     AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
126     overriding $ALICE_TARGET by $alice_target])
127     fi
128     ALICE_TARGET=$alice_target
129   fi
130   ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
131   ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
132   ALIROOTINCDIR=${ALICE_ROOT}/include
133   test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
134   test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
135   test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
136 fi
137
138 AC_MSG_CHECKING([for AliRoot])
139 if test "x$ALICE_ROOT" != "x" \
140    && test -d ${ALIROOTBINDIR} \
141    && test -d ${ALIROOTLIBDIR} \
142    && test -d ${ALIROOTINCDIR}; then
143   have_aliroot=$ALICE_ROOT
144 else
145   ALIROOTBINDIR=
146   ALIROOTLIBDIR=
147   ALIROOTINCDIR=
148 fi
149 AC_MSG_RESULT([$have_aliroot])
150
151 if test ! "x$have_aliroot" = "xno" ; then
152   ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
153   ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
154   ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
155   save_CPPFLAGS=$CPPFLAGS
156   save_LDFLAGS=$LDFLAGS
157   save_LIBS=$LIBS
158   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
159   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
160   
161   # check for certain AliRoot libraries/files/features
162   # libSTEERBase present since Aug 7 2007
163   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
164   CHECKLIB=STEERBase
165   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
166
167   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
168   CHECKLIB=AOD
169   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
170
171   # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
172   have_alirawdata=no
173   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
174   CHECKLIB=RAWDatabase
175   AC_CHECK_LIB([$CHECKLIB],[_init],
176         [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
177          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
178          CHECKLIB=RAWDatarec
179          AC_CHECK_LIB([$CHECKLIB],[_init],
180                [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
181                 AC_DEFINE(HAVE_ALIRAWDATA)
182                 have_alirawdata=$CHECKLIB])],
183         [# second pass with -RAWData
184          CHECKLIB="-lRAWData"
185          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
186          AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
187                                        #include <AliRawReaderFile.h>
188                                        #include <AliRawReaderDate.h>
189                                        #include <AliRawReaderRoot.h>], 
190                                      [AliRawReaderMemory mreader;
191                                        AliRawReaderFile freader;
192                                        AliRawReaderDate dreader(NULL,0);
193                                        AliRawReaderRoot rreader(NULL,0);])],
194                                      [AC_DEFINE(HAVE_ALIRAWDATA)
195                                        ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
196                                        have_alirawdata=$CHECKLIB], 
197                                       [have_alirawdata=no])
198         ]) dnl AC_CHECK_LIB RAWDatabase
199   AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
200   AC_MSG_RESULT([$have_alirawdata])
201
202   # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
203   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER"
204   CHECKLIB=CDB
205   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
206
207   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
208   CHECKLIB=STEER
209   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
210
211   dnl
212   dnl check whether AliLog supports notification callback
213   dnl
214   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
215   have_alilog_notification=no
216   if test ! "x$have_aliroot" = "xno" ; then
217   AC_MSG_CHECKING([whether AliLog supports notification callback])
218   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>], 
219                                   [AliLog::AliLogNotification fct])],
220                                   [have_alilog_notification=yes], 
221                                   [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
222   AC_MSG_RESULT([$have_alilog_notification])
223   fi
224
225   if test "x$have_aliroot" = "xno" ; then
226     # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
227     # but library dependencies might not be resolved completely
228     #ALIROOT_CPPFLAGS=
229     AC_MSG_WARN([some of the AliRoot library dependencies are not resolved.
230     This can happen from time to time due to development in AliRoot. You can
231     force compilation of detector libs by --enable-<detector>, but be aware
232     of unresolved references at runtime.])
233     AC_MSG_WARN([       ------------------------------------------ ])
234     AC_MSG_WARN([       Report this to $PACKAGE_BUGREPORT ])
235     AC_MSG_WARN([       please include config.log                  ])
236     AC_MSG_WARN([       ------------------------------------------ ])
237     ALIROOT_LDFLAGS=
238     ALIROOT_LIBS=
239   fi
240
241   dnl
242   dnl required header files and libraries for modules
243   dnl
244   if test ! "x$have_aliroot" = "xno" ; then
245     # the HLTTPCLib needs to link agains TPCbase and TPCrec
246     # TPC library for AliTPCParam and AliSimDigits used in 
247     # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx
248     # fram May 07 TPCbase depends on libGui.so
249     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
250     have_alitpc=yes
251     AC_MSG_CHECKING(for required classes in TPC libraries)
252     if test ! "x$have_alitpc" = "xno" ; then
253       ALITPC_LIBS="-lGui -lTPCbase -lTPCrec"
254       LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
255       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliSimDigits.h>
256                                        #include <AliTPCParam.h>
257                                        #include <AliTPCParamSR.h>
258                                        #include <AliTPCDigitsArray.h>
259                                        #include <AliTPCClustersArray.h>
260                                        #include <AliTPCcluster.h>     
261                                        #include <AliTPCClustersRow.h>], 
262                                       [AliSimDigits dig;
263                                        AliTPCParam param;
264                                        AliTPCParamSR paramsr;
265                                        AliTPCDigitsArray digarray;
266                                        AliTPCClustersArray clustarray;
267                                        AliTPCcluster clust;
268                                        AliTPCClustersRow row])],
269                                       [AC_DEFINE(HAVE_ALITPC)], 
270                                       [have_alitpc=no
271                                        ALITPC_LIBS= ])
272     fi
273     AC_MSG_RESULT($have_alitpc)
274   fi
275   AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
276   AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
277
278   have_tpc_mapping=no
279   if test ! "x$have_aliroot" = "xno" ; then
280     # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC 
281     # which is stored in the TPC/mapping/Patchx.data files from
282     # AliRoot version v4-04-Release (May 2006)
283     AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
284     TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
285     AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], 
286                    [have_tpc_mapping=yes
287                     AC_SUBST(TPC_PAD_MAPPING_PATH)
288                     AC_DEFINE(HAVE_TPC_MAPPING)],
289                    [])
290     
291   fi
292   AC_MSG_CHECKING([for TPC mapping layout])
293   AC_MSG_RESULT([$have_tpc_mapping])
294
295   if test ! "x$have_alirawdata" = "xno" ; then
296     # check for header files needed by the TPCLib/AliHLTTPCDigitReaderPacket
297     # the header file has been moved to the TPC module
298     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS  -I${ALICE_ROOT}/TPC"
299     # AliRawReaderMemory.h AliRawReaderFile.h already checked
300     #AC_CHECK_HEADERS([AliRawReaderMemory.h AliRawReaderFile.h AliTPCRawStream.h])
301     AC_CHECK_HEADERS([AliTPCRawStream.h])
302   fi
303
304   dnl
305   dnl Check for the interface of AliExternalTrackParam which has been changed
306   dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
307   dnl or higher)
308   externaltrackparam_version=1
309   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>], 
310                                   [AliExternalTrackParam trackparam;
311                                    Double_t param[[5]]; Double_t covar[[15]];
312                                    trackparam.Set(0., 0., param, covar);])],
313                                   [externaltrackparam_version=2],
314                                   [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
315   AC_MSG_CHECKING(for version of AliExternalTrackParam)
316   AC_MSG_RESULT($externaltrackparam_version)
317
318   CPPFLAGS=$save_CPPFLAGS
319   LDFLAGS=$save_LDFLAGS
320   LIBS=$save_LIBS
321 fi
322
323 AC_LANG_POP(C++)
324 AC_SUBST([ALICE_ROOT])
325 AC_SUBST([ALIROOT_CPPFLAGS])
326 AC_SUBST([ALIROOT_LDFLAGS])
327 AC_SUBST([ALIROOTBINDIR])
328 AC_SUBST([ALIROOTLIBDIR])
329 AC_SUBST([ALIROOT_LIBS])
330 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
331
332 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
333 HLTBASE_LDFLAGS=
334 AC_SUBST([HLTBASE_CPPFLAGS])
335 AC_SUBST([HLTBASE_LDFLAGS])
336
337 dnl ------------------------------------------------------------------
338 dnl check for the HLT PubSub Framework
339 dnl namely for the existence of the HOMER library
340 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
341 dnl package. It os though possible to choose an external. library
342 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
343 dnl got the name libAliHLTHOMER
344 AC_MSG_CHECKING([for HLT PubSub Framework])
345 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
346                     [],
347                     [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
348 if test -z $with_pubsub || ! test -d $with_pubsub ; then
349   with_pubsub=no
350 fi
351 AC_MSG_RESULT([$with_pubsub])
352 HOMER_VERSION=2
353 HOMER_LIBS=
354
355 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
356 if test "x$with_pubsub" != "xno" ; then
357   save_CPPFLAGS=$CPPFLAGS
358   save_LDFLAGS=$LDFLAGS
359   save_LIBS=$LIBS
360   # currently the different versions of the HLT PubSub framework have a different
361   # directory layout
362   if test -d ${with_pubsub}/include/HOMER ; then
363     # the 'early' location of the include files with separated HOMER sub dirs
364     HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
365   elif test -d ${with_pubsub}/include/Util/HOMER ; then
366     # location for HLT Framework versions after Sep 2006
367     HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
368   elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
369     # fall back if include files were not installed (versions after Sep 06)
370     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
371   else
372     # fall back if include files were not installed (versions before Sep 06)
373     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
374   fi
375   HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
376
377   AC_ARG_ENABLE(pubsub-debug,
378     [AC_HELP_STRING([--disable-pubsub-debug],
379         [force the production version of the PubSub framework])],
380     [],[enable_pubsub_debug=yes])
381   homer_type="none"
382   HOMER_TARGET="`uname -s`-`uname -m`"
383   AC_MSG_CHECKING([for HLT PubSub Framework release type])
384   if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
385     homer_type="production"
386     HOMER_TARGET="${HOMER_TARGET}-release"
387   elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
388     homer_type="debug"
389     HOMER_TARGET="${HOMER_TARGET}-debug"
390   fi
391   AC_MSG_RESULT([${homer_type}])
392   HOMERREADER_HEADER=HOMERReader.h
393   HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
394   HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
395   HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
396   CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
397   LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
398   LIBS="$save_LIBS "
399   with_homer=no
400   AC_LANG_PUSH(C++)
401   AC_CHECK_HEADER([$HOMERREADER_HEADER],
402     [ AC_CHECK_LIB([HOMER],[_init],
403       [with_homer=yes
404        HOMER_LIBS="-lHOMER"],
405       [ AC_CHECK_LIB([HOMERReader],[_init],
406                      [with_homer=yes
407                       HOMER_LIBS="-lHOMERReader"])])
408       LIBS="$LIBS $HOMER_LIBS"
409       AC_MSG_CHECKING([version of HOMER library])
410       dnl The Homer library has no versioning, so we do our own
411       dnl version           description
412       dnl ----------------------------------------------------------------------
413       dnl   1          inintial version
414       dnl   2          GetBlockStatusFlags added to the interface
415       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
416                                       [HOMERReader reader("dummy", 0);
417                                        reader.GetBlockStatusFlags(0);])],
418                                       [],
419                                       [HOMER_VERSION=1])
420       AC_MSG_RESULT([$HOMER_VERSION])
421   ],
422   [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
423   AC_LANG_POP(C++)
424   HOMER_INBUILT_LIB=
425 else
426 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
427   topdir=`dirname $0`
428   HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
429   HOMERREADER_HEADER=AliHLTHOMERReader.h
430   HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
431   HOMER_BINDIR=
432   HOMER_LIBDIR=
433   HOMER_LDFLAGS=
434 fi
435
436   if test "x$with_homer" = "xno" ; then
437     HOMER_CPPFLAGS=
438     HOMER_LDFLAGS=
439     HOMER_LIBS=
440   else
441     HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
442     AC_DEFINE(HAVE_HOMERREADER)
443   fi
444   CPPFLAGS="$save_CPPFLAGS"
445   LDFLAGS="$save_LDFLAGS"
446   LIBS="$save_LIBS"  
447
448 AC_SUBST([HOMERREADER_HEADER])
449 AC_SUBST([HOMER_INBUILT_LIB])
450 AC_SUBST([HOMER_CPPFLAGS])
451 AC_SUBST([HOMER_LDFLAGS])
452 AC_SUBST([HOMER_LIBDIR])
453 AC_SUBST([HOMER_BINDIR])
454 AC_SUBST([HOMER_LIBS])
455
456 dnl ------------------------------------------------------------------
457 AC_MSG_CHECKING([whether to impose strict coding conventions])
458 AC_ARG_ENABLE(strict,
459   [AC_HELP_STRING([--disable-strict],
460       [disable coding convention checks ])],
461   [],[enable_strict=yes])
462 if test "x$enable_strict" = "xyes" ; then
463    CPPFLAGS="$CPPFLAGS -Weffc++"
464 fi
465 AC_MSG_RESULT([$enable_strict])
466
467 dnl ------------------------------------------------------------------
468 AC_MSG_CHECKING([whether to compile sample library])
469 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
470 AC_ARG_ENABLE(sample,
471   [AC_HELP_STRING([--disable-sample],
472       [compile the sample library ])],
473   [],
474   [if test "x$have_aliroot" = "xno" ; then
475      enable_sample="no...requires.AliRoot"
476    else
477      enable_sample=yes
478    fi
479   ])
480
481 if test "x$enable_sample" = "xyes" ; then 
482   AC_DEFINE(HLT_SAMPLE)
483 fi
484 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
485 AC_MSG_RESULT([$enable_sample])
486
487 dnl ------------------------------------------------------------------
488 AC_MSG_CHECKING([whether to compile util library])
489 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
490 AC_ARG_ENABLE(util,
491   [AC_HELP_STRING([--disable-util],
492       [compile the util library ])],
493   [],
494   [if test "x$have_aliroot" = "xno" ; then
495      enable_util="no...requires.AliRoot"
496    else
497      enable_util=yes
498    fi
499   ])
500
501 if test "x$enable_util" = "xyes" ; then 
502   AC_DEFINE(HLT_UTIL)
503 fi
504 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
505 AC_MSG_RESULT([$enable_util])
506
507 dnl ------------------------------------------------------------------
508 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
509
510 CHECK_HLTMODULE([tpc],
511                 [], [],
512                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
513                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
514                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
515
516 if test "x$enable_module" = "xmissheader"; then
517   enable_module="no...missing.headers"
518   enable_tpc="no...missing.headers"
519 elif test "x$have_alitpc" = "xno" ; then
520   enable_module="no...requires.AliRoot.TPC.libraries"
521   enable_tpc="no...requires.AliRoot.TPC.libraries"
522 elif test "x$enable_module" = "xforce"; then
523   enable_tpc="yes"
524 else
525   enable_tpc=$enable_module
526 fi
527
528 if test "x$enable_tpc" = "xyes" ; then 
529   AC_DEFINE(HLT_TPC)
530 fi
531 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
532 AC_MSG_CHECKING([whether to compile tpc library])
533 AC_MSG_RESULT([$enable_module])
534 AC_SUBST([ALITPC_LIBS])
535
536 dnl ------------------------------------------------------------------
537 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
538   
539 ALIPHOS_LIBS=
540 CHECK_HLTMODULE([phos],
541                 [], [$ALIROOT_CPPFLAGS],
542                 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
543                 [PHOSbase PHOSrec PHOSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
544                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
545
546 if test "x$enable_module" = "xmissheader"; then
547   enable_module="no...requires.AliRoot>v4-05-07"
548   enable_phos="no...requires.AliRoot>v4-05-07"
549 elif test "x$enable_module" = "xforce"; then
550   enable_phos="yes"
551 else
552   have_alicalorawstream=no
553   if test ! "x$have_aliroot" = "xno" ; then
554     AC_LANG_PUSH(C++)
555     save_CPPFLAGS="$CPPFLAGS"
556     # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
557     #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
558     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
559     AC_MSG_CHECKING([for AliCaloRawStream.h usability])
560     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
561                                         #include <AliCaloRawStream.h>], 
562                                        [int i])],
563                                        [AC_DEFINE(HAVE_ALICALORAWSTREAM)
564                                         have_alicalorawstream=yes], 
565                                        [])
566     AC_MSG_RESULT([$have_alicalorawstream])
567     AC_LANG_POP(C++)
568     CPPFLAGS="$save_CPPFLAGS"
569   fi
570   if test "x$have_alicalorawstream" != "xyes"; then
571     enable_phos="no...requires.AliRoot>v4-05-07"
572   else
573     enable_phos=$enable_module
574   fi
575 fi
576
577 if test "x$enable_phos" = "xyes" ; then 
578   AC_DEFINE(HLT_PHOS)
579   ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
580 fi
581 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
582 AC_MSG_CHECKING([whether to compile phos library])
583 AC_MSG_RESULT([$enable_module])
584 AC_SUBST([ALIPHOS_LIBS])
585
586 dnl ------------------------------------------------------------------
587 AH_TEMPLATE([HLT_TRD],[hlt trd library])
588   
589 ALITRD_LIBS=
590 CHECK_HLTMODULE([trd],
591                 [], [],
592                 [MLP], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
593                 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
594                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
595
596 if test "x$enable_module" = "xmissheader"; then
597   enable_module="no...requires.AliRoot>v4-07-Release"
598   enable_trd="no...requires.AliRoot>v4-07-Release"
599 elif test "x$enable_module" = "xforce"; then
600   enable_trd="yes"
601 else
602   enable_trd=$enable_module
603   if test "x$enable_trd" = "xyes" ; then
604     AC_LANG_PUSH(C++)
605     save_CPPFLAGS="$CPPFLAGS"
606     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
607     AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
608     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>], 
609                                        [AliTRDclusterizer c;
610                                        c.SetRawVersion(0)])],
611                                        [], 
612                                        [enable_trd="no...requires.AliRoot>v4-07-Release"])
613     AC_MSG_RESULT([$enable_trd])       
614     AC_LANG_POP(C++)
615     CPPFLAGS="$save_CPPFLAGS"
616   fi
617 fi
618
619 if test "x$enable_trd" = "xyes" ; then 
620   AC_DEFINE(HLT_TRD)
621   ALITRD_LIBS=$ALIHLTMODULE_LIBS
622 fi
623 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
624 AC_MSG_CHECKING([whether to compile trd library])
625 AC_MSG_RESULT([$enable_module])
626 AC_SUBST([ALITRD_LIBS])
627
628 dnl ------------------------------------------------------------------
629 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
630
631 ALIMUON_LIBS=
632 CHECK_HLTMODULE([dimuon],
633 <<<<<<< configure.ac
634                 [AliMUONTriggerIO.h AliMUONVCluster.h], 
635                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON],
636 =======
637                 [AliMpExMap.h AliMUONTriggerIO.h], 
638                 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
639 >>>>>>> 1.54
640                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
641                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
642                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
643
644 if test "x$enable_module" = "xmissheader"; then
645   enable_module="no...requires.AliRoot>=v4-08-Release"
646   enable_muon="no...requires.AliRoot>=v4-08-Release"
647 elif test "x$enable_module" = "xforce"; then
648   enable_muon="yes"
649 else
650   enable_muon=$enable_module
651 fi
652
653 if test "x$enable_muon" = "xyes" ; then 
654   AC_DEFINE(HLT_MUON)
655   ALIMUON_LIBS=$ALIHLTMODULE_LIBS
656 fi
657 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
658 AC_MSG_CHECKING([whether to compile muon library])
659 AC_MSG_RESULT([$enable_module])
660 AC_SUBST([ALIMUON_LIBS])
661
662 dnl ------------------------------------------------------------------
663 AH_TEMPLATE([HLT_COMP],[hlt comp library])
664
665 ALICOMP_LIBS=
666 CHECK_HLTMODULE([comp],
667                 [], [$ALIROOT_CPPFLAGS],
668                 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
669                 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
670                 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
671
672 if test "x$enable_module" = "xmissheader"; then
673   enable_module="no...header.missing"
674   enable_comp="no...header.missing"
675 elif test "x$enable_module" = "xforce"; then
676   enable_comp="yes"
677 else
678   enable_comp=$enable_module
679 fi
680
681 if test "x$enable_comp" = "xyes" ; then 
682   AC_DEFINE(HLT_COMP)
683   ALICOMP_LIBS=$ALIHLTMODULE_LIBS
684 fi
685 AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
686 AC_MSG_CHECKING([whether to compile comp library])
687 AC_MSG_RESULT([$enable_module])
688 AC_SUBST([ALICOMP_LIBS])
689
690 dnl ------------------------------------------------------------------
691 AC_MSG_CHECKING([whether to disable AliRoot logging])
692 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
693 AC_ARG_ENABLE(aliroot-logging,
694   [AC_HELP_STRING([--disable-aliroot-logging],
695       [disable logging through AliRoot logging methods])],
696   [],[enable_aliroot_logging=no])
697 if test "x$have_aliroot" = "xno" ; then
698   enable_aliroot_logging=yes # this means 'disable'
699 fi
700 if test "x$enable_aliroot_logging" != "xno" ; then 
701   AC_DEFINE(NOALIROOT_LOGGING)
702 fi
703 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
704 AC_MSG_RESULT([$enable_aliroot_logging])
705
706 dnl ------------------------------------------------------------------
707 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
708 AH_TEMPLATE([DOMC],[MC saving])
709 AC_ARG_ENABLE(mc-saving,
710   [AC_HELP_STRING([--enable-mc-saving],
711       [enable saving MC data through the chain])],
712   [],[enable_mc_saving=no])
713 if test "x$enable_mc_saving" = "xyes" ; then 
714   AC_DEFINE(DOMC)
715 fi
716 AC_MSG_RESULT([$enable_mc_saving])
717
718 dnl ------------------------------------------------------------------
719 dnl certainly something old, but we keep the define
720 AC_MSG_CHECKING([whether to use ROWHOUGH])
721 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
722 AC_ARG_ENABLE(rowhough,
723   [AC_HELP_STRING([--enable-rowhough],
724       [use ROWHOUGH ])],
725   [],[enable_rowhough=no])
726 if test "x$enable_rowhough" = "xyes" ; then 
727   AC_DEFINE(USEROWHOUGH)
728 fi
729 AC_MSG_RESULT([$enable_rowhough])
730
731 dnl ------------------------------------------------------------------
732 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
733 dnl stand-alone build system. This is most likely something old we can
734 dnl get rid off later, or do something more reasonable. Since the define
735 dnl needs the quotes they have to be  escaped. This works well for the
736 dnl Makefile but not for the configure script. So we have to add the
737 dnl defines after all the other checks.
738 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
739 if test ! "x$have_aliroot" = "xno" ; then
740   CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
741 fi
742
743 dnl ------------------------------------------------------------------
744 dnl
745 dnl Documentation
746 dnl
747 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
748 AC_PATH_PROG(PERL, perl)
749 AC_PATH_PROG(DOXYGEN, doxygen)
750 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
751 AC_ARG_ENABLE(dot,
752   [AC_HELP_STRING([--enable-dot],
753       [enable dot documentation generator])],
754   [],[enable_dot=no])
755 HAVE_DOT=NO
756 DOT_PATH=
757 AC_PATH_PROG(DOT, dot)
758 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
759    HAVE_DOT=YES
760    DOT_PATH=`dirname $DOT`
761 fi
762 AC_SUBST([HAVE_DOT])
763 AC_SUBST([DOT_PATH])
764
765 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
766 dnl echo $HAVE_SRC_SUBDIR
767 dnl if ! test -d $HAVE_SRC_SUBDIR; then
768 dnl   HAVE_SRC_SUBDIR=
769 dnl fi
770 dnl AC_SUBST([HAVE_SRC_SUBDIR])
771
772 dnl ------------------------------------------------------------------
773 dnl inatallation directory for libraries
774 dnl 
775 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
776 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
777 AC_MSG_NOTICE([libdir set to $libdir])
778 fi
779 dnl ------------------------------------------------------------------
780 AC_CONFIG_FILES([Makefile 
781                  BASE/Makefile
782                  BASE/setenv.sh
783                  BASE/setenv.csh
784                  BASE/HOMER/Makefile
785                  BASE/util/Makefile
786                  BASE/interface/Makefile
787                  sim/Makefile
788                  rec/Makefile
789                  SampleLib/Makefile
790                  TPCLib/Makefile
791                  TPCLib/mapping2array.cxx
792                  TPCLib/OnlineDisplay/Makefile
793                  PHOS/Makefile
794                  TRD/Makefile
795                  MUON/Makefile
796                  trigger/Makefile
797                  comp/Makefile
798                  doc/Makefile
799                  doc/doxygen.conf])
800
801
802 AC_OUTPUT
803 dnl
804 dnl EOF
805 dnl
806