]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/configure.ac
merged branch tag HLT-v0-7-Rev00 to HEAD
[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.8-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   ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO'
64   for CHECKLIB in $ROOT_CHECKLIBS ; do
65     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
66     LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
67     AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
68   done
69
70   # TBuffer.h has been made pure virtual in root v5-15-02 and one
71   # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h)
72   AC_CHECK_HEADERS([TBufferFile.h])
73
74   # TView.h has been made pure virtual right after root v5-15-02 and one
75   # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D)
76   AC_CHECK_HEADERS([TView3D.h])
77
78   CPPFLAGS=$save_CPPFLAGS
79   LDFLAGS=$save_LDFLAGS
80   LIBS=$save_LIBS
81   AC_LANG_POP(C++)
82 fi
83
84 dnl ------------------------------------------------------------------
85 # TODO: make this configurable through arguments
86 #Define whether you want to run with ALIROOT or only ROOT
87 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
88 ALIHLT_USEPACKAGE=ALIROOT
89 #ALIHLT_USEPACKAGE=ROOT
90 #ALIHLT_USEPACKAGE=STANDALONE
91 AC_DEFINE(use_aliroot)
92 AC_DEFINE(use_root)
93 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
94
95 dnl ------------------------------------------------------------------
96 dnl check for AliRoot features
97 AC_LANG_PUSH(C++)
98 have_aliroot=no
99 AC_ARG_WITH(aliroot,[  --with-aliroot   top of the AliRoot installation],
100                     [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
101                     [])
102
103 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
104   dnl ------------------------------------------------------------------
105   dnl Try to estimate the system architecture
106   case $host_os:$host_cpu in
107   linux*:x86_64*)       alice_target='linuxx8664gcc'            ;;
108   linux*)               alice_target='linux'                    ;;
109   *)                    alice_target='unknown'                  ;;
110   esac
111   if test "x$alice_target" = "xunknown" ; then
112     if test -z $ALICE_TARGET ; then
113     AC_MSG_ERROR([Can not estimate system architecture.
114     To avoid the problem, set the ALICE_TARGET variable appropriately.
115     Please send the following information to Matthias.Richter@ift.uib.no:
116         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
117     else
118     AC_MSG_NOTICE([Unknown system architecture.
119     Please send the following information to Matthias.Richter@ift.uib.no:
120         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])  
121     fi
122   else
123     if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
124     AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
125     overriding $ALICE_TARGET by $alice_target])
126     fi
127     ALICE_TARGET=$alice_target
128   fi
129   ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
130   ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
131   ALIROOTINCDIR=${ALICE_ROOT}/include
132   test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
133   test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
134   test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
135 fi
136
137 AC_MSG_CHECKING([for AliRoot])
138 if test "x$ALICE_ROOT" != "x" \
139    && test -d ${ALIROOTBINDIR} \
140    && test -d ${ALIROOTLIBDIR} \
141    && test -d ${ALIROOTINCDIR}; then
142   have_aliroot=$ALICE_ROOT
143 else
144   ALIROOTBINDIR=
145   ALIROOTLIBDIR=
146   ALIROOTINCDIR=
147 fi
148 AC_MSG_RESULT([$have_aliroot])
149
150 if test ! "x$have_aliroot" = "xno" ; then
151   ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
152   ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
153   ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
154   save_CPPFLAGS=$CPPFLAGS
155   save_LDFLAGS=$LDFLAGS
156   save_LIBS=$LIBS
157   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
158   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
159   
160   # libSTEERBase present since Aug 7 2007
161   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
162   CHECKLIB=STEERBase
163   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
164
165   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
166   CHECKLIB=AOD
167   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
168
169   # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
170   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
171   CHECKLIB=CDB
172   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
173
174   # check for certain AliRoot libraries/files/features
175   # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
176   have_alirawdata=no
177   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
178   CHECKLIB=RAWDatabase
179   AC_CHECK_LIB([$CHECKLIB],[_init],
180         [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
181          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
182          CHECKLIB=RAWDatarec
183          AC_CHECK_LIB([$CHECKLIB],[_init],
184                [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
185                 AC_DEFINE(HAVE_ALIRAWDATA)
186                 have_alirawdata=$CHECKLIB])],
187         [# second pass with -RAWData
188          CHECKLIB="-lRAWData"
189          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
190          AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
191                                        #include <AliRawReaderFile.h>
192                                        #include <AliRawReaderDate.h>
193                                        #include <AliRawReaderRoot.h>], 
194                                      [AliRawReaderMemory mreader;
195                                        AliRawReaderFile freader;
196                                        AliRawReaderDate dreader(NULL,0);
197                                        AliRawReaderRoot rreader(NULL,0);])],
198                                      [AC_DEFINE(HAVE_ALIRAWDATA)
199                                        ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
200                                        have_alirawdata=$CHECKLIB], 
201                                       [have_alirawdata=no])
202         ]) dnl AC_CHECK_LIB RAWDatabase
203   AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
204   AC_MSG_RESULT([$have_alirawdata])
205
206   dnl
207   dnl required header files and libraries for the AliHLTTPC library  
208   dnl
209   if test ! "x$have_aliroot" = "xno" ; then
210     # the HLTTPCLib needs to link agains TPCbase and TPCrec
211     # TPC library for AliTPCParam and AliSimDigits used in 
212     # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx
213     # fram May 07 TPCbase depends on libGui.so
214     saveALIROOT_CPPFLAGS="$ALIROOT_CPPFLAGS"
215     ALIROOT_CPPFLAGS="$saveALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
216     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
217     have_alitpc=yes
218     AC_MSG_CHECKING(for required classes in TPC libraries)
219     if test ! "x$have_alitpc" = "xno" ; then
220       save_ALIROOT_LIBS=$ALIROOT_LIBS
221       ALIROOT_LIBS="$save_ALIROOT_LIBS -lTPCbase -lTPCrec -lGui -lSTEER"
222       LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
223       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliSimDigits.h>
224                                        #include <AliTPCParam.h>
225                                        #include <AliTPCParamSR.h>
226                                        #include <AliTPCDigitsArray.h>
227                                        #include <AliTPCClustersArray.h>
228                                        #include <AliTPCcluster.h>     
229                                        #include <AliTPCClustersRow.h>], 
230                                       [AliSimDigits dig;
231                                        AliTPCParam param;
232                                        AliTPCParamSR paramsr;
233                                        AliTPCDigitsArray digarray;
234                                        AliTPCClustersArray clustarray;
235                                        AliTPCcluster clust;
236                                        AliTPCClustersRow row])],
237                                       [AC_DEFINE(HAVE_ALITPC)
238                                        saveALIROOT_CPPFLAGS=$ALIROOT_CPPFLAGS
239                                        saveALIROOT_LIBS=$ALIROOT_LIBS], 
240                                       [have_alitpc=no
241                                        ALIROOT_CPPFLAGS=$saveALIROOT_CPPFLAGS
242                                        ALIROOT_LIBS=$saveALIROOT_LIBS])
243     fi
244     AC_MSG_RESULT($have_alitpc)
245   fi
246   AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
247   AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
248
249   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
250   CHECKLIB=STEER
251   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"],[have_aliroot=no])
252
253   dnl
254   dnl check whether AliLog supports notification callback
255   dnl
256   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
257   have_alilog_notification=no
258   if test ! "x$have_aliroot" = "xno" ; then
259   AC_MSG_CHECKING([whether AliLog supports notification callback])
260   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliLog.h>], 
261                                   [AliLog::AliLogNotification fct])],
262                                   [have_alilog_notification=yes], 
263                                   [AC_DEFINE(NO_ALILOG_NOTIFICATION)])
264   AC_MSG_RESULT([$have_alilog_notification])
265   fi
266
267   dnl
268   dnl Check for the interface of AliExternalTrackParam which has been changed
269   dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
270   dnl or higher)
271   externaltrackparam_version=1
272   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>], 
273                                   [AliExternalTrackParam trackparam;
274                                    Double_t param[[5]]; Double_t covar[[15]];
275                                    trackparam.Set(0., 0., param, covar);])],
276                                   [externaltrackparam_version=2],
277                                   [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
278   AC_MSG_CHECKING(for version of AliExternalTrackParam)
279   AC_MSG_RESULT($externaltrackparam_version)
280
281   dnl
282   dnl required header files and libraries for the AliHLTPHOS library  
283   dnl
284   have_alicalorawstream=no
285   if test ! "x$have_aliroot" = "xno" ; then
286     # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
287     #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
288     AC_MSG_CHECKING([for AliCaloRawStream.h usability])
289     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
290                                      #include <AliCaloRawStream.h>], 
291                                     [int i])],
292                                     [AC_DEFINE(HAVE_ALICALORAWSTREAM)
293                                      have_alicalorawstream=yes], 
294                                     [])
295     AC_MSG_RESULT([$have_alicalorawstream])
296   fi
297
298   dnl
299   dnl required header files and libraries for the AliHLTTRD library  
300   dnl
301   AC_CHECK_HEADERS([AliGeomManager.h], [], [AC_DEFINE([HAVNT_ALIGEOMMANAGER])])
302
303   if test ! "x$have_alirawdata" = "xno" ; then
304     # check for header files needed by the TPCLib/AliHLTTPCDigitReaderPacket
305     # the header file has been moved to the TPC module
306     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
307     # AliRawReaderMemory.h AliRawReaderFile.h already checked
308     #AC_CHECK_HEADERS([AliRawReaderMemory.h AliRawReaderFile.h AliTPCRawStream.h])
309     AC_CHECK_HEADERS([AliTPCRawStream.h])
310   fi
311
312   have_tpc_mapping=no
313   if test ! "x$have_aliroot" = "xno" ; then
314     # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC 
315     # which is stored in the TPC/mapping/Patchx.data files from
316     # AliRoot version v4-04-Release (May 2006)
317     AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
318     TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
319     AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], 
320                    [have_tpc_mapping=yes
321                     AC_SUBST(TPC_PAD_MAPPING_PATH)
322                     AC_DEFINE(HAVE_TPC_MAPPING)],
323                    [])
324     
325   fi
326   AC_MSG_CHECKING([for TPC mapping layout])
327   AC_MSG_RESULT([$have_tpc_mapping])
328
329   if test "x$have_aliroot" = "xno" ; then
330     # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation
331     # but library dependencies might not be resolved completely
332     #ALIROOT_CPPFLAGS=
333     AC_MSG_WARN([some of the AliRoot library dependencies are not resolved. You
334     can force compilation of detector libs by --enable-<detector>, but be aware
335     of unresolved references at runtime.])
336     AC_MSG_WARN([       ------------------------------------------ ])
337     AC_MSG_WARN([       Report this to $PACKAGE_BUGREPORT ])
338     AC_MSG_WARN([       ------------------------------------------ ])
339     ALIROOT_LDFLAGS=
340     ALIROOT_LIBS=
341   fi
342   CPPFLAGS=$save_CPPFLAGS
343   LDFLAGS=$save_LDFLAGS
344   LIBS=$save_LIBS
345 fi
346 AC_LANG_POP(C++)
347 AC_SUBST([ALICE_ROOT])
348 AC_SUBST([ALIROOT_CPPFLAGS])
349 AC_SUBST([ALIROOT_LDFLAGS])
350 AC_SUBST([ALIROOTBINDIR])
351 AC_SUBST([ALIROOTLIBDIR])
352 AC_SUBST([ALIROOT_LIBS])
353 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
354
355 HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
356 HLTBASE_LDFLAGS=
357 AC_SUBST([HLTBASE_CPPFLAGS])
358 AC_SUBST([HLTBASE_LDFLAGS])
359
360 dnl ------------------------------------------------------------------
361 dnl check for the HLT PubSub Framework
362 AC_MSG_CHECKING([for HLT PubSub Framework])
363 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
364                     [],
365                     [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
366 if test -z $with_pubsub || ! test -d $with_pubsub ; then
367   with_pubsub=no
368 fi
369 AC_MSG_RESULT([$with_pubsub])
370 HOMER_VERSION=1
371 HOMER_LIBS=
372
373 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
374 if test "x$with_pubsub" != "xno" ; then
375   save_CPPFLAGS=$CPPFLAGS
376   save_LDFLAGS=$LDFLAGS
377   save_LIBS=$LIBS
378   # currently the different versions of the HLT PubSub framework have a different
379   # directory layout
380   if test -d ${with_pubsub}/include/HOMER ; then
381     # the 'early' location of the include files with separated HOMER sub dirs
382     HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
383   elif test -d ${with_pubsub}/include/Util/HOMER ; then
384     # location for HLT Framework versions after Sep 2006
385     HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
386   elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
387     # fall back if include files were not installed (versions after Sep 06)
388     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
389   else
390     # fall back if include files were not installed (versions before Sep 06)
391     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
392   fi
393   HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
394
395   AC_ARG_ENABLE(pubsub-debug,
396     [AC_HELP_STRING([--disable-pubsub-debug],
397         [force the production version of the PubSub framework])],
398     [],[enable_pubsub_debug=yes])
399   homer_type="none"
400   HOMER_TARGET="`uname -s`-`uname -m`"
401   AC_MSG_CHECKING([for HLT PubSub Framework release type])
402   if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
403     homer_type="production"
404     HOMER_TARGET="${HOMER_TARGET}-release"
405   elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
406     homer_type="debug"
407     HOMER_TARGET="${HOMER_TARGET}-debug"
408   fi
409   AC_MSG_RESULT([${homer_type}])
410   HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
411   HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
412   HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
413   CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
414   LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
415   LIBS="$save_LIBS "
416   with_homer=no
417   AC_LANG_PUSH(C++)
418   AC_CHECK_HEADER([HOMERReader.h],
419     [ AC_CHECK_LIB([HOMER],[_init],
420       [with_homer=yes
421        HOMER_LIBS="-lHOMER"],
422       [ AC_CHECK_LIB([HOMERReader],[_init],
423                      [with_homer=yes
424                       HOMER_LIBS="-lHOMERReader"])])
425       LIBS="$LIBS $HOMER_LIBS"
426       AC_MSG_CHECKING([version of HOMER library])
427       dnl The Homer library has no versioning, so we do our own
428       dnl version           description
429       dnl ----------------------------------------------------------------------
430       dnl   1          inintial version
431       dnl   2          GetBlockStatusFlags added to the interface
432       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
433                                       [HOMERReader reader("dummy", 0);
434                                        reader.GetBlockStatusFlags(0);])],
435                                       [if test $HOMER_VERSION -lt 2 ; then HOMER_VERSION=2; fi],
436                                       [])
437       AC_MSG_RESULT([$HOMER_VERSION])
438   ]) #AC_CHECK_HEADER([HOMERReader.h])
439   AC_LANG_POP(C++)
440   if test "x$with_homer" = "xno" ; then
441     HOMER_CPPFLAGS=
442     HOMER_LDFLAGS=
443     HOMER_LIBS=
444   else
445     HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
446     AC_DEFINE(HAVE_HOMERREADER)
447   fi
448   CPPFLAGS="$save_CPPFLAGS"
449   LDFLAGS="$save_LDFLAGS"
450   LIBS="$save_LIBS"  
451 fi
452 AC_SUBST([HOMER_CPPFLAGS])
453 AC_SUBST([HOMER_LDFLAGS])
454 AC_SUBST([HOMER_LIBDIR])
455 AC_SUBST([HOMER_BINDIR])
456 AC_SUBST([HOMER_LIBS])
457
458 dnl ------------------------------------------------------------------
459 AC_MSG_CHECKING([whether to impose strict coding conventions])
460 AC_ARG_ENABLE(strict,
461   [AC_HELP_STRING([--enable-strict],
462       [enable coding convention checks ])],
463   [],[enable_strict=no])
464 if test "x$enable_strict" = "xyes" ; then
465    CPPFLAGS="$CPPFLAGS -Weffc++"
466 fi
467 AC_MSG_RESULT([$enable_strict])
468
469 dnl ------------------------------------------------------------------
470 AC_MSG_CHECKING([whether to compile sample library])
471 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
472 AC_ARG_ENABLE(sample,
473   [AC_HELP_STRING([--disable-sample],
474       [compile the sample library ])],
475   [sample_force=yes],[enable_sample=yes])
476 if test "x$sample_force" = "xyes" ; then
477    enable_sample="yes"   
478 elif test "x$have_aliroot" = "xno" ; then
479    enable_sample="no...requires.AliRoot"
480 fi
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   [util_force=yes],[enable_util=yes])
494 if test "x$util_force" = "xyes" ; then
495    enable_util="yes"   
496 elif test "x$have_aliroot" = "xno" ; then
497    enable_util="no...requires.AliRoot"
498 fi
499
500 if test "x$enable_util" = "xyes" ; then 
501   AC_DEFINE(HLT_UTIL)
502 fi
503 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
504 AC_MSG_RESULT([$enable_util])
505
506 dnl ------------------------------------------------------------------
507 AC_MSG_CHECKING([whether to compile tpc library])
508 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
509 AC_ARG_ENABLE(tpc,
510   [AC_HELP_STRING([--disable-tpc],
511       [compile the tpc library ])],
512   [tpc_force=yes],[enable_tpc=yes])
513 if test "x$tpc_force" = "xyes" ; then
514    enable_tpc="yes"   
515 elif test "x$have_aliroot" = "xno" ; then
516    enable_tpc="no...requires.AliRoot"
517 elif test "x$have_alitpc" = "xno" ; then
518    enable_tpc="no...requires.AliRoot.TPC.libraries"
519 fi
520 if test "x$enable_tpc" = "xyes" ; then 
521   AC_DEFINE(HLT_TPC)
522 fi
523 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
524 AC_MSG_RESULT([$enable_tpc])
525
526 dnl ------------------------------------------------------------------
527 AC_MSG_CHECKING([whether to compile phos library])
528 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
529 AC_ARG_ENABLE(phos,
530   [AC_HELP_STRING([--disable-phos],
531       [compile the phos library ])],
532   [phos_force=yes],[enable_phos=yes])
533 if test "x$phos_force" = "xyes" ; then
534    enable_phos="yes"   
535 elif test "x$have_aliroot" = "xno" ; then
536    enable_phos="no...requires.AliRoot"
537 elif ! test "x$have_alicalorawstream" = "xyes"; then
538    enable_phos="no...requires.AliRoot>v4-05-07"
539 fi
540 if test "x$enable_phos" = "xyes" ; then 
541   AC_DEFINE(HLT_PHOS)
542 fi
543 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
544 AC_MSG_RESULT([$enable_phos])
545
546 dnl ------------------------------------------------------------------
547 AC_MSG_CHECKING([whether to compile trd library])
548 AH_TEMPLATE([HLT_TRD],[hlt trd library])
549 AC_ARG_ENABLE(trd,
550   [AC_HELP_STRING([--disable-trd],
551       [compile the trd library ])],
552   [trd_force=yes],[enable_trd=yes])
553 if test "x$trd_force" = "xyes" ; then
554    enable_trd="yes"   
555 elif test "x$have_aliroot" = "xno" ; then
556    enable_trd="no...requires.AliRoot"
557 fi
558 if test "x$enable_trd" = "xyes" ; then 
559   AC_DEFINE(HLT_TRD)
560 fi
561 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
562 AC_MSG_RESULT([$enable_trd])
563
564 dnl ------------------------------------------------------------------
565 AC_MSG_CHECKING([whether to compile dimuon library])
566 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
567 AC_ARG_ENABLE(dimuon,
568   [AC_HELP_STRING([--disable-dimuon],
569       [compile the dimuon library ])],
570   [dimuon_force=yes],[enable_dimuon=yes])
571 if test "x$dimuon_force" = "xyes" ; then
572    enable_dimuon="yes"   
573 elif test "x$have_aliroot" = "xno" ; then
574    enable_dimuon="no...requires.AliRoot"
575 fi
576 if test "x$enable_dimuon" = "xyes" ; then 
577   AC_DEFINE(HLT_MUON)
578 fi
579 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_dimuon = xyes)
580 AC_MSG_RESULT([$enable_dimuon])
581
582 dnl ------------------------------------------------------------------
583 AC_MSG_CHECKING([whether to disable AliRoot logging])
584 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
585 AC_ARG_ENABLE(aliroot-logging,
586   [AC_HELP_STRING([--disable-aliroot-logging],
587       [disable logging through AliRoot logging methods])],
588   [],[enable_aliroot_logging=no])
589 if test "x$have_aliroot" = "xno" ; then
590   enable_aliroot_logging=yes # this means 'disable'
591 fi
592 if test "x$enable_aliroot_logging" != "xno" ; then 
593   AC_DEFINE(NOALIROOT_LOGGING)
594 fi
595 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
596 AC_MSG_RESULT([$enable_aliroot_logging])
597
598 dnl ------------------------------------------------------------------
599 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
600 AH_TEMPLATE([DOMC],[MC saving])
601 AC_ARG_ENABLE(mc-saving,
602   [AC_HELP_STRING([--enable-mc-saving],
603       [enable saving MC data through the chain])],
604   [],[enable_mc_saving=no])
605 if test "x$enable_mc_saving" = "xyes" ; then 
606   AC_DEFINE(DOMC)
607 fi
608 AC_MSG_RESULT([$enable_mc_saving])
609
610 dnl ------------------------------------------------------------------
611 dnl certainly something old, but we keep the define
612 AC_MSG_CHECKING([whether to use ROWHOUGH])
613 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
614 AC_ARG_ENABLE(rowhough,
615   [AC_HELP_STRING([--enable-rowhough],
616       [use ROWHOUGH ])],
617   [],[enable_rowhough=no])
618 if test "x$enable_rowhough" = "xyes" ; then 
619   AC_DEFINE(USEROWHOUGH)
620 fi
621 AC_MSG_RESULT([$enable_rowhough])
622
623 dnl ------------------------------------------------------------------
624 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
625 dnl stand-alone build system. This is most likely something old we can
626 dnl get rid off later, or do something more reasonable. Since the define
627 dnl needs the quotes they have to be  escaped. This works well for the
628 dnl Makefile but not for the configure script. So we have to add the
629 dnl defines after all the other checks.
630 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
631 if test ! "x$have_aliroot" = "xno" ; then
632   CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
633 fi
634
635 dnl ------------------------------------------------------------------
636 dnl
637 dnl Documentation
638 dnl
639 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
640 AC_PATH_PROG(PERL, perl)
641 AC_PATH_PROG(DOXYGEN, doxygen)
642 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
643 AC_ARG_ENABLE(dot,
644   [AC_HELP_STRING([--enable-dot],
645       [enable dot documentation generator])],
646   [],[enable_dot=no])
647 HAVE_DOT=NO
648 DOT_PATH=
649 AC_PATH_PROG(DOT, dot)
650 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
651    HAVE_DOT=YES
652    DOT_PATH=`dirname $DOT`
653 fi
654 AC_SUBST([HAVE_DOT])
655 AC_SUBST([DOT_PATH])
656
657 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
658 dnl echo $HAVE_SRC_SUBDIR
659 dnl if ! test -d $HAVE_SRC_SUBDIR; then
660 dnl   HAVE_SRC_SUBDIR=
661 dnl fi
662 dnl AC_SUBST([HAVE_SRC_SUBDIR])
663
664 dnl ------------------------------------------------------------------
665 dnl inatallation directory for libraries
666 dnl 
667 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
668 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
669 AC_MSG_NOTICE([libdir set to $libdir])
670 fi
671 dnl ------------------------------------------------------------------
672 AC_CONFIG_FILES([Makefile 
673                  BASE/Makefile
674                  BASE/setenv.sh
675                  BASE/setenv.csh
676                  BASE/util/Makefile
677                  BASE/interface/Makefile
678                  SampleLib/Makefile
679                  TPCLib/Makefile
680                  TPCLib/mapping2array.cxx
681                  TPCLib/OnlineDisplay/Makefile
682                  PHOS/Makefile
683                  TRD/Makefile
684                  MUON/Makefile
685                  doc/Makefile
686                  doc/doxygen.conf])
687
688
689 AC_OUTPUT
690 dnl
691 dnl EOF
692 dnl
693