Warnings fixed
[u/mrichter/AliRoot.git] / HLT / configure.ac
CommitLineData
b521659f 1dnl -*- mode: autoconf -*-
2dnl
3dnl $Id$
4dnl template for the configuration script for the Alice HLT
5dnl framework and components
6dnl
7dnl ------------------------------------------------------------------
408c5899 8
9dnl Take either the AliRoot tag as version id or the current revision
10AC_INIT([Alice High Level Trigger] ,
7233bc62 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]),
408c5899 20 [Matthias.Richter@ift.uib.no],
21 [alice-hlt])
b521659f 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
dc8f7cb7 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])
b521659f 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" )
53feaef5 56AC_SUBST([ROOTSYS])
dc8f7cb7 57ROOTBINDIR=`dirname $ROOTEXEC`
58AC_SUBST([ROOTBINDIR])
59
dfaa582a 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
dc8f7cb7 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
fbf4d793 76 # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release)
77 ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer'
dc8f7cb7 78 for CHECKLIB in $ROOT_CHECKLIBS ; do
dc8f7cb7 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
dfaa582a 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)
ba4b0dd7 86 AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE])
dfaa582a 87
0b6c2560 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)
ba4b0dd7 90 AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D])
0b6c2560 91
dc8f7cb7 92 CPPFLAGS=$save_CPPFLAGS
93 LDFLAGS=$save_LDFLAGS
94 LIBS=$save_LIBS
dfaa582a 95 AC_LANG_POP(C++)
dc8f7cb7 96fi
b521659f 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)
85869391 107CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
7233bc62 108save_CPPFLAGS=$CPPFLAGS
109save_LDFLAGS=$LDFLAGS
110save_LIBS=$LIBS
85869391 111
112dnl ------------------------------------------------------------------
74c73e5a 113dnl check for AliRoot features
114AC_LANG_PUSH(C++)
74c73e5a 115have_aliroot=no
2bbbadd1 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
dc8f7cb7 146 ALIROOTBINDIR=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}
74c73e5a 147 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
148 ALIROOTINCDIR=${ALICE_ROOT}/include
dc8f7cb7 149 test -d ${ALIROOTBINDIR} || AC_MSG_WARN([can not find AliRoot binary directory $ALIROOTBINDIR])
2bbbadd1 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])
74c73e5a 152fi
2bbbadd1 153
154AC_MSG_CHECKING([for AliRoot])
74c73e5a 155if test "x$ALICE_ROOT" != "x" \
dc8f7cb7 156 && test -d ${ALIROOTBINDIR} \
74c73e5a 157 && test -d ${ALIROOTLIBDIR} \
158 && test -d ${ALIROOTINCDIR}; then
159 have_aliroot=$ALICE_ROOT
160else
dc8f7cb7 161 ALIROOTBINDIR=
74c73e5a 162 ALIROOTLIBDIR=
163 ALIROOTINCDIR=
164fi
165AC_MSG_RESULT([$have_aliroot])
166
167if test ! "x$have_aliroot" = "xno" ; then
74c73e5a 168 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
169 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
dc8f7cb7 170 ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
74c73e5a 171 save_CPPFLAGS=$CPPFLAGS
172 save_LDFLAGS=$LDFLAGS
173 save_LIBS=$LIBS
174 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
db16520a 175 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
2bbbadd1 176
f8c5e339 177 # check for certain AliRoot libraries/files/features
c018a1bd 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
f5bf5fc3 183 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
184 CHECKLIB=AOD
185 AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
186
2bbbadd1 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"
2bbbadd1 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);])],
e962f438 209 [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
2bbbadd1 210 have_alirawdata=$CHECKLIB],
211 [have_alirawdata=no])
212 ]) dnl AC_CHECK_LIB RAWDatabase
fa274626 213 AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries])
214 AC_MSG_RESULT([$have_alirawdata])
215
fbf4d793 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
f5bf5fc3 255 dnl
f527516f 256 dnl ESD supports non-std content
257 dnl
258 have_esd_nonstd=no
259 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
260 #include <AliExternalTrackParam.h>
261 #include <TTree.h>
262 #include <TClonesArray.h>],
263 [AliESDEvent esd;
264 esd.CreateStdContent();
265 TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
f527516f 266 TClonesArray* a=new TClonesArray("AliExternalTrackParam");
267 a->SetName("SomeObject");
268 esd.AddObject(a);
50a3793d 269 esd.WriteToTree(tree);
f527516f 270 if (!tree->FindBranch("SomeObject")) return 1;
271 return 0;])],
272 [have_esd_nonstd=yes],
273 [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
274 AC_MSG_CHECKING(whether ESD supports non standard content)
275 AC_MSG_RESULT([$have_esd_nonstd])
276
277 dnl
83cb7e1d 278 dnl ESD copy function added May 9 2008 rev 25667
279 dnl
f527516f 280 if test "x$have_esd_nonstd" != "xyes"; then
83cb7e1d 281 have_esd_copy=no
282 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
283 [AliESDEvent esd1;
284 AliESDEvent esd2;
285 esd2=esd1;])],
9877121c 286 [have_esd_copy=yes],
287 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
83cb7e1d 288 AC_MSG_CHECKING(for ESD assignment operator)
289 AC_MSG_RESULT([$have_esd_copy])
f527516f 290 fi
83cb7e1d 291
292 dnl
296b5188 293 dnl AliRawReaderMemory support for multiple buffers added
c03e064d 294 dnl revision 26829 Jun 2008
296b5188 295 dnl
296 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW"
297 have_rawreadermemory_multbuffers=no
298 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>],
299 [AliRawReaderMemory rr;
300 rr.AddBuffer(NULL, 0, 0);])],
301 [have_rawreadermemory_multbuffers=yes],
302 [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)])
c03e064d 303 AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers)
296b5188 304 AC_MSG_RESULT([$have_rawreadermemory_multbuffers])
305
306 dnl
fbf4d793 307 dnl required header files and libraries for modules
f5bf5fc3 308 dnl
04dbc9e4 309
f59fee6d 310 dnl
311 dnl Check for the interface of AliExternalTrackParam which has been changed
312 dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04
313 dnl or higher)
314 externaltrackparam_version=1
315 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliExternalTrackParam.h>],
316 [AliExternalTrackParam trackparam;
317 Double_t param[[5]]; Double_t covar[[15]];
318 trackparam.Set(0., 0., param, covar);])],
319 [externaltrackparam_version=2],
320 [AC_DEFINE(EXTERNALTRACKPARAM_V1)])
321 AC_MSG_CHECKING(for version of AliExternalTrackParam)
322 AC_MSG_RESULT($externaltrackparam_version)
323
74c73e5a 324 CPPFLAGS=$save_CPPFLAGS
325 LDFLAGS=$save_LDFLAGS
326 LIBS=$save_LIBS
7233bc62 327fi # if test ! "x$have_aliroot" = "xno"
f59fee6d 328
74c73e5a 329AC_LANG_POP(C++)
5f5b708b 330AC_SUBST([ALICE_ROOT])
74c73e5a 331AC_SUBST([ALIROOT_CPPFLAGS])
332AC_SUBST([ALIROOT_LDFLAGS])
dc8f7cb7 333AC_SUBST([ALIROOTBINDIR])
53feaef5 334AC_SUBST([ALIROOTLIBDIR])
74c73e5a 335AC_SUBST([ALIROOT_LIBS])
0f51f5b8 336AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
85869391 337
6c1a9d9e 338HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
339HLTBASE_LDFLAGS=
340AC_SUBST([HLTBASE_CPPFLAGS])
341AC_SUBST([HLTBASE_LDFLAGS])
342
85869391 343dnl ------------------------------------------------------------------
78b557c2 344dnl check for the HLT PubSub Framework
f8c5e339 345dnl namely for the existence of the HOMER library
346dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt
347dnl package. It os though possible to choose an external. library
348dnl In order to make the origni of the HOMER lib clear, the one in AliRoot
349dnl got the name libAliHLTHOMER
78b557c2 350AC_MSG_CHECKING([for HLT PubSub Framework])
351AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
352 [],
353 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
354if test -z $with_pubsub || ! test -d $with_pubsub ; then
355 with_pubsub=no
356fi
357AC_MSG_RESULT([$with_pubsub])
f8c5e339 358HOMER_VERSION=2
5f1685a0 359HOMER_LIBS=
78b557c2 360
361AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
362if test "x$with_pubsub" != "xno" ; then
363 save_CPPFLAGS=$CPPFLAGS
364 save_LDFLAGS=$LDFLAGS
365 save_LIBS=$LIBS
4a6b4894 366 # currently the different versions of the HLT PubSub framework have a different
367 # directory layout
20b6dd9a 368 if test -d ${with_pubsub}/include/HOMER ; then
5235c3e9 369 # the 'early' location of the include files with separated HOMER sub dirs
9ce4bf4a 370 HOMER_INCDIRS="${with_pubsub}/include/HOMER ${with_pubsub}/include/HOMER/reader"
5235c3e9 371 elif test -d ${with_pubsub}/include/Util/HOMER ; then
372 # location for HLT Framework versions after Sep 2006
9ce4bf4a 373 HOMER_INCDIRS="${with_pubsub}/include/Util/HOMER"
5235c3e9 374 elif test -d ${with_pubsub}/src/Util/HOMER/include ; then
375 # fall back if include files were not installed (versions after Sep 06)
9ce4bf4a 376 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/include"
4a6b4894 377 else
5235c3e9 378 # fall back if include files were not installed (versions before Sep 06)
9ce4bf4a 379 HOMER_INCDIRS="${with_pubsub}/src/Util/HOMER/reader/include ${with_pubsub}/src/Util/HOMER/data/include"
4a6b4894 380 fi
9ce4bf4a 381 HOMER_CPPFLAGS=`for i in ${HOMER_INCDIRS}; do echo -n "-I$i " ; done`
5894eaa5 382
383 AC_ARG_ENABLE(pubsub-debug,
384 [AC_HELP_STRING([--disable-pubsub-debug],
385 [force the production version of the PubSub framework])],
386 [],[enable_pubsub_debug=yes])
387 homer_type="none"
388 HOMER_TARGET="`uname -s`-`uname -m`"
389 AC_MSG_CHECKING([for HLT PubSub Framework release type])
390 if test -d "${with_pubsub}/lib/${HOMER_TARGET}-release" ; then
391 homer_type="production"
392 HOMER_TARGET="${HOMER_TARGET}-release"
393 elif test "x$enable_pubsub_debug" = "xyes" && test -d "${with_pubsub}/lib/${HOMER_TARGET}-debug" ; then
394 homer_type="debug"
395 HOMER_TARGET="${HOMER_TARGET}-debug"
396 fi
397 AC_MSG_RESULT([${homer_type}])
f8c5e339 398 HOMERREADER_HEADER=HOMERReader.h
5894eaa5 399 HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}"
400 HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}"
53feaef5 401 HOMER_LDFLAGS="-L${HOMER_LIBDIR}"
78b557c2 402 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
403 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
404 LIBS="$save_LIBS "
405 with_homer=no
406 AC_LANG_PUSH(C++)
f8c5e339 407 AC_CHECK_HEADER([$HOMERREADER_HEADER],
5f1685a0 408 [ AC_CHECK_LIB([HOMER],[_init],
409 [with_homer=yes
410 HOMER_LIBS="-lHOMER"],
411 [ AC_CHECK_LIB([HOMERReader],[_init],
412 [with_homer=yes
413 HOMER_LIBS="-lHOMERReader"])])
414 LIBS="$LIBS $HOMER_LIBS"
9ce4bf4a 415 AC_MSG_CHECKING([version of HOMER library])
5f1685a0 416 dnl The Homer library has no versioning, so we do our own
417 dnl version description
418 dnl ----------------------------------------------------------------------
419 dnl 1 inintial version
420 dnl 2 GetBlockStatusFlags added to the interface
421 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <HOMERReader.h>],
422 [HOMERReader reader("dummy", 0);
423 reader.GetBlockStatusFlags(0);])],
f8c5e339 424 [],
425 [HOMER_VERSION=1])
5f1685a0 426 AC_MSG_RESULT([$HOMER_VERSION])
f8c5e339 427 ],
428 [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER])
78b557c2 429 AC_LANG_POP(C++)
f8c5e339 430 HOMER_INBUILT_LIB=
431else
432dnl no pubsub version defined, check if the HOMER lib is available in AliRoot
433 topdir=`dirname $0`
434 HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER"
435 HOMERREADER_HEADER=AliHLTHOMERReader.h
436 HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la
437 HOMER_BINDIR=
438 HOMER_LIBDIR=
439 HOMER_LDFLAGS=
440fi
441
78b557c2 442 if test "x$with_homer" = "xno" ; then
443 HOMER_CPPFLAGS=
444 HOMER_LDFLAGS=
5f1685a0 445 HOMER_LIBS=
78b557c2 446 else
5f1685a0 447 HOMER_CPPFLAGS="$HOMER_CPPFLAGS -DHOMER_VERSION=$HOMER_VERSION"
78b557c2 448 AC_DEFINE(HAVE_HOMERREADER)
449 fi
450 CPPFLAGS="$save_CPPFLAGS"
451 LDFLAGS="$save_LDFLAGS"
452 LIBS="$save_LIBS"
f8c5e339 453
454AC_SUBST([HOMERREADER_HEADER])
455AC_SUBST([HOMER_INBUILT_LIB])
78b557c2 456AC_SUBST([HOMER_CPPFLAGS])
457AC_SUBST([HOMER_LDFLAGS])
53feaef5 458AC_SUBST([HOMER_LIBDIR])
459AC_SUBST([HOMER_BINDIR])
5f1685a0 460AC_SUBST([HOMER_LIBS])
78b557c2 461
462dnl ------------------------------------------------------------------
7233bc62 463AC_ARG_ENABLE(all,
464 [AC_HELP_STRING([--disable-all],
465 [disable all detector modules, individual modules can be switched on by --enable-det])],
466 [disable_all=yes],[])
467
468dnl ------------------------------------------------------------------
85869391 469AC_MSG_CHECKING([whether to impose strict coding conventions])
470AC_ARG_ENABLE(strict,
2028353f 471 [AC_HELP_STRING([--disable-strict],
472 [disable coding convention checks ])],
473 [],[enable_strict=yes])
85869391 474if test "x$enable_strict" = "xyes" ; then
f7561f8d 475 CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow"
85869391 476fi
477AC_MSG_RESULT([$enable_strict])
b521659f 478
479dnl ------------------------------------------------------------------
5b6ab198 480AC_MSG_CHECKING([whether to enable component statistics])
481AC_ARG_ENABLE(component-stat,
482 [AC_HELP_STRING([--enable-component-stat],
483 [enable component statistics ])],
484 [],[enable_component_stat=no])
485if test "x$enable_component_stat" = "xyes" ; then
486 AC_DEFINE(HLT_COMPONENT_STATISTICS)
487fi
488AC_MSG_RESULT([$enable_component_stat])
489
490dnl ------------------------------------------------------------------
cad2d06c 491dnl ---- module checks
492dnl ------------------------------------------------------------------
493save_CPPFLAGS=$CPPFLAGS
494save_LDFLAGS=$LDFLAGS
495save_LIBS=$LIBS
496
497dnl ------------------------------------------------------------------
b521659f 498AC_MSG_CHECKING([whether to compile sample library])
499AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
500AC_ARG_ENABLE(sample,
c018a1bd 501 [AC_HELP_STRING([--disable-sample],
b521659f 502 [compile the sample library ])],
2e742d30 503 [],
504 [if test "x$have_aliroot" = "xno" ; then
505 enable_sample="no...requires.AliRoot"
506 else
507 enable_sample=yes
508 fi
509 ])
510
b521659f 511if test "x$enable_sample" = "xyes" ; then
512 AC_DEFINE(HLT_SAMPLE)
513fi
514AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
515AC_MSG_RESULT([$enable_sample])
516
517dnl ------------------------------------------------------------------
c018a1bd 518AC_MSG_CHECKING([whether to compile util library])
519AH_TEMPLATE([HLT_UTIL],[HLT utility library])
520AC_ARG_ENABLE(util,
521 [AC_HELP_STRING([--disable-util],
522 [compile the util library ])],
2e742d30 523 [],
524 [if test "x$have_aliroot" = "xno" ; then
525 enable_util="no...requires.AliRoot"
526 else
527 enable_util=yes
528 fi
529 ])
c018a1bd 530
531if test "x$enable_util" = "xyes" ; then
532 AC_DEFINE(HLT_UTIL)
533fi
534AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes)
535AC_MSG_RESULT([$enable_util])
536
537dnl ------------------------------------------------------------------
b521659f 538AH_TEMPLATE([HLT_TPC],[hlt tpc library])
f59fee6d 539
e642ae99 540ALITPC_LIBS=
f59fee6d 541CHECK_HLTMODULE([tpc],
e962f438 542 [AliTPCRawStream.h],
543 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
70d00903 544 [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
e642ae99 545 [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 546 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
547
c6b46c3f 548if test "x$enable_module" = "xmissheader"; then
549 enable_module="no...missing.headers"
50a3793d 550 enable_tpc=$enable_module
c6b46c3f 551elif test "x$enable_module" = "xforce"; then
552 enable_tpc="yes"
f59fee6d 553else
554 enable_tpc=$enable_module
555fi
2e742d30 556
b521659f 557if test "x$enable_tpc" = "xyes" ; then
e642ae99 558 AC_LANG_PUSH(C++)
b521659f 559 AC_DEFINE(HLT_TPC)
e642ae99 560 ALITPC_LIBS=$ALIHLTMODULE_LIBS
561 dnl
562 dnl Check for functionality in the TPC reconstruction required for online
563 dnl processing
564 dnl
565 have_tpc_hltoffline_rec=no
566 AC_MSG_CHECKING(for on-line features of TPC offline reconstruction)
567 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
568 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
569 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
570 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
571 #include <AliTPCclustererMI.h>
572 #include <TObjArray.h>],
573 [AliTPCtrackerMI tracker;
574 TObjArray* array=NULL;
575 tracker.LoadClusters(array);
576 AliTPCclustererMI cl(NULL, NULL);
89c2e505 577 cl.GetOutputClonesArray();])],
e642ae99 578 [have_tpc_hltoffline_rec=yes],
579 [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
cad2d06c 580 LIBS=$save_LIBS
e642ae99 581 AC_MSG_RESULT([$have_tpc_hltoffline_rec])
582
583 AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
584 AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
585
586 have_tpc_mapping=no
587 if test ! "x$have_aliroot" = "xno" ; then
588 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC
589 # which is stored in the TPC/mapping/Patchx.data files from
590 # AliRoot version v4-04-Release (May 2006)
591 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
592 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
593 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
594 [have_tpc_mapping=yes
595 AC_SUBST(TPC_PAD_MAPPING_PATH)
596 AC_DEFINE(HAVE_TPC_MAPPING)],
597 [])
598
599 fi
600 AC_MSG_CHECKING([for TPC mapping layout])
601 AC_MSG_RESULT([$have_tpc_mapping])
602 AC_LANG_POP(C++)
603
adec4ad4 604else
605 enable_module=$enable_tpc
b521659f 606fi
607AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
d6e2c707 608AC_MSG_CHECKING([whether to compile TPC library])
c6b46c3f 609AC_MSG_RESULT([$enable_module])
f59fee6d 610AC_SUBST([ALITPC_LIBS])
b521659f 611
612dnl ------------------------------------------------------------------
5e3820e2 613AH_TEMPLATE([HLT_RCU],[hlt rcu library])
614
615CHECK_HLTMODULE([rcu],
616 [AliAltroDecoder.h],
617 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW],
618 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
619 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
620 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
621
622if test "x$enable_module" = "xmissheader"; then
623 enable_module="no...missing.headers"
50a3793d 624 enable_rcu=$enable_module
5e3820e2 625elif test "x$enable_module" = "xforce"; then
626 enable_rcu="yes"
627else
628 AC_LANG_PUSH(C++)
5e3820e2 629 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
630 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
631 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
632 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
633 [AliAltroDecoder decoder;
634 decoder.CopyBackward(NULL, 0);])],
635 [enable_rcu=$enable_module],
636 [enable_module="no...requires.AliRoot>v4-10-Release"
637 enable_rcu="no...requires.AliRoot>v4-10-Release"])
638 CPPFLAGS=$save_CPPFLAGS
639 LDFLAGS=$save_LDFLAGS
640 LIBS=$save_LIBS
641 AC_LANG_POP(C++)
642fi
643
644if test "x$enable_rcu" = "xyes" ; then
645 AC_DEFINE(HLT_RCU)
adec4ad4 646else
647 enable_module=$enable_rcu
5e3820e2 648fi
649AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes)
d6e2c707 650AC_MSG_CHECKING([whether to compile RCU library])
5e3820e2 651AC_MSG_RESULT([$enable_module])
652AC_SUBST([ALIRCU_LIBS])
653
654dnl ------------------------------------------------------------------
c160eda8 655AH_TEMPLATE([HLT_PHOS],[hlt phos library])
f59fee6d 656
657ALIPHOS_LIBS=
658CHECK_HLTMODULE([phos],
659 [], [$ALIROOT_CPPFLAGS],
660 [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
652cf9d2 661 [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 662 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
663
c6b46c3f 664if test "x$enable_module" = "xmissheader"; then
665 enable_module="no...requires.AliRoot>v4-05-07"
50a3793d 666 enable_phos=$enable_module
c6b46c3f 667elif test "x$enable_module" = "xforce"; then
668 enable_phos="yes"
f59fee6d 669else
670 have_alicalorawstream=no
671 if test ! "x$have_aliroot" = "xno" ; then
672 AC_LANG_PUSH(C++)
673 save_CPPFLAGS="$CPPFLAGS"
674 # this can not be used as AliCaloRawStream.h indirectly depends on TString.h
675 #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes])
56584e00 676 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS"
f59fee6d 677 AC_MSG_CHECKING([for AliCaloRawStream.h usability])
678 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <TString.h>
679 #include <AliCaloRawStream.h>],
680 [int i])],
681 [AC_DEFINE(HAVE_ALICALORAWSTREAM)
682 have_alicalorawstream=yes],
683 [])
ae1c1854 684 AC_MSG_RESULT([$have_aliphosrecoparam])
685 AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ])
686 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliPHOSRecoParam.h>],
687 [AliPHOSRecoParam param;
688 param.GetEMCClusteringThreshold()])],
689 [have_aliphosrecoparam=yes],
690 [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)])
f59fee6d 691 AC_MSG_RESULT([$have_alicalorawstream])
692 AC_LANG_POP(C++)
693 CPPFLAGS="$save_CPPFLAGS"
694 fi
695 if test "x$have_alicalorawstream" != "xyes"; then
696 enable_phos="no...requires.AliRoot>v4-05-07"
697 else
698 enable_phos=$enable_module
699 fi
700fi
2e742d30 701
c160eda8 702if test "x$enable_phos" = "xyes" ; then
703 AC_DEFINE(HLT_PHOS)
f59fee6d 704 ALIPHOS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 705else
706 enable_module=$enable_phos
c160eda8 707fi
708AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes)
d6e2c707 709AC_MSG_CHECKING([whether to compile PHOS library])
c6b46c3f 710AC_MSG_RESULT([$enable_module])
f59fee6d 711AC_SUBST([ALIPHOS_LIBS])
c160eda8 712
c6b46c3f 713dnl ------------------------------------------------------------------
714AH_TEMPLATE([HLT_TRD],[hlt trd library])
715
f59fee6d 716ALITRD_LIBS=
717CHECK_HLTMODULE([trd],
718 [], [],
b3f74118 719 [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
f59fee6d 720 [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
721 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
722
c6b46c3f 723if test "x$enable_module" = "xmissheader"; then
724 enable_module="no...requires.AliRoot>v4-07-Release"
50a3793d 725 enable_trd=$enable_module
c6b46c3f 726elif test "x$enable_module" = "xforce"; then
727 enable_trd="yes"
f59fee6d 728else
729 enable_trd=$enable_module
730 if test "x$enable_trd" = "xyes" ; then
731 AC_LANG_PUSH(C++)
732 save_CPPFLAGS="$CPPFLAGS"
733 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
adec4ad4 734 # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
735 # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
0d66dbf5 736 # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
ae5bf1dd 737 # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
0d66dbf5 738 AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
739 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>],
740 [AliTRDReconstructor r;
ae5bf1dd 741 r.SetClusters(0)])],
f59fee6d 742 [],
0d66dbf5 743 [enable_trd="no...requires.AliRoot>v4-14-Release"])
f59fee6d 744 AC_MSG_RESULT([$enable_trd])
745 AC_LANG_POP(C++)
746 CPPFLAGS="$save_CPPFLAGS"
747 fi
748fi
2e742d30 749
0f51f5b8 750if test "x$enable_trd" = "xyes" ; then
751 AC_DEFINE(HLT_TRD)
f59fee6d 752 ALITRD_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 753else
754 enable_module=$enable_trd
0f51f5b8 755fi
756AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes)
d6e2c707 757AC_MSG_CHECKING([whether to compile TRD library])
c6b46c3f 758AC_MSG_RESULT([$enable_module])
f59fee6d 759AC_SUBST([ALITRD_LIBS])
0f51f5b8 760
761dnl ------------------------------------------------------------------
629266d1 762AH_TEMPLATE([HLT_FMD],[hlt fmd library])
763
764ALIFMD_LIBS=$ALIHLTMODULE_LIBS
765CHECK_HLTMODULE([fmd],
766 [], [],
767 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
50a3793d 768 [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
629266d1 769 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
770
771if test "x$enable_module" = "xmissheader"; then
50a3793d 772 enable_module="no...missing.headers"
773 enable_fmd=$enable_module
629266d1 774elif test "x$enable_module" = "xforce"; then
775 enable_fmd="yes"
776else
777 enable_fmd=$enable_module
629266d1 778fi
779
780if test "x$enable_fmd" = "xyes" ; then
781 AC_DEFINE(HLT_FMD)
782 ALIFMD_LIBS=$ALIHLTMODULE_LIBS
783else
784 enable_module=$enable_fmd
785fi
786AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
787AC_MSG_CHECKING([whether to compile FMD library])
788AC_MSG_RESULT([$enable_module])
789AC_SUBST([ALIFMD_LIBS])
790
629266d1 791dnl ------------------------------------------------------------------
94cc9aab 792AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
2e742d30 793
f59fee6d 794ALIMUON_LIBS=
e89e6b23 795CHECK_HLTMODULE([dimuon],
41f99620 796 [AliMpExMap.h AliMUONTriggerIO.h],
797 [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
b3f74118 798 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
799 [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
f59fee6d 800 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
801
802if test "x$enable_module" = "xmissheader"; then
a853a794 803 enable_module="no...requires.AliRoot>=v4-08-Release"
50a3793d 804 enable_muon=$enable_module
c6b46c3f 805elif test "x$enable_module" = "xforce"; then
806 enable_muon="yes"
f59fee6d 807else
808 enable_muon=$enable_module
809fi
810
811if test "x$enable_muon" = "xyes" ; then
94cc9aab 812 AC_DEFINE(HLT_MUON)
f59fee6d 813 ALIMUON_LIBS=$ALIHLTMODULE_LIBS
6ed1b948 814 AC_LANG_PUSH(C++)
815 dnl
816 dnl Check for functionality GetRawStream AliMUONDigitMaker.h
817 dnl
818 have_muon_digitmaker_getrawstream=no
819 AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
820 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
821 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
822 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
823 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>],
824 [AliMUONDigitMaker dm;
825 dm.GetRawStreamTracker();])],
826 [have_muon_digitmaker_getrawstream=yes],
827 [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
828 LIBS=$save_LIBS
829 AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
830
831 AC_LANG_POP(C++)
adec4ad4 832else
833 enable_module=$enable_muon
94cc9aab 834fi
f59fee6d 835AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
d6e2c707 836AC_MSG_CHECKING([whether to compile MUON library])
c6b46c3f 837AC_MSG_RESULT([$enable_module])
f59fee6d 838AC_SUBST([ALIMUON_LIBS])
94cc9aab 839
840dnl ------------------------------------------------------------------
d6e2c707 841AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library])
842
843ALITRIGGER_LIBS=
844CHECK_HLTMODULE([trigger],
845 [], [$ALIROOT_CPPFLAGS],
846 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
847 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
848 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
849
850if test "x$enable_module" = "xmissheader"; then
851 enable_module="no...header.missing"
50a3793d 852 enable_trigger=$enable_module
d6e2c707 853elif test "x$enable_module" = "xforce"; then
854 enable_trigger="yes"
855else
856 enable_trigger=$enable_module
857fi
858
859if test "x$enable_trigger" = "xyes" ; then
860 AC_DEFINE(HLT_TRIGGER)
861 ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 862else
863 enable_module=$enable_trigger
d6e2c707 864fi
865AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes)
866AC_MSG_CHECKING([whether to compile Trigger library])
867AC_MSG_RESULT([$enable_module])
868AC_SUBST([ALITRIGGER_LIBS])
869
870dnl ------------------------------------------------------------------
871AH_TEMPLATE([HLT_ITS],[hlt its library])
872
873ALIITS_LIBS=
874CHECK_HLTMODULE([its],
ae5bf1dd 875 [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
cad2d06c 876 [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
877 [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
d6e2c707 878 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
879
880if test "x$enable_module" = "xmissheader"; then
881 enable_module="no...header.missing"
50a3793d 882 enable_its=$enable_module
d6e2c707 883elif test "x$enable_module" = "xforce"; then
884 enable_its="yes"
885else
886 enable_its=$enable_module
adec4ad4 887 if test "x$enable_its" = "xyes" ; then
888 AC_LANG_PUSH(C++)
889 save_CPPFLAGS="$CPPFLAGS"
890 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS"
891 # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008
892 # require AliVertexer::GetNominalPos()
893 AC_MSG_CHECKING([for required functions in AliITSVertexer])
894 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliITSVertexerZ.h>],
895 [AliITSVertexerZ v;
896 v.GetNominalPos()])],
897 [],
898 [enable_its="no...requires.AliRoot>v4-13-Release"])
899 AC_MSG_RESULT([$enable_its])
900 AC_LANG_POP(C++)
901 CPPFLAGS="$save_CPPFLAGS"
902 fi
d6e2c707 903fi
904
905if test "x$enable_its" = "xyes" ; then
906 AC_DEFINE(HLT_ITS)
907 ALIITS_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 908else
909 enable_module=$enable_its
d6e2c707 910fi
911AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes)
912AC_MSG_CHECKING([whether to compile ITS library])
913AC_MSG_RESULT([$enable_module])
914AC_SUBST([ALIITS_LIBS])
915
916dnl ------------------------------------------------------------------
e89e6b23 917AH_TEMPLATE([HLT_COMP],[hlt comp library])
918
919ALICOMP_LIBS=
920CHECK_HLTMODULE([comp],
921 [], [$ALIROOT_CPPFLAGS],
922 [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
923 [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
924 [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
925
926if test "x$enable_module" = "xmissheader"; then
c6b46c3f 927 enable_module="no...header.missing"
50a3793d 928 enable_comp=$enable_module
c6b46c3f 929elif test "x$enable_module" = "xforce"; then
930 enable_comp="yes"
e89e6b23 931else
932 enable_comp=$enable_module
933fi
934
935if test "x$enable_comp" = "xyes" ; then
936 AC_DEFINE(HLT_COMP)
937 ALICOMP_LIBS=$ALIHLTMODULE_LIBS
adec4ad4 938else
939 enable_module=$enable_comp
e89e6b23 940fi
941AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes)
942AC_MSG_CHECKING([whether to compile comp library])
c6b46c3f 943AC_MSG_RESULT([$enable_module])
e89e6b23 944AC_SUBST([ALICOMP_LIBS])
945
946dnl ------------------------------------------------------------------
fc455fba 947AC_MSG_CHECKING([whether to disable AliRoot logging])
948AH_TEMPLATE([NOALIROOT_LOGGING],[disable AliRoot logging])
949AC_ARG_ENABLE(aliroot-logging,
950 [AC_HELP_STRING([--disable-aliroot-logging],
951 [disable logging through AliRoot logging methods])],
952 [],[enable_aliroot_logging=no])
c018a1bd 953if test "x$have_aliroot" = "xno" ; then
954 enable_aliroot_logging=yes # this means 'disable'
955fi
fc455fba 956if test "x$enable_aliroot_logging" != "xno" ; then
957 AC_DEFINE(NOALIROOT_LOGGING)
b521659f 958fi
fc455fba 959AM_CONDITIONAL(NOALIROOT_LOGGING, test x$enable_aliroot_logging != no)
960AC_MSG_RESULT([$enable_aliroot_logging])
b521659f 961
962dnl ------------------------------------------------------------------
963AC_MSG_CHECKING([whether to enable saving MC data through the chain])
964AH_TEMPLATE([DOMC],[MC saving])
965AC_ARG_ENABLE(mc-saving,
966 [AC_HELP_STRING([--enable-mc-saving],
967 [enable saving MC data through the chain])],
968 [],[enable_mc_saving=no])
969if test "x$enable_mc_saving" = "xyes" ; then
970 AC_DEFINE(DOMC)
971fi
972AC_MSG_RESULT([$enable_mc_saving])
973
974dnl ------------------------------------------------------------------
b521659f 975dnl certainly something old, but we keep the define
976AC_MSG_CHECKING([whether to use ROWHOUGH])
977AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
978AC_ARG_ENABLE(rowhough,
979 [AC_HELP_STRING([--enable-rowhough],
980 [use ROWHOUGH ])],
981 [],[enable_rowhough=no])
982if test "x$enable_rowhough" = "xyes" ; then
983 AC_DEFINE(USEROWHOUGH)
984fi
985AC_MSG_RESULT([$enable_rowhough])
986
987dnl ------------------------------------------------------------------
53feaef5 988dnl The ROOTVERSION and ALIROOTVERSION defines were used by the old
989dnl stand-alone build system. This is most likely something old we can
990dnl get rid off later, or do something more reasonable. Since the define
991dnl needs the quotes they have to be escaped. This works well for the
992dnl Makefile but not for the configure script. So we have to add the
993dnl defines after all the other checks.
994CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
995if test ! "x$have_aliroot" = "xno" ; then
996 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
997fi
998
999dnl ------------------------------------------------------------------
b521659f 1000dnl
1001dnl Documentation
1002dnl
1003AC_ARG_VAR(DOXYGEN, The Documentation Generator)
1004AC_PATH_PROG(PERL, perl)
1005AC_PATH_PROG(DOXYGEN, doxygen)
5894eaa5 1006AC_ARG_ENABLE(dot,
1007 [AC_HELP_STRING([--enable-dot],
1008 [enable dot documentation generator])],
1009 [],[enable_dot=no])
b521659f 1010HAVE_DOT=NO
1011DOT_PATH=
1012AC_PATH_PROG(DOT, dot)
5894eaa5 1013if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then
b521659f 1014 HAVE_DOT=YES
1015 DOT_PATH=`dirname $DOT`
1016fi
ae1c1854 1017
1018AC_MSG_CHECKING([for documentation mode])
1019AC_ARG_ENABLE(doc,
1020 [AC_HELP_STRING([--disable-doc],
1021 [disable documentation build; monolithic build --enable-doc=mono ])],
1022 [],[enable_doc=modules])
fb345ed7 1023
ae1c1854 1024if test "x$DOXYGEN" = "x" ; then
1025 enable_doc=no.doxygen
fb345ed7 1026elif test "x$enable_doc" = "xyes" ; then
1027 enable_doc=yes
ae1c1854 1028elif test ! "x$enable_doc" = "xmono" && \
1029 test ! "x$enable_doc" = "xmodules" && \
1030 test ! "x$enable_doc" = "xno"; then
1031 enable_doc=no
1032 AC_MSG_WARN([unknown option])
1033fi
1034if test "x$enable_doc" = "xno" ; then
1035 enable_doc=off
1036 DOXYGEN=
1037fi
1038
1039AC_MSG_RESULT([$enable_doc])
1040AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono")
1041AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
b521659f 1042AC_SUBST([HAVE_DOT])
1043AC_SUBST([DOT_PATH])
1044
90ebac25 1045dnl HAVE_SRC_SUBDIR=${abs_top_srcdir}/src
1046dnl echo $HAVE_SRC_SUBDIR
1047dnl if ! test -d $HAVE_SRC_SUBDIR; then
1048dnl HAVE_SRC_SUBDIR=
1049dnl fi
1050dnl AC_SUBST([HAVE_SRC_SUBDIR])
1051
b521659f 1052dnl ------------------------------------------------------------------
7233bc62 1053AC_MSG_NOTICE([---------------------------------------------- ])
1054AC_MSG_NOTICE([ build summary ])
1055AC_MSG_NOTICE([---------------------------------------------- ])
1056
b521659f 1057AC_CONFIG_FILES([Makefile
1058 BASE/Makefile
53feaef5 1059 BASE/setenv.sh
1060 BASE/setenv.csh
2be16a33 1061 BASE/HOMER/Makefile
242bb794 1062 BASE/util/Makefile
d098ebd4 1063 BASE/interface/Makefile
853121af 1064 BASE/test/Makefile
1a21074a 1065 BASE/interface/test/Makefile
b521659f 1066 doc/Makefile
2efb85be 1067 doc/doxygen.conf
1068 doc/doxymodule.conf])
b521659f 1069
7233bc62 1070dnl AliRoot and installation directory for libraries
1071dnl
1072AC_MSG_NOTICE([AliRoot: $have_aliroot])
1073AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" )
1074if test "x$have_aliroot" != "xno"; then
1075 AC_CONFIG_FILES([sim/Makefile
1076 rec/Makefile
652cf9d2 1077 rec/test/Makefile
7233bc62 1078 shuttle/Makefile
ff4edcee 1079 pendolino/Makefile
7233bc62 1080 ])
1081fi
1082if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
1083libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
1084AC_MSG_NOTICE([libdir set to $libdir])
1085fi
1086
1087AC_MSG_NOTICE([compile sample library: $enable_sample])
1088if test "x$enable_sample" = "xyes"; then
1089 AC_CONFIG_FILES([SampleLib/Makefile])
1090fi
1091
652cf9d2 1092AC_MSG_NOTICE([compile RCU library: $enable_rcu])
1093if test "x$enable_rcu" = "xyes"; then
1094 AC_CONFIG_FILES([RCU/Makefile
1095 RCU/test/Makefile
1096 ])
1097fi
1098
7233bc62 1099AC_MSG_NOTICE([compile TPC library: $enable_tpc])
1100if test "x$enable_tpc" = "xyes"; then
1101 AC_CONFIG_FILES([TPCLib/Makefile
1102 TPCLib/test/Makefile
1103 TPCLib/mapping2array.cxx
1104 TPCLib/OnlineDisplay/Makefile
1105 ])
1106fi
1107
7233bc62 1108AC_MSG_NOTICE([compile PHOS library: $enable_phos])
1109if test "x$enable_phos" = "xyes"; then
1110 AC_CONFIG_FILES([PHOS/Makefile])
1111fi
1112
1113AC_MSG_NOTICE([compile TRD library: $enable_trd])
1114if test "x$enable_trd" = "xyes"; then
1115 AC_CONFIG_FILES([TRD/Makefile])
1116fi
1117
50a3793d 1118AC_MSG_NOTICE([compile FMD library: $enable_fmd])
1119if test "x$enable_fmd" = "xyes"; then
1120 AC_CONFIG_FILES([FMD/Makefile])
1121fi
1122
7233bc62 1123AC_MSG_NOTICE([compile MUON library: $enable_muon])
1124if test "x$enable_muon" = "xyes"; then
1125 AC_CONFIG_FILES([MUON/Makefile])
1126fi
1127
1128AC_MSG_NOTICE([compile ITS library: $enable_its])
1129if test "x$enable_its" = "xyes"; then
1130 AC_CONFIG_FILES([ITS/Makefile])
1131fi
1132
1133AC_MSG_NOTICE([compile trigger library: $enable_trigger])
1134if test "x$enable_trigger" = "xyes"; then
1135 AC_CONFIG_FILES([trigger/Makefile])
1136fi
1137
1138AC_MSG_NOTICE([compile comp library: $enable_comp])
1139if test "x$enable_comp" = "xyes"; then
1140 AC_CONFIG_FILES([comp/Makefile])
1141fi
b521659f 1142
1143AC_OUTPUT
1144dnl
1145dnl EOF
1146dnl
1147