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