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 | |
78b557c2 |
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], |
228 | [], |
229 | [ test -n $ALIHLT_DC_DIR && with_pubsub=$ALIHLT_DC_DIR ]) |
230 | if test -z $with_pubsub || ! test -d $with_pubsub ; then |
231 | with_pubsub=no |
232 | fi |
233 | AC_MSG_RESULT([$with_pubsub]) |
234 | |
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 |
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" |
259 | fi |
260 | AC_SUBST([HOMER_CPPFLAGS]) |
261 | AC_SUBST([HOMER_LDFLAGS]) |
262 | |
85869391 |
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++" |
271 | fi |
272 | AC_MSG_RESULT([$enable_strict]) |
b521659f |
273 | |
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) |
283 | fi |
284 | AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes) |
285 | AC_MSG_RESULT([$enable_sample]) |
286 | |
287 | dnl ------------------------------------------------------------------ |
288 | AC_MSG_CHECKING([whether to compile tpc library]) |
289 | AH_TEMPLATE([HLT_TPC],[hlt tpc library]) |
290 | AC_ARG_ENABLE(tpc, |
291 | [AC_HELP_STRING([--enable-tpc], |
292 | [compile the tpc library ])], |
293 | [],[enable_tpc=yes]) |
74c73e5a |
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" |
298 | fi |
b521659f |
299 | if test "x$enable_tpc" = "xyes" ; then |
300 | AC_DEFINE(HLT_TPC) |
301 | fi |
302 | AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes) |
303 | AC_MSG_RESULT([$enable_tpc]) |
304 | |
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], |
310 | [enable logging])], |
311 | [],[enable_logging=yes]) |
312 | if test "x$enable_logging" != "xyes" ; then |
313 | AC_DEFINE(NOLOGGING) |
314 | fi |
315 | AC_MSG_RESULT([$enable_logging]) |
316 | |
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 |
325 | AC_DEFINE(DOMC) |
326 | fi |
327 | AC_MSG_RESULT([$enable_mc_saving]) |
328 | |
b521659f |
329 | dnl ------------------------------------------------------------------ |
330 | AC_MSG_CHECKING([whether to enable AliRoot NEWIO]) |
331 | AH_TEMPLATE([use_newio],[AliRoot NEWIO]) |
332 | AC_ARG_ENABLE(newio, |
333 | [AC_HELP_STRING([--enable-newio], |
334 | [enable AliRoot NEWIO ])], |
335 | [],[enable_newio=yes]) |
336 | if test "x$enable_newio" = "xyes" ; then |
337 | AC_DEFINE(use_newio) |
338 | fi |
339 | AC_MSG_RESULT([$enable_newio]) |
340 | |
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], |
347 | [use ROWHOUGH ])], |
348 | [],[enable_rowhough=no]) |
349 | if test "x$enable_rowhough" = "xyes" ; then |
350 | AC_DEFINE(USEROWHOUGH) |
351 | fi |
352 | AC_MSG_RESULT([$enable_rowhough]) |
353 | |
354 | dnl ------------------------------------------------------------------ |
355 | dnl |
356 | dnl Documentation |
357 | 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") |
362 | HAVE_DOT=NO |
363 | DOT_PATH= |
364 | AC_PATH_PROG(DOT, dot) |
365 | if ! test "x$DOT" = "x" ; then |
366 | HAVE_DOT=YES |
367 | DOT_PATH=`dirname $DOT` |
368 | fi |
369 | AC_SUBST([HAVE_DOT]) |
370 | AC_SUBST([DOT_PATH]) |
371 | |
372 | dnl ------------------------------------------------------------------ |
373 | AC_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 | |
383 | AC_OUTPUT |
384 | dnl |
385 | dnl EOF |
386 | dnl |
387 | |