]>
Commit | Line | Data |
---|---|---|
b521659f | 1 | dnl -*- mode: autoconf -*- |
2 | dnl | |
3 | dnl $Id$ | |
4 | dnl template for the configuration script for the Alice HLT | |
5 | dnl framework and components | |
6 | dnl | |
7 | dnl ------------------------------------------------------------------ | |
db16520a | 8 | AC_INIT([Alice High Level Trigger] , [0.4-dev], [Matthias.Richter@ift.uib.no], alice-hlt) |
b521659f | 9 | |
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 | |
13 | dnl directory | |
14 | if test "`dirname $0`" = "." ; then | |
15 | AC_ERROR([please run the script from a separate build directory]) | |
16 | fi | |
17 | ||
18 | dnl ------------------------------------------------------------------ | |
19 | AC_CANONICAL_SYSTEM | |
20 | AC_PREFIX_DEFAULT(${PWD}) | |
21 | AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx) | |
22 | AM_INIT_AUTOMAKE | |
23 | AC_PROG_CC | |
24 | AC_PROG_CXX | |
25 | AC_PROG_LIBTOOL | |
26 | ||
27 | AC_DEBUG | |
28 | AC_OPTIMIZATION | |
29 | ||
30 | dnl ------------------------------------------------------------------ | |
31 | dnl | |
32 | dnl Check for ROOT | |
33 | 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" ) | |
36 | ||
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) | |
45 | AC_DEFINE(use_root) | |
85869391 | 46 | CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}" |
85869391 | 47 | |
48 | dnl ------------------------------------------------------------------ | |
74c73e5a | 49 | dnl check for AliRoot features |
50 | AC_LANG_PUSH(C++) | |
51 | AC_MSG_CHECKING([for AliRoot]) | |
52 | have_aliroot=no | |
53 | with_aliroot=yes | |
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" | |
62 | fi | |
63 | if test "x$ALICE_ROOT" != "x" \ | |
64 | && test -d ${ALIROOTLIBDIR} \ | |
65 | && test -d ${ALIROOTINCDIR}; then | |
66 | have_aliroot=$ALICE_ROOT | |
67 | else | |
68 | ALIROOTLIBDIR= | |
69 | ALIROOTINCDIR= | |
70 | fi | |
71 | AC_MSG_RESULT([$have_aliroot]) | |
72 | ||
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 | |
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 | |
217 | fi | |
218 | AC_LANG_POP(C++) | |
219 | AC_SUBST([ALIROOT_CPPFLAGS]) | |
220 | AC_SUBST([ALIROOT_LDFLAGS]) | |
221 | AC_SUBST([ALIROOT_LIBS]) | |
222 | CPPFLAGS="$CPPFLAGS -DROOTVERSION=\\\"`${ROOTCONF} --version`\\\"" | |
85869391 | 223 | |
224 | dnl ------------------------------------------------------------------ | |
225 | AC_MSG_CHECKING([whether to impose strict coding conventions]) | |
226 | AC_ARG_ENABLE(strict, | |
227 | [AC_HELP_STRING([--enable-strict], | |
228 | [enable coding convention checks ])], | |
229 | [],[enable_strict=no]) | |
230 | if test "x$enable_strict" = "xyes" ; then | |
231 | CPPFLAGS="$CPPFLAGS -Weffc++" | |
232 | fi | |
233 | AC_MSG_RESULT([$enable_strict]) | |
b521659f | 234 | |
235 | dnl ------------------------------------------------------------------ | |
236 | AC_MSG_CHECKING([whether to compile sample library]) | |
237 | AH_TEMPLATE([HLT_SAMPLE],[hlt sample library]) | |
238 | AC_ARG_ENABLE(sample, | |
239 | [AC_HELP_STRING([--enable-sample], | |
240 | [compile the sample library ])], | |
241 | [],[enable_sample=yes]) | |
242 | if test "x$enable_sample" = "xyes" ; then | |
243 | AC_DEFINE(HLT_SAMPLE) | |
244 | fi | |
245 | AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes) | |
246 | AC_MSG_RESULT([$enable_sample]) | |
247 | ||
248 | dnl ------------------------------------------------------------------ | |
249 | AC_MSG_CHECKING([whether to compile tpc library]) | |
250 | AH_TEMPLATE([HLT_TPC],[hlt tpc library]) | |
251 | AC_ARG_ENABLE(tpc, | |
252 | [AC_HELP_STRING([--enable-tpc], | |
253 | [compile the tpc library ])], | |
254 | [],[enable_tpc=yes]) | |
74c73e5a | 255 | if test "x$have_aliroot" = "xno" ; then |
256 | enable_tpc="no...requires.AliRoot" | |
257 | elif test "x$have_alitpc" = "xno" ; then | |
258 | enable_tpc="no...requires.AliRoot.TPC.libraries" | |
259 | fi | |
b521659f | 260 | if test "x$enable_tpc" = "xyes" ; then |
261 | AC_DEFINE(HLT_TPC) | |
262 | fi | |
263 | AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes) | |
264 | AC_MSG_RESULT([$enable_tpc]) | |
265 | ||
85869391 | 266 | dnl ------------------------------------------------------------------ |
267 | if test "x$enable_tpc" = "xyes" ; then | |
268 | AC_MSG_CHECKING([whether to compile tpc reference library]) | |
269 | AH_TEMPLATE([HLT_TPCREF],[hlt tpc reference library]) | |
270 | AC_ARG_ENABLE(tpcref, | |
271 | [AC_HELP_STRING([--enable-tpcref], | |
272 | [compile the tpc reference library ])], | |
273 | [],[enable_tpcref=no]) | |
274 | if test "x$enable_tpcref" = "xyes" ; then | |
275 | AC_DEFINE(HLT_TPCREF) | |
276 | fi | |
85869391 | 277 | AC_MSG_RESULT([$enable_tpcref]) |
278 | fi | |
74c73e5a | 279 | AM_CONDITIONAL(EN_HLT_TPCREF, test x$enable_tpcref = xyes) |
85869391 | 280 | |
b521659f | 281 | dnl ------------------------------------------------------------------ |
282 | AC_MSG_CHECKING([whether to enable HLT logging]) | |
283 | AH_TEMPLATE([NOLOGGING],[disable hlt logging]) | |
284 | AC_ARG_ENABLE(logging, | |
285 | [AC_HELP_STRING([--enable-logging], | |
286 | [enable logging])], | |
287 | [],[enable_logging=yes]) | |
288 | if test "x$enable_logging" != "xyes" ; then | |
289 | AC_DEFINE(NOLOGGING) | |
290 | fi | |
291 | AC_MSG_RESULT([$enable_logging]) | |
292 | ||
293 | dnl ------------------------------------------------------------------ | |
294 | AC_MSG_CHECKING([whether to enable saving MC data through the chain]) | |
295 | AH_TEMPLATE([DOMC],[MC saving]) | |
296 | AC_ARG_ENABLE(mc-saving, | |
297 | [AC_HELP_STRING([--enable-mc-saving], | |
298 | [enable saving MC data through the chain])], | |
299 | [],[enable_mc_saving=no]) | |
300 | if test "x$enable_mc_saving" = "xyes" ; then | |
301 | AC_DEFINE(DOMC) | |
302 | fi | |
303 | AC_MSG_RESULT([$enable_mc_saving]) | |
304 | ||
b521659f | 305 | dnl ------------------------------------------------------------------ |
306 | AC_MSG_CHECKING([whether to enable AliRoot NEWIO]) | |
307 | AH_TEMPLATE([use_newio],[AliRoot NEWIO]) | |
308 | AC_ARG_ENABLE(newio, | |
309 | [AC_HELP_STRING([--enable-newio], | |
310 | [enable AliRoot NEWIO ])], | |
311 | [],[enable_newio=yes]) | |
312 | if test "x$enable_newio" = "xyes" ; then | |
313 | AC_DEFINE(use_newio) | |
314 | fi | |
315 | AC_MSG_RESULT([$enable_newio]) | |
316 | ||
317 | dnl ------------------------------------------------------------------ | |
318 | dnl certainly something old, but we keep the define | |
319 | AC_MSG_CHECKING([whether to use ROWHOUGH]) | |
320 | AH_TEMPLATE([USEROWHOUGH],[HLT ROWHOUGH]) | |
321 | AC_ARG_ENABLE(rowhough, | |
322 | [AC_HELP_STRING([--enable-rowhough], | |
323 | [use ROWHOUGH ])], | |
324 | [],[enable_rowhough=no]) | |
325 | if test "x$enable_rowhough" = "xyes" ; then | |
326 | AC_DEFINE(USEROWHOUGH) | |
327 | fi | |
328 | AC_MSG_RESULT([$enable_rowhough]) | |
329 | ||
330 | dnl ------------------------------------------------------------------ | |
331 | dnl | |
332 | dnl Documentation | |
333 | dnl | |
334 | AC_ARG_VAR(DOXYGEN, The Documentation Generator) | |
335 | AC_PATH_PROG(PERL, perl) | |
336 | AC_PATH_PROG(DOXYGEN, doxygen) | |
337 | AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x") | |
338 | HAVE_DOT=NO | |
339 | DOT_PATH= | |
340 | AC_PATH_PROG(DOT, dot) | |
341 | if ! test "x$DOT" = "x" ; then | |
342 | HAVE_DOT=YES | |
343 | DOT_PATH=`dirname $DOT` | |
344 | fi | |
345 | AC_SUBST([HAVE_DOT]) | |
346 | AC_SUBST([DOT_PATH]) | |
347 | ||
348 | dnl ------------------------------------------------------------------ | |
349 | AC_CONFIG_FILES([Makefile | |
350 | BASE/Makefile | |
351 | SampleLib/Makefile | |
352 | TPCLib/Makefile | |
db16520a | 353 | TPCLib/mapping2array.cxx |
b521659f | 354 | TPCLib/Ref/Makefile |
b521659f | 355 | doc/Makefile |
356 | doc/doxygen.conf]) | |
357 | ||
358 | ||
359 | AC_OUTPUT | |
360 | dnl | |
361 | dnl EOF | |
362 | dnl | |
363 |