AliHLTTPCDisplay.cxx moved 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 ------------------------------------------------------------------
225AC_MSG_CHECKING([whether to impose strict coding conventions])
226AC_ARG_ENABLE(strict,
227 [AC_HELP_STRING([--enable-strict],
228 [enable coding convention checks ])],
229 [],[enable_strict=no])
230if test "x$enable_strict" = "xyes" ; then
231 CPPFLAGS="$CPPFLAGS -Weffc++"
232fi
233AC_MSG_RESULT([$enable_strict])
b521659f 234
235dnl ------------------------------------------------------------------
236AC_MSG_CHECKING([whether to compile sample library])
237AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
238AC_ARG_ENABLE(sample,
239 [AC_HELP_STRING([--enable-sample],
240 [compile the sample library ])],
241 [],[enable_sample=yes])
242if test "x$enable_sample" = "xyes" ; then
243 AC_DEFINE(HLT_SAMPLE)
244fi
245AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes)
246AC_MSG_RESULT([$enable_sample])
247
248dnl ------------------------------------------------------------------
249AC_MSG_CHECKING([whether to compile tpc library])
250AH_TEMPLATE([HLT_TPC],[hlt tpc library])
251AC_ARG_ENABLE(tpc,
252 [AC_HELP_STRING([--enable-tpc],
253 [compile the tpc library ])],
254 [],[enable_tpc=yes])
74c73e5a 255if test "x$have_aliroot" = "xno" ; then
256 enable_tpc="no...requires.AliRoot"
257elif test "x$have_alitpc" = "xno" ; then
258 enable_tpc="no...requires.AliRoot.TPC.libraries"
259fi
b521659f 260if test "x$enable_tpc" = "xyes" ; then
261 AC_DEFINE(HLT_TPC)
262fi
263AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
264AC_MSG_RESULT([$enable_tpc])
265
266dnl ------------------------------------------------------------------
267AC_MSG_CHECKING([whether to enable HLT logging])
268AH_TEMPLATE([NOLOGGING],[disable hlt logging])
269AC_ARG_ENABLE(logging,
270 [AC_HELP_STRING([--enable-logging],
271 [enable logging])],
272 [],[enable_logging=yes])
273if test "x$enable_logging" != "xyes" ; then
274 AC_DEFINE(NOLOGGING)
275fi
276AC_MSG_RESULT([$enable_logging])
277
278dnl ------------------------------------------------------------------
279AC_MSG_CHECKING([whether to enable saving MC data through the chain])
280AH_TEMPLATE([DOMC],[MC saving])
281AC_ARG_ENABLE(mc-saving,
282 [AC_HELP_STRING([--enable-mc-saving],
283 [enable saving MC data through the chain])],
284 [],[enable_mc_saving=no])
285if test "x$enable_mc_saving" = "xyes" ; then
286 AC_DEFINE(DOMC)
287fi
288AC_MSG_RESULT([$enable_mc_saving])
289
290dnl ------------------------------------------------------------------
b521659f 291AC_MSG_CHECKING([whether to enable AliRoot NEWIO])
292AH_TEMPLATE([use_newio],[AliRoot NEWIO])
293AC_ARG_ENABLE(newio,
294 [AC_HELP_STRING([--enable-newio],
295 [enable AliRoot NEWIO ])],
296 [],[enable_newio=yes])
297if test "x$enable_newio" = "xyes" ; then
298 AC_DEFINE(use_newio)
299fi
300AC_MSG_RESULT([$enable_newio])
301
302dnl ------------------------------------------------------------------
303dnl certainly something old, but we keep the define
304AC_MSG_CHECKING([whether to use ROWHOUGH])
305AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH])
306AC_ARG_ENABLE(rowhough,
307 [AC_HELP_STRING([--enable-rowhough],
308 [use ROWHOUGH ])],
309 [],[enable_rowhough=no])
310if test "x$enable_rowhough" = "xyes" ; then
311 AC_DEFINE(USEROWHOUGH)
312fi
313AC_MSG_RESULT([$enable_rowhough])
314
315dnl ------------------------------------------------------------------
316dnl
317dnl Documentation
318dnl
319AC_ARG_VAR(DOXYGEN, The Documentation Generator)
320AC_PATH_PROG(PERL, perl)
321AC_PATH_PROG(DOXYGEN, doxygen)
322AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
323HAVE_DOT=NO
324DOT_PATH=
325AC_PATH_PROG(DOT, dot)
326if ! test "x$DOT" = "x" ; then
327 HAVE_DOT=YES
328 DOT_PATH=`dirname $DOT`
329fi
330AC_SUBST([HAVE_DOT])
331AC_SUBST([DOT_PATH])
332
333dnl ------------------------------------------------------------------
334AC_CONFIG_FILES([Makefile
335 BASE/Makefile
336 SampleLib/Makefile
337 TPCLib/Makefile
db16520a 338 TPCLib/mapping2array.cxx
b521659f 339 doc/Makefile
340 doc/doxygen.conf])
341
342
343AC_OUTPUT
344dnl
345dnl EOF
346dnl
347