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