]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/acinclude.m4
Change "undefined" value of the time stamp from 0 to kMaxUInt, while 0 could be a...
[u/mrichter/AliRoot.git] / HLT / acinclude.m4
index 93a7de905fc01f3c4e6aa4e47c6f0519f5507656..3f8c4886fc8a9e1ee9ac8f0286e4f55948abedbc 100644 (file)
@@ -28,10 +28,12 @@ AC_DEFUN([AC_DEBUG],
     [AC_HELP_STRING([--enable-debug],[Enable debugging symbols in objects])],
     [],[enable_debug=no])
   if test "x$enable_debug" = "xno" ; then
+    AC_DEFINE(NDEBUG)
     CFLAGS=`echo $CFLAGS | sed 's,-g,,'`
     CXXFLAGS=`echo $CXXFLAGS | sed 's,-g,,'`
   else
     AC_DEFINE(__DEBUG)
+    AC_DEFINE(DEBUG)
     case $CXXFLAGS in
     *-g*) ;;
     *)    CXXFLAGS="$CXXFLAGS -g" ;;
@@ -44,6 +46,32 @@ AC_DEFUN([AC_DEBUG],
   AC_MSG_RESULT($enable_debug 'CFLAGS=$CFLAGS')
 ])
 
+dnl ------------------------------------------------------------------
+AC_DEFUN([AC_PROFILING],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_PROG_CXX])
+  AC_MSG_CHECKING(whether to add profiling info)
+  AC_ARG_ENABLE(profiling,
+    [AC_HELP_STRING([--enable-profiling],[Enable profiling info in objects])],
+    [],[enable_profiling=no])
+  if test "x$enable_profiling" = "xno" ; then
+    CFLAGS=`echo $CFLAGS | sed 's,-pg,,'`
+    CXXFLAGS=`echo $CXXFLAGS | sed 's,-pg,,'`
+  else
+    AC_DEFINE(PROFILING)
+    case $CXXFLAGS in
+    *-pg*) ;;
+    *)    CXXFLAGS="$CXXFLAGS -pg" ;;
+    esac
+    case $CFLAGS in
+    *-pg*) ;;
+    *)    CFLAGS="$CFLAGS -pg" ;;
+    esac
+  fi
+  AC_MSG_RESULT($enable_profiling 'CFLAGS=$CFLAGS')
+])
+
 dnl ------------------------------------------------------------------
 AC_DEFUN([AC_OPTIMIZATION],
 [
@@ -51,7 +79,7 @@ AC_DEFUN([AC_OPTIMIZATION],
   AC_REQUIRE([AC_PROG_CXX])
 
   AC_ARG_ENABLE(optimization,
-    [AC_HELP_STRING([--enable-optimization],[Enable optimization of objects])],
+    [AC_HELP_STRING([--disable-optimization],[Enable optimization of objects])],
     [],[enable_optimization=yes])
 
   AC_MSG_CHECKING(for optimiztion level)
@@ -121,7 +149,8 @@ AC_DEFUN([ROOT_PATH],
   else 
    rootbin=$PATH
   fi
-  AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin)
+  AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin)   # used by HLT build system
+  AC_PATH_PROG(ROOTCONFIG, root-config , no, $rootbin) # used by AliRoot build system
   AC_PATH_PROG(ROOTEXEC, root , no, $rootbin)
   AC_PATH_PROG(ROOTCINT, rootcint , no, $rootbin)
        
@@ -170,6 +199,124 @@ AC_DEFUN([ROOT_PATH],
   fi
 ])
 
+dnl ------------------------------------------------------------------
+dnl
+dnl Autoconf macro to check conditions for an HLT module
+dnl          - header dependencies
+dnl          - library dependencies
+dnl          - AliRoot availability
+dnl The macro also exports the --enable/--disable option for the
+dnl module.
+dnl
+dnl Synopsis:
+dnl
+dnl  ROOT_PATH([module],
+dnl            [headers], [additional CPPFLAGS],
+dnl            [libraries], [LD flags], [LIBS],
+dnl            [circ libraries], [LD flags], [LIBS])
+dnl
+dnl First argument is the module name.
+dnl
+dnl Arg 2 and 3 allow to check a list of header files and to specify
+dnl additional CPPFLAGS which might be necessary to perform the checks.
+dnl 
+dnl Arg 4 to 6 allow to check a list of libraries, with additional
+dnl LDFLAGS and LIBS to be specified.
+dnl
+dnl Arg 7 to 9 is the same for libraries with circular dependencies
+dnl among each other.
+dnl
+dnl Return:
+dnl enable_module=yes
+dnl   - AliRoot was found &&
+dnl   - header files found &&
+dnl   - module not disabled
+dnl
+dnl enable_module=no...requires.AliRoot
+dnl   - AliRoot not found
+dnl
+dnl enable_module=missheader
+dnl   - one of the specified header files is missing
+dnl
+dnl Libraries are probed and the variable ALIHLTMODULE_LIBS is set to
+dnl all libraries which could be found.
+dnl 
+dnl Some examples:
+dnl
+dnl Matthias Richter <Matthias.Richter@uib.no>
+AC_DEFUN([CHECK_HLTMODULE],
+[
+AH_TEMPLATE([HLT_[$1]],[hlt [$1] library])
+AC_ARG_ENABLE([$1],
+  [AC_HELP_STRING([--disable-[$1]],
+      [   compile the $1 library ])],
+  [if test "x$enableval" = "xno";
+     then enable_module=no
+   elif test "x$disable_all" = "xyes"; then
+     # do checks if library has been enabled after global disable
+     enable_module=yes
+   else
+     enable_module=force
+  fi],
+  [if test "x$disable_all" = "xyes"; then
+   enable_module=no...modules.disabled
+   else
+   enable_module=yes
+   fi # if test "x$disable_all" = "yes"
+  ])
+  if test "x$enable_module" = "xyes"; then
+   if test "x$have_aliroot" = "xno" ; then
+     enable_module="no...requires.AliRoot"
+   else
+     AC_MSG_NOTICE([-------------------------------------------------])
+     AC_MSG_NOTICE([checking dependencies for [$1] library])
+
+     AC_LANG_PUSH(C++)
+     save_CPPFLAGS="$CPPFLAGS"
+     save_LDFLAGS="$LDFLAGS"
+     save_LIBS="$LIBS"
+     CPPFLAGS="$save_CPPFLAGS [$3]"
+
+     if test "x[$2]" != "x"; then
+        AC_CHECK_HEADERS([$2], [], [enable_module="missheader"])
+     fi
+
+     dnl ==========================================================================
+     dnl
+     dnl required header files and libraries for the AliHLTxxx library  
+     dnl
+     
+     dnl ROOT/AliRoot libs needed by libAliHLTxxx
+     CHECKLIBS="[$4]"
+     ALIHLTMODULE_LIBS=
+     LDFLAGS="$save_LDFLAGS [$5]"
+     for CHECKLIB in $CHECKLIBS ; do
+       LIBS="$save_LIBS $ROOTLIBS [$6] $ALIHLTMODULE_LIBS"
+       AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS -l$CHECKLIB"])
+     done
+
+     dnl libs with circular dependencies needed by libAliHLTxxx
+     CHECKLIBS="[$7]"
+     CIRCULARS=
+     for dep in [$7]; do 
+       CIRCULARS="$CIRCULARS -l$dep"
+     done
+     ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS"
+     LDFLAGS="$save_LDFLAGS [$8]"
+     for CHECKLIB in $CHECKLIBS ; do
+       CIRCULARS=`echo $CIRCULARS | sed -e "s|-l$CHECKLIB||"`
+       LIBS="$save_LIBS [$9] $CIRCULARS $ALIHLTMODULE_LIBS"
+       AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTMODULE_LIBS="$ALIHLTMODULE_LIBS -l$CHECKLIB"])
+     done
+     CPPFLAGS="$save_CPPFLAGS"
+     LDFLAGS="$save_LDFLAGS"
+     LIBS="$save_LIBS"  
+     AC_LANG_POP(C++)
+
+   fi # if test "x$have_aliroot" = "xno"
+  fi  # if test "x$enable_module" = "xyes"
+])
+
 
 #
 # EOF