4 dnl Copyright (C) 2002 Christian Holm Christensen <cholm@nbi.dk>
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public License
8 dnl as published by the Free Software Foundation; either version 2.1
9 dnl of the License, or (at your option) any later version.
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 dnl Lesser General Public License for more details.
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free
18 dnl Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 dnl ------------------------------------------------------------------
24 AC_REQUIRE([AC_PROG_CC])
25 AC_REQUIRE([AC_PROG_CXX])
26 AC_MSG_CHECKING(whether to make debug objects)
28 [AC_HELP_STRING([--enable-debug],[Enable debugging symbols in objects])],
30 if test "x$enable_debug" = "xno" ; then
32 CFLAGS=`echo $CFLAGS | sed 's,-g,,'`
33 CXXFLAGS=`echo $CXXFLAGS | sed 's,-g,,'`
39 *) CXXFLAGS="$CXXFLAGS -g" ;;
43 *) CFLAGS="$CFLAGS -g" ;;
46 AC_MSG_RESULT($enable_debug 'CFLAGS=$CFLAGS')
49 dnl ------------------------------------------------------------------
50 AC_DEFUN([AC_PROFILING],
52 AC_REQUIRE([AC_PROG_CC])
53 AC_REQUIRE([AC_PROG_CXX])
54 AC_MSG_CHECKING(whether to add profiling info)
55 AC_ARG_ENABLE(profiling,
56 [AC_HELP_STRING([--enable-profiling],[Enable profiling info in objects])],
57 [],[enable_profiling=no])
58 if test "x$enable_profiling" = "xno" ; then
59 CFLAGS=`echo $CFLAGS | sed 's,-pg,,'`
60 CXXFLAGS=`echo $CXXFLAGS | sed 's,-pg,,'`
65 *) CXXFLAGS="$CXXFLAGS -pg" ;;
69 *) CFLAGS="$CFLAGS -pg" ;;
72 AC_MSG_RESULT($enable_profiling 'CFLAGS=$CFLAGS')
75 dnl ------------------------------------------------------------------
76 AC_DEFUN([AC_OPTIMIZATION],
78 AC_REQUIRE([AC_PROG_CC])
79 AC_REQUIRE([AC_PROG_CXX])
81 AC_ARG_ENABLE(optimization,
82 [AC_HELP_STRING([--disable-optimization],[Enable optimization of objects])],
83 [],[enable_optimization=yes])
85 AC_MSG_CHECKING(for optimiztion level)
87 changequote(<<, >>)dnl
88 if test "x$enable_optimization" = "xno" ; then
89 CFLAGS=`echo $CFLAGS | sed 's,-O\([0-9][0-9]*\|\),,'`
90 CXXFLAGS=`echo $CXXFLAGS | sed 's,-O\([0-9][0-9]*\|\),,'`
91 elif test "x$enable_optimization" = "xyes" ; then
94 *) CXXFLAGS="$CXXFLAGS -O2" ;;
98 *) CFLAGS="$CXXFLAGS -O2" ;;
101 CFLAGS=`echo $CFLAGS | sed "s,-O\([0-9][0-9]*\|\),-O$enable_optimization,"`
102 CXXFLAGS=`echo $CXXFLAGS | sed "s,-O\([0-9][0-9]*\|\),-O$enable_optimization,"`
105 AC_MSG_RESULT($enable_optimization 'CFLAGS=$CFLAGS')
108 dnl ------------------------------------------------------------------
111 dnl Autoconf macro to check for existence or ROOT on the system
114 dnl ROOT_PATH([MINIMUM-VERSION, [ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]]])
118 dnl ROOT_PATH(3.03/05, , AC_MSG_ERROR(Your ROOT version is too old))
119 dnl ROOT_PATH(, AC_DEFINE([HAVE_ROOT]))
121 dnl The macro defines the following substitution variables
123 dnl ROOTCONF full path to root-config
124 dnl ROOTEXEC full path to root
125 dnl ROOTCINT full path to rootcint
126 dnl ROOTLIBDIR Where the ROOT libraries are
127 dnl ROOTINCDIR Where the ROOT headers are
128 dnl ROOTCFLAGS Extra compiler flags
129 dnl ROOTLIBS ROOT basic libraries
130 dnl ROOTGLIBS ROOT basic + GUI libraries
131 dnl ROOTAUXLIBS Auxilary libraries and linker flags for ROOT
132 dnl ROOTAUXCFLAGS Auxilary compiler flags
133 dnl ROOTRPATH Same as ROOTLIBDIR
135 dnl The macro will fail if root-config and rootcint isn't found.
137 dnl Christian Holm Christensen <cholm@nbi.dk>
139 AC_DEFUN([ROOT_PATH],
142 [ --with-rootsys top of the ROOT installation directory],
143 user_rootsys=$withval,
145 if test ! x"$user_rootsys" = xnone; then
146 rootbin="$user_rootsys/bin"
147 elif test ! x"$ROOTSYS" = x ; then
148 rootbin="$ROOTSYS/bin"
152 AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin)
153 AC_PATH_PROG(ROOTEXEC, root , no, $rootbin)
154 AC_PATH_PROG(ROOTCINT, rootcint , no, $rootbin)
156 if test ! x"$ROOTCONF" = "xno" && \
157 test ! x"$ROOTCINT" = "xno" ; then
159 # define some variables
160 ROOTLIBDIR=`$ROOTCONF --libdir`
161 ROOTINCDIR=`$ROOTCONF --incdir`
162 ROOTCFLAGS=`$ROOTCONF --noauxcflags --cflags`
163 ROOTLIBS=`$ROOTCONF --noauxlibs --noldflags --libs`
164 ROOTGLIBS=`$ROOTCONF --noauxlibs --noldflags --glibs`
165 ROOTAUXCFLAGS=`$ROOTCONF --auxcflags`
166 ROOTAUXLIBS=`$ROOTCONF --auxlibs`
167 ROOTRPATH=$ROOTLIBDIR
170 AC_MSG_CHECKING(wether ROOT version >= [$1])
171 vers=`$ROOTCONF --version | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
172 requ=`echo $1 | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
173 if test $vers -lt $requ ; then
181 # otherwise, we say no_root
190 AC_SUBST(ROOTAUXLIBS)
191 AC_SUBST(ROOTAUXCFLAGS)
194 if test "x$no_root" = "x" ; then
195 ifelse([$2], , :, [$2])
197 ifelse([$3], , :, [$3])
201 dnl ------------------------------------------------------------------
203 dnl Autoconf macro to check conditions for an HLT module
204 dnl - header dependencies
205 dnl - library dependencies
206 dnl - AliRoot availability
207 dnl The macro also exports the --enable/--disable option for the
212 dnl ROOT_PATH([module],
213 dnl [headers], [additional CPPFLAGS],
214 dnl [libraries], [LD flags], [LIBS],
215 dnl [circ libraries], [LD flags], [LIBS])
217 dnl First argument is the module name.
219 dnl Arg 2 and 3 allow to check a list of header files and to specify
220 dnl additional CPPFLAGS which might be necessary to perform the checks.
222 dnl Arg 4 to 6 allow to check a list of libraries, with additional
223 dnl LDFLAGS and LIBS to be specified.
225 dnl Arg 7 to 9 is the same for libraries with circular dependencies
226 dnl among each other.
229 dnl enable_module=yes
230 dnl - AliRoot was found &&
231 dnl - header files found &&
232 dnl - module not disabled
234 dnl enable_module=no...requires.AliRoot
235 dnl - AliRoot not found
237 dnl enable_module=missheader
238 dnl - one of the specified header files is missing
240 dnl Libraries are probed and the variable ALIHLTMODULE_LIBS is set to
241 dnl all libraries which could be found.
245 dnl Matthias Richter <Matthias.Richter@uib.no>
246 AC_DEFUN([CHECK_HLTMODULE],
248 AH_TEMPLATE([HLT_[$1]],[hlt [$1] library])
250 [AC_HELP_STRING([--disable-[$1]],
251 [ compile the $1 library ])],
252 [if test "x$enableval" = "xno";
253 then enable_module=no
254 elif test "x$disable_all" = "xyes"; then
255 # do checks if library has been enabled after global disable
260 [if test "x$disable_all" = "xyes"; then
261 enable_module=no...modules.disabled
264 fi # if test "x$disable_all" = "yes"
266 if test "x$enable_module" = "xyes"; then
267 if test "x$have_aliroot" = "xno" ; then
268 enable_module="no...requires.AliRoot"
270 AC_MSG_NOTICE([-------------------------------------------------])
271 AC_MSG_NOTICE([checking dependencies for [$1] library])
274 save_CPPFLAGS="$CPPFLAGS"
275 save_LDFLAGS="$LDFLAGS"
277 CPPFLAGS="$save_CPPFLAGS [$3]"
279 if test "x[$2]" != "x"; then
280 AC_CHECK_HEADERS([$2], [], [enable_module="missheader"])
283 dnl ==========================================================================
285 dnl required header files and libraries for the AliHLTxxx library
288 dnl ROOT/AliRoot libs needed by libAliHLTxxx
291 LDFLAGS="$save_LDFLAGS [$5]"
292 for CHECKLIB in $CHECKLIBS ; do
293 LIBS="$save_LIBS $ROOTLIBS [$6] $ALIHLTMODULE_LIBS"
294 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS -l$CHECKLIB"])
297 dnl libs with circular dependencies needed by libAliHLTxxx
301 CIRCULARS="$CIRCULARS -l$dep"
303 ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS"
304 LDFLAGS="$save_LDFLAGS [$8]"
305 for CHECKLIB in $CHECKLIBS ; do
306 CIRCULARS=`echo $CIRCULARS | sed -e "s|-l$CHECKLIB||"`
307 LIBS="$save_LIBS [$9] $CIRCULARS $ALIHLTMODULE_LIBS"
308 AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS -l$CHECKLIB"])
310 CPPFLAGS="$save_CPPFLAGS"
311 LDFLAGS="$save_LDFLAGS"
315 fi # if test "x$have_aliroot" = "xno"
316 fi # if test "x$enable_module" = "xyes"