added libHLTsim and libHLTrec
[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   # check for certain AliRoot libraries/files/features
161   # libSTEERBase present since Aug 7 2007
162   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
163   CHECKLIB=STEERBase
164   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
165
166   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
167   CHECKLIB=AOD
168   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
169
170   # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
171   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
172   CHECKLIB=CDB
173   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
174
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 dnl namely for the existence of the HOMER library
363 dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
364 dnl package. It os though possible to choose an external. library
365 dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
366 dnl got the name libAliHLTHOMER
367 AC_MSG_CHECKING([for HLT PubSub Framework])
368 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
369                     [],
370                     [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
371 if test -z $with_pubsub || ! test -d $with_pubsub ; then
372   with_pubsub=no
373 fi
374 AC_MSG_RESULT([$with_pubsub])
375 HOMER_VERSION=2
376 HOMER_LIBS=
377
378 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
379 if test "x$with_pubsub" != "xno" ; then
380   save_CPPFLAGS=$CPPFLAGS
381   save_LDFLAGS=$LDFLAGS
382   save_LIBS=$LIBS
383   # currently the different versions of the HLT PubSub framework have a different
384   # directory layout
385   if test -d ${with_pubsub}/include/HOMER ; then
386     # the 'early' location of the include files with separated HOMER sub dirs
387     HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
388   elif test -d ${with_pubsub}/include/Util/HOMER ; then
389     # location for HLT Framework versions after Sep 2006
390     HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
391   elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
392     # fall back if include files were not installed (versions after Sep 06)
393     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
394   else
395     # fall back if include files were not installed (versions before Sep 06)
396     HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
397   fi
398   HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
399
400   AC_ARG_ENABLE(pubsub-debug,
401     [AC_HELP_STRING([--disable-pubsub-debug],
402         [force the production version of the PubSub framework])],
403     [],[enable_pubsub_debug=yes])
404   homer_type="none"
405   HOMER_TARGET="`uname -s`-`uname -m`"
406   AC_MSG_CHECKING([for HLT PubSub Framework release type])
407   if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
408     homer_type="production"
409     HOMER_TARGET="${HOMER_TARGET}-release"
410   elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
411     homer_type="debug"
412     HOMER_TARGET="${HOMER_TARGET}-debug"
413   fi
414   AC_MSG_RESULT([${homer_type}])
415   HOMERREADER_HEADER=HOMERReader.h
416   HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
417   HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
418   HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
419   CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
420   LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
421   LIBS="$save_LIBS "
422   with_homer=no
423   AC_LANG_PUSH(C++)
424   AC_CHECK_HEADER([$HOMERREADER_HEADER],
425     [ AC_CHECK_LIB([HOMER],[_init],
426       [with_homer=yes
427        HOMER_LIBS="-lHOMER"],
428       [ AC_CHECK_LIB([HOMERReader],[_init],
429                      [with_homer=yes
430                       HOMER_LIBS="-lHOMERReader"])])
431       LIBS="$LIBS $HOMER_LIBS"
432       AC_MSG_CHECKING([version of HOMER library])
433       dnl The Homer library has no versioning, so we do our own
434       dnl version           description
435       dnl ----------------------------------------------------------------------
436       dnl   1          inintial version
437       dnl   2          GetBlockStatusFlags added to the interface
438       AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
439                                       [HOMERReader reader("dummy", 0);
440                                        reader.GetBlockStatusFlags(0);])],
441                                       [],
442                                       [HOMER_VERSION=1])
443       AC_MSG_RESULT([$HOMER_VERSION])
444   ],
445   [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
446   AC_LANG_POP(C++)
447   HOMER_INBUILT_LIB=
448 else
449 dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
450   topdir=`dirname $0`
451   HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
452   HOMERREADER_HEADER=AliHLTHOMERReader.h
453   HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
454   HOMER_BINDIR=
455   HOMER_LIBDIR=
456   HOMER_LDFLAGS=
457 fi
458
459   if test "x$with_homer" = "xno" ; then
460     HOMER_CPPFLAGS=
461     HOMER_LDFLAGS=
462     HOMER_LIBS=
463   else
464     HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
465     AC_DEFINE(HAVE_HOMERREADER)
466   fi
467   CPPFLAGS="$save_CPPFLAGS"
468   LDFLAGS="$save_LDFLAGS"
469   LIBS="$save_LIBS"  
470
471 AC_SUBST([HOMERREADER_HEADER])
472 AC_SUBST([HOMER_INBUILT_LIB])
473 AC_SUBST([HOMER_CPPFLAGS])
474 AC_SUBST([HOMER_LDFLAGS])
475 AC_SUBST([HOMER_LIBDIR])
476 AC_SUBST([HOMER_BINDIR])
477 AC_SUBST([HOMER_LIBS])
478
479 dnl ------------------------------------------------------------------
480 AC_MSG_CHECKING([whether to impose strict coding conventions])
481 AC_ARG_ENABLE(strict,
482   [AC_HELP_STRING([--enable-strict],
483       [enable coding convention checks ])],
484   [],[enable_strict=no])
485 if test "x$enable_strict" = "xyes" ; then
486    CPPFLAGS="$CPPFLAGS -Weffc++"
487 fi
488 AC_MSG_RESULT([$enable_strict])
489
490 dnl ------------------------------------------------------------------
491 AC_MSG_CHECKING([whether to compile sample library])
492 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
493 AC_ARG_ENABLE(sample,
494   [AC_HELP_STRING([--disable-sample],
495       [compile the sample library ])],
496   [],
497   [if test "x$have_aliroot" = "xno" ; then
498      enable_sample="no...requires.AliRoot"
499    else
500      enable_sample=yes
501    fi
502   ])
503
504 if test "x$enable_sample" = "xyes" ; then 
505   AC_DEFINE(HLT_SAMPLE)
506 fi
507 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
508 AC_MSG_RESULT([$enable_sample])
509
510 dnl ------------------------------------------------------------------
511 AC_MSG_CHECKING([whether to compile util library])
512 AH_TEMPLATE([HLT_UTIL],[HLT utility library])
513 AC_ARG_ENABLE(util,
514   [AC_HELP_STRING([--disable-util],
515       [compile the util library ])],
516   [],
517   [if test "x$have_aliroot" = "xno" ; then
518      enable_util="no...requires.AliRoot"
519    else
520      enable_util=yes
521    fi
522   ])
523
524 if test "x$enable_util" = "xyes" ; then 
525   AC_DEFINE(HLT_UTIL)
526 fi
527 AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
528 AC_MSG_RESULT([$enable_util])
529
530 dnl ------------------------------------------------------------------
531 AC_MSG_CHECKING([whether to compile tpc library])
532 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
533 AC_ARG_ENABLE(tpc,
534   [AC_HELP_STRING([--disable-tpc],
535       [compile the tpc library ])],
536   [],
537   [if test "x$have_aliroot" = "xno" ; then
538      enable_tpc="no...requires.AliRoot"
539    elif test "x$have_alitpc" = "xno" ; then
540      enable_tpc="no...requires.AliRoot.TPC.libraries"
541    else
542      enable_tpc=yes
543    fi
544   ])
545
546 if test "x$enable_tpc" = "xyes" ; then 
547   AC_DEFINE(HLT_TPC)
548 fi
549 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
550 AC_MSG_RESULT([$enable_tpc])
551
552 dnl ------------------------------------------------------------------
553 AC_MSG_CHECKING([whether to compile phos library])
554 AH_TEMPLATE([HLT_PHOS],[hlt phos library])
555 AC_ARG_ENABLE(phos,
556   [AC_HELP_STRING([--disable-phos],
557       [compile the phos library ])],
558   [],
559   [if test "x$have_aliroot" = "xno" ; then
560      enable_phos="no...requires.AliRoot"
561    elif ! test "x$have_alicalorawstream" = "xyes"; then
562      enable_phos="no...requires.AliRoot>v4-05-07"
563    else
564      enable_phos=yes
565    fi
566   ])
567
568 if test "x$enable_phos" = "xyes" ; then 
569   AC_DEFINE(HLT_PHOS)
570 fi
571 AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
572 AC_MSG_RESULT([$enable_phos])
573
574 dnl ------------------------------------------------------------------
575 AC_MSG_CHECKING([whether to compile trd library])
576 AH_TEMPLATE([HLT_TRD],[hlt trd library])
577 AC_ARG_ENABLE(trd,
578   [AC_HELP_STRING([--disable-trd],
579       [compile the trd library ])],
580   [],
581   [if test "x$have_aliroot" = "xno" ; then
582      enable_trd="no...requires.AliRoot"
583    else
584      enable_trd=yes
585    fi
586   ])
587
588 if test "x$enable_trd" = "xyes" ; then 
589   AC_DEFINE(HLT_TRD)
590 fi
591 AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
592 AC_MSG_RESULT([$enable_trd])
593
594 dnl ------------------------------------------------------------------
595 AC_MSG_CHECKING([whether to compile dimuon library])
596 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
597 AC_ARG_ENABLE(dimuon,
598   [AC_HELP_STRING([--disable-dimuon],
599       [compile the dimuon library ])],
600   [],
601   [if test "x$have_aliroot" = "xno" ; then
602      enable_dimuon="no...requires.AliRoot"
603    else
604      enable_dimuon=yes
605    fi
606   ])
607
608 if test "x$enable_dimuon" = "xyes" ; then 
609   AC_DEFINE(HLT_MUON)
610 fi
611 AM_CONDITIONAL(EN_HLT_MUON, test x$enable_dimuon = xyes)
612 AC_MSG_RESULT([$enable_dimuon])
613
614 dnl ------------------------------------------------------------------
615 AC_MSG_CHECKING([whether to disable AliRoot logging])
616 AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
617 AC_ARG_ENABLE(aliroot-logging,
618   [AC_HELP_STRING([--disable-aliroot-logging],
619       [disable logging through AliRoot logging methods])],
620   [],[enable_aliroot_logging=no])
621 if test "x$have_aliroot" = "xno" ; then
622   enable_aliroot_logging=yes # this means 'disable'
623 fi
624 if test "x$enable_aliroot_logging" != "xno" ; then 
625   AC_DEFINE(NOALIROOT_LOGGING)
626 fi
627 AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
628 AC_MSG_RESULT([$enable_aliroot_logging])
629
630 dnl ------------------------------------------------------------------
631 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
632 AH_TEMPLATE([DOMC],[MC saving])
633 AC_ARG_ENABLE(mc-saving,
634   [AC_HELP_STRING([--enable-mc-saving],
635       [enable saving MC data through the chain])],
636   [],[enable_mc_saving=no])
637 if test "x$enable_mc_saving" = "xyes" ; then 
638   AC_DEFINE(DOMC)
639 fi
640 AC_MSG_RESULT([$enable_mc_saving])
641
642 dnl ------------------------------------------------------------------
643 dnl certainly something old, but we keep the define
644 AC_MSG_CHECKING([whether to use ROWHOUGH])
645 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
646 AC_ARG_ENABLE(rowhough,
647   [AC_HELP_STRING([--enable-rowhough],
648       [use ROWHOUGH ])],
649   [],[enable_rowhough=no])
650 if test "x$enable_rowhough" = "xyes" ; then 
651   AC_DEFINE(USEROWHOUGH)
652 fi
653 AC_MSG_RESULT([$enable_rowhough])
654
655 dnl ------------------------------------------------------------------
656 dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
657 dnl stand-alone build system. This is most likely something old we can
658 dnl get rid off later, or do something more reasonable. Since the define
659 dnl needs the quotes they have to be  escaped. This works well for the
660 dnl Makefile but not for the configure script. So we have to add the
661 dnl defines after all the other checks.
662 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
663 if test ! "x$have_aliroot" = "xno" ; then
664   CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
665 fi
666
667 dnl ------------------------------------------------------------------
668 dnl
669 dnl Documentation
670 dnl
671 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
672 AC_PATH_PROG(PERL, perl)
673 AC_PATH_PROG(DOXYGEN, doxygen)
674 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
675 AC_ARG_ENABLE(dot,
676   [AC_HELP_STRING([--enable-dot],
677       [enable dot documentation generator])],
678   [],[enable_dot=no])
679 HAVE_DOT=NO
680 DOT_PATH=
681 AC_PATH_PROG(DOT, dot)
682 if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
683    HAVE_DOT=YES
684    DOT_PATH=`dirname $DOT`
685 fi
686 AC_SUBST([HAVE_DOT])
687 AC_SUBST([DOT_PATH])
688
689 dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
690 dnl echo $HAVE_SRC_SUBDIR
691 dnl if ! test -d $HAVE_SRC_SUBDIR; then
692 dnl   HAVE_SRC_SUBDIR=
693 dnl fi
694 dnl AC_SUBST([HAVE_SRC_SUBDIR])
695
696 dnl ------------------------------------------------------------------
697 dnl inatallation directory for libraries
698 dnl 
699 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
700 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
701 AC_MSG_NOTICE([libdir set to $libdir])
702 fi
703 dnl ------------------------------------------------------------------
704 AC_CONFIG_FILES([Makefile 
705                  BASE/Makefile
706                  BASE/setenv.sh
707                  BASE/setenv.csh
708                  BASE/HOMER/Makefile
709                  BASE/util/Makefile
710                  BASE/interface/Makefile
711                  sim/Makefile
712                  rec/Makefile
713                  SampleLib/Makefile
714                  TPCLib/Makefile
715                  TPCLib/mapping2array.cxx
716                  TPCLib/OnlineDisplay/Makefile
717                  PHOS/Makefile
718                  TRD/Makefile
719                  MUON/Makefile
720                  doc/Makefile
721                  doc/doxygen.conf])
722
723
724 AC_OUTPUT
725 dnl
726 dnl EOF
727 dnl
728