]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/SampleLib/configure.ac
HLT sample applications
[u/mrichter/AliRoot.git] / HLT / SampleLib / configure.ac
1 dnl -*- mode: autoconf -*- 
2 dnl
3 dnl $Id$
4 dnl template for the configuration script for the Alice HLT 
5 dnl analysis tutorial and example library
6 dnl 
7 dnl ------------------------------------------------------------------
8 AC_INIT([Alice High Level Trigger Tutorial] , [0.1], [Matthias.Richter@ift.uib.no], alice-hlt-sample)
9
10 dnl ------------------------------------------------------------------
11 AC_CANONICAL_SYSTEM
12 AC_PREFIX_DEFAULT(${PWD})
13 AC_CONFIG_SRCDIR(AliHLTDummyComponent.cxx)
14 AM_INIT_AUTOMAKE
15 AC_PROG_CC
16 AC_PROG_CXX
17 AC_PROG_LIBTOOL
18
19 AC_DEBUG
20 AC_OPTIMIZATION
21 AM_CONDITIONAL(STANDALONE_SAMPLELIB, test 1)
22
23 dnl ------------------------------------------------------------------
24 dnl
25 dnl Check for ROOT
26 dnl
27 ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
28 AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
29 AC_SUBST([ROOTSYS])
30
31 dnl test for additional required root libraries
32   # we check for the libSTEER library which is linked to
33   # - the ROOT libs libGeom libMinuit libVMC libEG
34   # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
35   # - ROOT libCint needs also libdl
36   # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
37   #   libTreePlayer.so
38   # - from Jan 07 libESD also depends on libXMLIO
39 LIBS='-ldl'
40 if test "x$have_root" = "x1"; then
41   save_CPPFLAGS=$CPPFLAGS
42   save_LDFLAGS=$LDFLAGS
43   save_LIBS=$LIBS
44   
45   ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO'
46   for CHECKLIB in $ROOT_CHECKLIBS ; do
47     CPPFLAGS="$save_CPPFLAGS"
48     LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}"
49     LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS"
50     AC_CHECK_LIB([$CHECKLIB],[_init], [ADD_ROOTLIBS="$ADD_ROOTLIBS -l$CHECKLIB"])
51   done
52   
53   CPPFLAGS=$save_CPPFLAGS
54   LDFLAGS=$save_LDFLAGS
55   LIBS=$save_LIBS
56 fi
57
58 CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
59
60 dnl ------------------------------------------------------------------
61 dnl check for AliRoot features
62 AC_LANG_PUSH(C++)
63 have_aliroot=no
64 AC_ARG_WITH(aliroot,[  --with-aliroot     top of the AliRoot installation],
65                     [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
66                     [])
67
68 if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
69   dnl ------------------------------------------------------------------
70   dnl Try to estimate the system architecture
71   case $host_os:$host_cpu in
72   linux*:x86_64*)       alice_target='linuxx8664gcc'            ;;
73   linux*)               alice_target='linux'                    ;;
74   *)                    alice_target='unknown'                  ;;
75   esac
76   if test "x$alice_target" = "xunknown" ; then
77     if test -z $ALICE_TARGET ; then
78     AC_MSG_ERROR([Can not estimate system architecture.
79     To avoid the problem, set the ALICE_TARGET variable appropriately.
80     Please send the following information to Matthias.Richter@ift.uib.no:
81         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
82     else
83     AC_MSG_NOTICE([Unknown system architecture.
84     Please send the following information to Matthias.Richter@ift.uib.no:
85         ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])  
86     fi
87   else
88     if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
89     AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
90     overriding $ALICE_TARGET by $alice_target])
91     fi
92     ALICE_TARGET=$alice_target
93   fi
94   ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
95   ALIROOTINCDIR=${ALICE_ROOT}/include
96   test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
97   test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
98 fi
99
100 AC_MSG_CHECKING([for AliRoot])
101 if test "x$ALICE_ROOT" != "x" \
102    && test -d ${ALIROOTLIBDIR} \
103    && test -d ${ALIROOTINCDIR}; then
104   have_aliroot=$ALICE_ROOT
105 else
106   ALIROOTLIBDIR=
107   ALIROOTINCDIR=
108 fi
109 AC_MSG_RESULT([$have_aliroot])
110
111 if test ! "x$have_aliroot" = "xno" ; then
112   ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
113   ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
114   ALIROOT_LIBS="-lESD $ADD_ROOTLIBS"
115   save_CPPFLAGS=$CPPFLAGS
116   save_LDFLAGS=$LDFLAGS
117   save_LIBS=$LIBS
118   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
119   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
120   
121   # check for certain AliRoot libraries/files/features
122   # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
123   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
124   CHECKLIB=CDB
125   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
126
127   # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
128   have_alirawdata=no
129   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
130   CHECKLIB=RAWDatabase
131   AC_CHECK_LIB([$CHECKLIB],[_init],
132         [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
133          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
134          CHECKLIB=RAWDatarec
135          AC_CHECK_LIB([$CHECKLIB],[_init],
136                [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
137                 AC_DEFINE(HAVE_ALIRAWDATA)
138                 have_alirawdata=$CHECKLIB])],
139         [# second pass with -RAWData
140          CHECKLIB="-lRAWData"
141          LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
142          AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
143                                        #include <AliRawReaderFile.h>
144                                        #include <AliRawReaderDate.h>
145                                        #include <AliRawReaderRoot.h>], 
146                                      [AliRawReaderMemory mreader;
147                                        AliRawReaderFile freader;
148                                        AliRawReaderDate dreader(NULL,0);
149                                        AliRawReaderRoot rreader(NULL,0);])],
150                                      [AC_DEFINE(HAVE_ALIRAWDATA)
151                                        ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
152                                        have_alirawdata=$CHECKLIB], 
153                                       [have_alirawdata=no])
154         ]) dnl AC_CHECK_LIB RAWDatabase
155   AC_MSG_CHECKING(for AliRawReader classes in RAWData libraries)
156   AC_MSG_RESULT($have_alirawdata)
157
158   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
159   CHECKLIB=STEER
160   AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
161
162   if test "x$have_aliroot" = "xno" ; then
163     ALIROOT_CPPFLAGS=
164     ALIROOT_LDFLAGS=
165     ALIROOT_LIBS=
166   fi
167   CPPFLAGS=$save_CPPFLAGS
168   LDFLAGS=$save_LDFLAGS
169   LIBS=$save_LIBS
170 fi
171
172 dnl ------------------------------------------------------------------
173 dnl check for the HLT component framework
174 AC_MSG_CHECKING([for HLT component framework in ])
175 AC_ARG_WITH(hltbase, [  --with-hltbase    installation path of the HLT component framework],
176                      [],
177                      [test -n $have_aliroot && with_hltbase=$have_aliroot ])
178 if test -z $with_hltbase || ! test -d $with_hltbase ; then
179   with_hltbase=no
180 fi
181 AC_MSG_RESULT([$with_hltbase])
182 if test "x$with_hltbase" = "xno" || test "x$with_hltbase" = "x$ALICE_ROOT" ; then
183   HLTBASE_CPPFLAGS=-I${ALICE_ROOT}/HLT/BASE
184   HLTBASE_LDFLAGS=
185 else
186   HLTBASE_CPPFLAGS=-I${with_hltbase}/include/alice-hlt
187   HLTBASE_LDFLAGS=-L${with_hltbase}/lib
188 fi
189
190   save_CPPFLAGS=$CPPFLAGS
191   save_LDFLAGS=$LDFLAGS
192   save_LIBS=$LIBS
193   CPPFLAGS="$save_CPPFLAGS $HLTBASE_CPPFLAGS -L${ALIROOTLIBDIR}"
194   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS $HLTBASE_LDFLAGS"
195   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
196   AC_CHECK_HEADER([AliHLTComponent.h])
197   AC_CHECK_HEADER([AliHLTLogging.h])
198   CHECKLIB=HLTbase
199   AC_CHECK_LIB([$CHECKLIB],[_init],
200                [have_hltbase=yes
201                 HLTBASE_LDFLAGS="$HLTBASE_LDFLAGS -l$CHECKLIB"])
202
203   test "x$have_hltbase" = "xyes" || \
204      AC_ERROR([Stop! The package needs the HLT component framework.
205       Use  --with-hltbase option to point to the HLT component framework
206       installation])
207
208   CPPFLAGS=$save_CPPFLAGS
209   LDFLAGS=$save_LDFLAGS
210   LIBS=$save_LIBS
211
212 AC_LANG_POP(C++)
213 AC_SUBST([ALIROOT_CPPFLAGS])
214 AC_SUBST([ALIROOT_LDFLAGS])
215 AC_SUBST([ALIROOTLIBDIR])
216 AC_SUBST([ALIROOT_LIBS])
217 AC_SUBST([HLTBASE_CPPFLAGS])
218 AC_SUBST([HLTBASE_LDFLAGS])
219
220 dnl ------------------------------------------------------------------
221 dnl
222 dnl Documentation
223 dnl
224 AC_ARG_VAR(DOXYGEN, The Documentation Generator)
225 AC_PATH_PROG(PERL, perl)
226 AC_PATH_PROG(DOXYGEN, doxygen)
227 AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
228 HAVE_DOT=NO
229 DOT_PATH=
230 AC_PATH_PROG(DOT, dot)
231 if ! test "x$DOT" = "x" ; then
232    HAVE_DOT=YES
233    DOT_PATH=`dirname $DOT`
234 fi
235 AC_SUBST([HAVE_DOT])
236 AC_SUBST([DOT_PATH])
237
238 dnl ------------------------------------------------------------------
239 dnl inatallation directory for libraries
240 dnl 
241 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
242 libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
243 AC_MSG_NOTICE([libdir set to $libdir])
244 fi
245 dnl ------------------------------------------------------------------
246 AC_CONFIG_FILES([Makefile])
247
248
249 AC_OUTPUT
250 dnl
251 dnl EOF
252 dnl
253
254 dnl AC_CONFIG_FILES([Makefile 
255 dnl              doc/Makefile
256 dnl              doc/doxygen.conf])