- moved AliHLTDisplay files from TPCLib to TPCLib/OnlineDisplay
[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 ------------------------------------------------------------------
db16520a 8AC_INIT([Alice High Level Trigger] , [0.4-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
29
30dnl ------------------------------------------------------------------
31dnl
32dnl Check for ROOT
33dnl
34ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
35AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
36
37dnl ------------------------------------------------------------------
38# TODO: make this configurable through arguments
39#Define whether you want to run with ALIROOT or only ROOT
40AH_TEMPLATE([ALIHLT_USEPACKAGE],[running environment])
41ALIHLT_USEPACKAGE=ALIROOT
42#ALIHLT_USEPACKAGE=ROOT
43#ALIHLT_USEPACKAGE=STANDALONE
44AC_DEFINE(use_aliroot)
45AC_DEFINE(use_root)
85869391 46CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
85869391 47
48dnl ------------------------------------------------------------------
74c73e5a 49dnl check for AliRoot features
50AC_LANG_PUSH(C++)
51AC_MSG_CHECKING([for AliRoot])
52have_aliroot=no
53with_aliroot=yes
54if test "x$with_aliroot" = "xyes" || test "x$with_aliroot" = "x" ; then
55 ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
56 ALIROOTINCDIR=${ALICE_ROOT}/include
57elif 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"
62fi
63if test "x$ALICE_ROOT" != "x" \
64 && test -d ${ALIROOTLIBDIR} \
65 && test -d ${ALIROOTINCDIR}; then
66 have_aliroot=$ALICE_ROOT
67else
68 ALIROOTLIBDIR=
69 ALIROOTINCDIR=
70fi
71AC_MSG_RESULT([$have_aliroot])
72
73if 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
82 save_LDFLAGS=$LDFLAGS
83 save_LIBS=$LIBS
84 CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
db16520a 85 LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
86 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
74c73e5a 87
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
93 have_alirawdata=yes
94 AC_MSG_CHECKING(for AliRawReader classes in RAWData libraries)
95 if test ! "x$have_alirawdata" = "xno" ; then
96 CHECKLIB="-lRAWDatarec"
db16520a 97 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lRAWDatabase $CHECKLIB"
74c73e5a 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
112 CHECKLIB="-lRAWData"
db16520a 113 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB"
74c73e5a 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])
126 fi
127 fi
128 AC_MSG_RESULT($have_alirawdata)
129 fi
130
131 have_alisteer=yes
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)],
137 [have_alisteer=no
138 have_aliroot=no])
139 fi
140 AC_MSG_RESULT($have_alisteer)
141
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"
149 have_alitpc=yes
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"
db16520a 154 LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
74c73e5a 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>],
162 [AliSimDigits dig;
163 AliTPCParam param;
164 AliTPCParamSR paramsr;
165 AliTPCDigitsArray digarray;
166 AliTPCClustersArray clustarray;
167 AliTPCcluster clust;
168 AliTPCClustersRow row])],
169 [AC_DEFINE(HAVE_ALITPC)
170 saveALIROOT_CPPFLAGS=$ALIROOT_CPPFLAGS
171 saveALIROOT_LIBS=$ALIROOT_LIBS],
172 [have_alitpc=no
173 ALIROOT_CPPFLAGS=$saveALIROOT_CPPFLAGS
174 ALIROOT_LIBS=$saveALIROOT_LIBS])
175 fi
176 AC_MSG_RESULT($have_alitpc)
177 fi
178
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])
186 fi
85869391 187
db16520a 188 have_tpc_mapping=no
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)],
199 [])
200
201 fi
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])
205
74c73e5a 206 if test "x$have_aliroot" = "xno" ; then
207 ALIROOT_CPPFLAGS=
208 ALIROOT_LDFLAGS=
209 ALIROOT_LIBS=
210 fi
211 CPPFLAGS=$save_CPPFLAGS
212 LDFLAGS=$save_LDFLAGS
213 LIBS=$save_LIBS
214 if test ! "x$have_aliroot" = "xno" ; then
215 CPPFLAGS="$CPPFLAGS -DALIROOTVERSION=\\\"Unknown\\\""
216 fi
217fi
218AC_LANG_POP(C++)
219AC_SUBST([ALIROOT_CPPFLAGS])
220AC_SUBST([ALIROOT_LDFLAGS])
221AC_SUBST([ALIROOT_LIBS])
222CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\""
85869391 223
224dnl ------------------------------------------------------------------
78b557c2 225dnl check for the HLT PubSub Framework
226AC_MSG_CHECKING([for HLT PubSub Framework])
227AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework],
228 [],
229 [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ])
230if test -z $with_pubsub || ! test -d $with_pubsub ; then
231 with_pubsub=no
232fi
233AC_MSG_RESULT([$with_pubsub])
234
235AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface])
236if test "x$with_pubsub" != "xno" ; then
237 save_CPPFLAGS=$CPPFLAGS
238 save_LDFLAGS=$LDFLAGS
239 save_LIBS=$LIBS
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"
244 LIBS="$save_LIBS "
245 with_homer=no
246 AC_LANG_PUSH(C++)
247 AC_CHECK_HEADER([HOMERReader.h],
248 [ AC_CHECK_LIB([HOMERReader],[_init],[with_homer=yes])])
249 AC_LANG_POP(C++)
250 if test "x$with_homer" = "xno" ; then
251 HOMER_CPPFLAGS=
252 HOMER_LDFLAGS=
253 else
254 AC_DEFINE(HAVE_HOMERREADER)
255 fi
256 CPPFLAGS="$save_CPPFLAGS"
257 LDFLAGS="$save_LDFLAGS"
258 LIBS="$save_LIBS"
259fi
260AC_SUBST([HOMER_CPPFLAGS])
261AC_SUBST([HOMER_LDFLAGS])
262
263dnl ------------------------------------------------------------------
85869391 264AC_MSG_CHECKING([whether to impose strict coding conventions])
265AC_ARG_ENABLE(strict,
266 [AC_HELP_STRING([--enable-strict],
267 [enable coding convention checks ])],
268 [],[enable_strict=no])
269if test "x$enable_strict" = "xyes" ; then
270 CPPFLAGS="$CPPFLAGS -Weffc++"
271fi
272AC_MSG_RESULT([$enable_strict])
b521659f 273
274dnl ------------------------------------------------------------------
275AC_MSG_CHECKING([whether to compile sample library])
276AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
277AC_ARG_ENABLE(sample,
278 [AC_HELP_STRING([--enable-sample],
279 [compile the sample library ])],
280 [],[enable_sample=yes])
281if test "x$enable_sample" = "xyes" ; then
282 AC_DEFINE(HLT_SAMPLE)
283fi
284AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
285AC_MSG_RESULT([$enable_sample])
286
287dnl ------------------------------------------------------------------
288AC_MSG_CHECKING([whether to compile tpc library])
289AH_TEMPLATE([HLT_TPC],[hlt tpc library])
290AC_ARG_ENABLE(tpc,
291 [AC_HELP_STRING([--enable-tpc],
292 [compile the tpc library ])],
293 [],[enable_tpc=yes])
74c73e5a 294if test "x$have_aliroot" = "xno" ; then
295 enable_tpc="no...requires.AliRoot"
296elif test "x$have_alitpc" = "xno" ; then
297 enable_tpc="no...requires.AliRoot.TPC.libraries"
298fi
b521659f 299if test "x$enable_tpc" = "xyes" ; then
300 AC_DEFINE(HLT_TPC)
301fi
302AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
303AC_MSG_RESULT([$enable_tpc])
304
305dnl ------------------------------------------------------------------
306AC_MSG_CHECKING([whether to enable HLT logging])
307AH_TEMPLATE([NOLOGGING],[disable hlt logging])
308AC_ARG_ENABLE(logging,
309 [AC_HELP_STRING([--enable-logging],
310 [enable logging])],
311 [],[enable_logging=yes])
312if test "x$enable_logging" != "xyes" ; then
313 AC_DEFINE(NOLOGGING)
314fi
315AC_MSG_RESULT([$enable_logging])
316
317dnl ------------------------------------------------------------------
318AC_MSG_CHECKING([whether to enable saving MC data through the chain])
319AH_TEMPLATE([DOMC],[MC saving])
320AC_ARG_ENABLE(mc-saving,
321 [AC_HELP_STRING([--enable-mc-saving],
322 [enable saving MC data through the chain])],
323 [],[enable_mc_saving=no])
324if test "x$enable_mc_saving" = "xyes" ; then
325 AC_DEFINE(DOMC)
326fi
327AC_MSG_RESULT([$enable_mc_saving])
328
329dnl ------------------------------------------------------------------
b521659f 330AC_MSG_CHECKING([whether to enable AliRoot NEWIO])
331AH_TEMPLATE([use_newio],[AliRoot NEWIO])
332AC_ARG_ENABLE(newio,
333 [AC_HELP_STRING([--enable-newio],
334 [enable AliRoot NEWIO ])],
335 [],[enable_newio=yes])
336if test "x$enable_newio" = "xyes" ; then
337 AC_DEFINE(use_newio)
338fi
339AC_MSG_RESULT([$enable_newio])
340
341dnl ------------------------------------------------------------------
342dnl certainly something old, but we keep the define
343AC_MSG_CHECKING([whether to use ROWHOUGH])
344AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
345AC_ARG_ENABLE(rowhough,
346 [AC_HELP_STRING([--enable-rowhough],
347 [use ROWHOUGH ])],
348 [],[enable_rowhough=no])
349if test "x$enable_rowhough" = "xyes" ; then
350 AC_DEFINE(USEROWHOUGH)
351fi
352AC_MSG_RESULT([$enable_rowhough])
353
354dnl ------------------------------------------------------------------
355dnl
356dnl Documentation
357dnl
358AC_ARG_VAR(DOXYGEN, The Documentation Generator)
359AC_PATH_PROG(PERL, perl)
360AC_PATH_PROG(DOXYGEN, doxygen)
361AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
362HAVE_DOT=NO
363DOT_PATH=
364AC_PATH_PROG(DOT, dot)
365if ! test "x$DOT" = "x" ; then
366 HAVE_DOT=YES
367 DOT_PATH=`dirname $DOT`
368fi
369AC_SUBST([HAVE_DOT])
370AC_SUBST([DOT_PATH])
371
372dnl ------------------------------------------------------------------
373AC_CONFIG_FILES([Makefile
374 BASE/Makefile
375 SampleLib/Makefile
376 TPCLib/Makefile
db16520a 377 TPCLib/mapping2array.cxx
78b557c2 378 TPCLib/OnlineDisplay/Makefile
b521659f 379 doc/Makefile
380 doc/doxygen.conf])
381
382
383AC_OUTPUT
384dnl
385dnl EOF
386dnl
387