1 dnl -*- mode: autoconf -*-
4 dnl template for the configuration script for the Alice HLT
5 dnl framework and components
7 dnl ------------------------------------------------------------------
8 AC_INIT([Alice High Level Trigger] , [0.4-dev], [Matthias.Richter@ift.uib.no], alice-hlt)
10 dnl ------------------------------------------------------------------
11 dnl the package from CVS contains the old Makefiles as well. In order to
12 dnl prevent them from becoming overwritten, we require a separate build
14 if test "`dirname $0`" = "." ; then
15 AC_ERROR([please run the script from a separate build directory])
18 dnl ------------------------------------------------------------------
20 AC_PREFIX_DEFAULT(${PWD})
21 AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx)
30 dnl ------------------------------------------------------------------
34 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
35 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
37 dnl ------------------------------------------------------------------
38 # TODO: make this configurable through arguments
39 #Define whether you want to run with ALIROOT or only ROOT
40 AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
41 ALIHLT_USEPACKAGE=ALIROOT
42 #ALIHLT_USEPACKAGE=ROOT
43 #ALIHLT_USEPACKAGE=STANDALONE
44 AC_DEFINE(use_aliroot)
46 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
48 dnl ------------------------------------------------------------------
49 dnl check for AliRoot features
51 AC_MSG_CHECKING([for AliRoot])
54 if test "x$with_aliroot" = "xyes" || test "x$with_aliroot" = "x" ; then
55 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
56 ALIROOTINCDIR=${ALICE_ROOT}/include
57 elif test "x$with_aliroot" != "xno" ; then
58 # TODO: think about the tgt_* subfolder
59 ALICE_ROOT="$with_aliroot"
60 ALIROOTLIBDIR="$ALICE_ROOT/lib"
61 ALIROOTINCDIR="$ALICE_ROOT/include"
63 if test "x$ALICE_ROOT" != "x" \
64 && test -d ${ALIROOTLIBDIR} \
65 && test -d ${ALIROOTINCDIR}; then
66 have_aliroot=$ALICE_ROOT
71 AC_MSG_RESULT([$have_aliroot])
73 if test ! "x$have_aliroot" = "xno" ; then
74 # we check for the libSTEER library which is linked to
75 # - the ROOT libs libGeom libMinuit libVMC libEG
76 # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
77 # - ROOT libCint needs also libdl
78 ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
79 ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
80 ALIROOT_LIBS="-lESD -lGeom -lMinuit -lVMC -lEG -ldl -lSTEER"
81 save_CPPFLAGS=$CPPFLAGS
84 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
85 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
86 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
88 # check for certain AliRoot libraries/files/features
89 if test ! "x$have_aliroot" = "xno" ; then
90 # the RAWReader classe are needed by the TPCLib/AliHLTTPCDigitReaderPacket
91 # and by the STEER library. From version v4-04-Rev-07 on the RawReader classes
92 # are in libRAWDatarec, before in libRAWData
94 AC_MSG_CHECKING(for AliRawReader classes in RAWData libraries)
95 if test ! "x$have_alirawdata" = "xno" ; then
96 CHECKLIB="-lRAWDatarec"
97 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lRAWDatabase $CHECKLIB"
98 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
99 #include <AliRawReaderFile.h>
100 #include <AliRawReaderDate.h>
101 #include <AliRawReaderRoot.h>],
102 [AliRawReaderMemory mreader;
103 AliRawReaderFile freader;
104 AliRawReaderDate dreader(NULL,0);
105 AliRawReaderRoot rreader(NULL,0)])],
106 [AC_DEFINE(HAVE_ALIRAWDATA)
107 ALIROOT_LIBS="$ALIROOT_LIBS -lRAWDatabase $CHECKLIB"
108 have_alirawdata=$CHECKLIB],
109 [have_alirawdata=no])
110 # second pass with -RAWData
111 if test "x$have_alirawdata" = "xno" ; then
113 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB"
114 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
115 #include <AliRawReaderFile.h>
116 #include <AliRawReaderDate.h>
117 #include <AliRawReaderRoot.h>],
118 [AliRawReaderMemory mreader;
119 AliRawReaderFile freader;
120 AliRawReaderDate dreader(NULL,0);
121 AliRawReaderRoot rreader(NULL,0);])],
122 [AC_DEFINE(HAVE_ALIRAWDATA)
123 ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
124 have_alirawdata=$CHECKLIB],
125 [have_alirawdata=no])
128 AC_MSG_RESULT($have_alirawdata)
132 #AC_CHECK_HEADERS([AliRun.h],[have_alisteer=yes])
133 AC_MSG_CHECKING(for AliRun in -lSTEER)
134 if test "x$have_alisteer" = "xyes" ; then
135 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRun.h>], [AliRun aliroot])],
136 [AC_DEFINE(HAVE_ALISTEER)],
140 AC_MSG_RESULT($have_alisteer)
142 if test ! "x$have_aliroot" = "xno" ; then
143 # the HLTTPCLib needs to link agains TPCbase and TPCrec
144 # TPC library for AliTPCParam and AliSimDigits used in
145 # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx
146 saveALIROOT_CPPFLAGS="$ALIROOT_CPPFLAGS"
147 ALIROOT_CPPFLAGS="$saveALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC"
148 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
150 AC_MSG_CHECKING(for required classes in TPC libraries)
151 if test ! "x$have_alitpc" = "xno" ; then
152 save_ALIROOT_LIBS=$ALIROOT_LIBS
153 ALIROOT_LIBS="$save_ALIROOT_LIBS -lTPCbase -lTPCrec"
154 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
155 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliSimDigits.h>
156 #include <AliTPCParam.h>
157 #include <AliTPCParamSR.h>
158 #include <AliTPCDigitsArray.h>
159 #include <AliTPCClustersArray.h>
160 #include <AliTPCcluster.h>
161 #include <AliTPCClustersRow.h>],
164 AliTPCParamSR paramsr;
165 AliTPCDigitsArray digarray;
166 AliTPCClustersArray clustarray;
168 AliTPCClustersRow row])],
169 [AC_DEFINE(HAVE_ALITPC)
170 saveALIROOT_CPPFLAGS=$ALIROOT_CPPFLAGS
171 saveALIROOT_LIBS=$ALIROOT_LIBS],
173 ALIROOT_CPPFLAGS=$saveALIROOT_CPPFLAGS
174 ALIROOT_LIBS=$saveALIROOT_LIBS])
176 AC_MSG_RESULT($have_alitpc)
179 if test ! "x$have_alirawdata" = "xno" ; then
180 # check for header files needed by the TPCLib/AliHLTTPCDigitReaderPacket
181 # the header file has been moved to the TPC module
182 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
183 # AliRawReaderMemory.h AliRawReaderFile.h already checked
184 #AC_CHECK_HEADERS([AliRawReaderMemory.h AliRawReaderFile.h AliTPCRawStream.h])
185 AC_CHECK_HEADERS([AliTPCRawStream.h])
189 if test ! "x$have_aliroot" = "xno" ; then
190 # the TPCLib/AliHLTTPCRawReader needs the actual Pad layot of the TPC
191 # which is stored in the TPC/mapping/Patchx.data files from
192 # AliRoot version v4-04-Release (May 2006)
193 AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available])
194 TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping
195 AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data],
196 [have_tpc_mapping=yes
197 AC_SUBST(TPC_PAD_MAPPING_PATH)
198 AC_DEFINE(HAVE_TPC_MAPPING)],
202 AC_MSG_CHECKING([for TPC mapping layout])
203 AM_CONDITIONAL(USE_TPC_MAPPING, test x$have_tpc_mapping = xyes)
204 AC_MSG_RESULT([$have_tpc_mapping])
206 if test "x$have_aliroot" = "xno" ; then
211 CPPFLAGS=$save_CPPFLAGS
212 LDFLAGS=$save_LDFLAGS
214 if test ! "x$have_aliroot" = "xno" ; then
215 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
219 AC_SUBST([ALIROOT_CPPFLAGS])
220 AC_SUBST([ALIROOT_LDFLAGS])
221 AC_SUBST([ALIROOT_LIBS])
222 CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
224 dnl ------------------------------------------------------------------
225 dnl check for the HLT PubSub Framework
226 AC_MSG_CHECKING([for HLT PubSub Framework])
227 AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
229 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
230 if test -z $with_pubsub || ! test -d $with_pubsub ; then
233 AC_MSG_RESULT([$with_pubsub])
235 AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
236 if test "x$with_pubsub" != "xno" ; then
237 save_CPPFLAGS=$CPPFLAGS
238 save_LDFLAGS=$LDFLAGS
240 HOMER_CPPFLAGS="-I${with_pubsub}/include/HOMER/reader"
241 HOMER_LDFLAGS="-L${with_pubsub}/lib/`uname -s`-`uname -p`"
242 CPPFLAGS="$save_CPPFLAGS $HOMER_CPPFLAGS"
243 LDFLAGS="$save_LDFLAGS $HOMER_LDFLAGS"
247 AC_CHECK_HEADER([HOMERReader.h],
248 [ AC_CHECK_LIB([HOMERReader],[_init],[with_homer=yes])])
250 if test "x$with_homer" = "xno" ; then
254 AC_DEFINE(HAVE_HOMERREADER)
256 CPPFLAGS="$save_CPPFLAGS"
257 LDFLAGS="$save_LDFLAGS"
260 AC_SUBST([HOMER_CPPFLAGS])
261 AC_SUBST([HOMER_LDFLAGS])
263 dnl ------------------------------------------------------------------
264 AC_MSG_CHECKING([whether to impose strict coding conventions])
265 AC_ARG_ENABLE(strict,
266 [AC_HELP_STRING([--enable-strict],
267 [enable coding convention checks ])],
268 [],[enable_strict=no])
269 if test "x$enable_strict" = "xyes" ; then
270 CPPFLAGS="$CPPFLAGS -Weffc++"
272 AC_MSG_RESULT([$enable_strict])
274 dnl ------------------------------------------------------------------
275 AC_MSG_CHECKING([whether to compile sample library])
276 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
277 AC_ARG_ENABLE(sample,
278 [AC_HELP_STRING([--enable-sample],
279 [compile the sample library ])],
280 [],[enable_sample=yes])
281 if test "x$enable_sample" = "xyes" ; then
282 AC_DEFINE(HLT_SAMPLE)
284 AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
285 AC_MSG_RESULT([$enable_sample])
287 dnl ------------------------------------------------------------------
288 AC_MSG_CHECKING([whether to compile tpc library])
289 AH_TEMPLATE([HLT_TPC],[hlt tpc library])
291 [AC_HELP_STRING([--enable-tpc],
292 [compile the tpc library ])],
294 if test "x$have_aliroot" = "xno" ; then
295 enable_tpc="no...requires.AliRoot"
296 elif test "x$have_alitpc" = "xno" ; then
297 enable_tpc="no...requires.AliRoot.TPC.libraries"
299 if test "x$enable_tpc" = "xyes" ; then
302 AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
303 AC_MSG_RESULT([$enable_tpc])
305 dnl ------------------------------------------------------------------
306 AC_MSG_CHECKING([whether to enable HLT logging])
307 AH_TEMPLATE([NOLOGGING],[disable hlt logging])
308 AC_ARG_ENABLE(logging,
309 [AC_HELP_STRING([--enable-logging],
311 [],[enable_logging=yes])
312 if test "x$enable_logging" != "xyes" ; then
315 AC_MSG_RESULT([$enable_logging])
317 dnl ------------------------------------------------------------------
318 AC_MSG_CHECKING([whether to enable saving MC data through the chain])
319 AH_TEMPLATE([DOMC],[MC saving])
320 AC_ARG_ENABLE(mc-saving,
321 [AC_HELP_STRING([--enable-mc-saving],
322 [enable saving MC data through the chain])],
323 [],[enable_mc_saving=no])
324 if test "x$enable_mc_saving" = "xyes" ; then
327 AC_MSG_RESULT([$enable_mc_saving])
329 dnl ------------------------------------------------------------------
330 AC_MSG_CHECKING([whether to enable AliRoot NEWIO])
331 AH_TEMPLATE([use_newio],[AliRoot NEWIO])
333 [AC_HELP_STRING([--enable-newio],
334 [enable AliRoot NEWIO ])],
335 [],[enable_newio=yes])
336 if test "x$enable_newio" = "xyes" ; then
339 AC_MSG_RESULT([$enable_newio])
341 dnl ------------------------------------------------------------------
342 dnl certainly something old, but we keep the define
343 AC_MSG_CHECKING([whether to use ROWHOUGH])
344 AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
345 AC_ARG_ENABLE(rowhough,
346 [AC_HELP_STRING([--enable-rowhough],
348 [],[enable_rowhough=no])
349 if test "x$enable_rowhough" = "xyes" ; then
350 AC_DEFINE(USEROWHOUGH)
352 AC_MSG_RESULT([$enable_rowhough])
354 dnl ------------------------------------------------------------------
358 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
359 AC_PATH_PROG(PERL, perl)
360 AC_PATH_PROG(DOXYGEN, doxygen)
361 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
364 AC_PATH_PROG(DOT, dot)
365 if ! test "x$DOT" = "x" ; then
367 DOT_PATH=`dirname $DOT`
372 dnl ------------------------------------------------------------------
373 AC_CONFIG_FILES([Makefile
377 TPCLib/mapping2array.cxx
378 TPCLib/OnlineDisplay/Makefile