- integration of libHLTbase into AliRoot prepared
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 3 Dec 2006 21:51:29 +0000 (21:51 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 3 Dec 2006 21:51:29 +0000 (21:51 +0000)
- SampleLib as stand-alone package
- library development tutorial
- TPCLog bugfix -> include C++ style header

12 files changed:
HLT/BASE/Makefile.am
HLT/ChangeLog
HLT/README
HLT/SampleLib/AUTHORS [new file with mode: 0644]
HLT/SampleLib/ChangeLog [new file with mode: 0644]
HLT/SampleLib/Makefile.am
HLT/SampleLib/NEWS [new file with mode: 0644]
HLT/SampleLib/README [new file with mode: 0644]
HLT/SampleLib/configure.ac [new file with mode: 0644]
HLT/TPCLib/AliHLTTPCClusterFinder.cxx
HLT/TPCLib/AliHLTTPCLog.h
HLT/configure.ac

index 754e90c..8f9fe1f 100644 (file)
@@ -10,7 +10,13 @@ bin_SCRIPTS                  = setenv.sh setenv.csh
 # library definition
 lib_LTLIBRARIES                        =  libHLTbase.la
 
+MODDIR                         = $(top_srcdir)
+PKGDEF                         = $(MODDIR)/libHLTbase.pkg
+#include $(top_srcdir)/libHLTbase.pkg
+
 # library sources
+# temporary until lib*.pkg file is commited to AliRoot
+#libHLTbase_la_SOURCES         = $(MODULE_SRCS)
 libHLTbase_la_SOURCES          =  AliHLTComponent.cxx \
                                   AliHLTComponentHandler.cxx \
                                   AliHLTSystem.cxx \
@@ -35,6 +41,9 @@ CLASS_HDRS                    =  AliHLTComponent.h \
                                   AliHLTDataBuffer.h \
                                   AliHLTDataSource.h \
                                   AliHLTDataSink.h
+
+# temporary until lib*.pkg file is commited to AliRoot
+#pkginclude_HEADERS            =  $(MODULE_HDRS)
 pkginclude_HEADERS             =  $(CLASS_HDRS) \
                                   AliHLTDataTypes.h \
                                   AliHLT_C_Component_WrapperInterface.h \
index ab3fcac..26619dc 100644 (file)
@@ -1,5 +1,11 @@
+2006-12-03 
+       - integration of libHLTbase into AliRoot prepared
+       - SampleLib as stand-alone package
+       - library development tutorial
 2006-11-30 intermediate version
        - setup scripts for running environment added
+       - bugfix in configure which caused the check for PubSub components
+         to fail on some architectures
        - ComponentHandler takes ROOT dynamic library loader as fallback if
          dlopen is not available
        - minor changes to avoid effC++ and other warnings
index bbfdc0a..b6a9ec9 100644 (file)
@@ -98,10 +98,12 @@ use a separate build directory.
 
 You should redirect the output of the make into a file.
 The default install directory is set to the current directory ($PWD). To
-override the default directory use the option --prefix=<dir>           
-All binary libraries will be installed under <prefix>/lib. If the directory
-id eaual to $ALICE_ROOT, the libraries will be installed under 
-<prefix>/lib/tgt_<arch> as used for AliRoot.
+override the default directory use the option --prefix=<dir>. More information
+can be obtained from the configure script by running it with option --help.
+All binary libraries will be installed under <prefix>/lib. 
+If the directory is equal to $ALICE_ROOT, the libraries will be installed under 
+<prefix>/lib/tgt_<arch> as used for AliRoot. This is a custom extension in
+order to adapt to the specific AliRoot installation directories.
 
 Some important options:
 --enable-logging  # Enable/Disable logging (default enabled)
diff --git a/HLT/SampleLib/AUTHORS b/HLT/SampleLib/AUTHORS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/HLT/SampleLib/ChangeLog b/HLT/SampleLib/ChangeLog
new file mode 100644 (file)
index 0000000..e69de29
index 4617325..dafc03e 100644 (file)
@@ -1,31 +1,86 @@
 # $Id$
 # Makefile template for the Alice HLT sample library
 
-EXTRA_DIST                     = tutorial.c
+# This files defines the autotools-based build system of the
+# libAliHLTSample library. All lines starting with a '#' are comments.
+# Note: Source files definitions must be made in libAliHLTSample.pkg
+# For further information refer to the README.
 
 MODULE                                 = AliHLTSample
 
-AM_CPPFLAGS                    = -I$(top_srcdir)/BASE
+#EXTRA_DIST                    = libAliHLTSample.pkg
 
+# include the pkg definition which actually contains the source
+# file definitions
+#include libAliHLTSample.pkg
 
 # library definition
+# The lib_LTLIBRARIES variable is a fixed variable of the autotools build
+# system. All libraries defined by the Makefile template have to be added
+# here. Since we aim for separated directories for different libraries
+# there will be only one library.
 lib_LTLIBRARIES                        =  libAliHLTSample.la
 
+# version info for the library
+# The libtool program is used to created the library, a version number can
+# be specified by using the -version-info flag. This flag accepts an argument
+# of the form current[:revision[:age]].
+# If either revision or age are omitted, they default to 0. Also note that
+# age must be less than or equal to the current interface number. Here are a
+# set of rules to help you update your library version information:
+#
+#   1. Start with version information of 0:0:0 for each libtool library.
+#   2. Update the version information only immediately before a public release
+#      of your software. More frequent updates are unnecessary, and only
+#      guarantee that the current interface number gets larger faster.
+#   3. If the library source code has changed at all since the last update,
+#      then increment revision (c:r:a becomes c:r+1:a).
+#   4. If any interfaces have been added, removed, or changed since the last
+#      update, increment current, and set revision to 0.
+#   5. If any interfaces have been added since the last public release, then
+#      increment age.
+#   6. If any interfaces have been removed since the last public release, then
+#      set age to 0. 
+LIBRARY_VERSION                        = '1:0:0'
+
 # library sources
-libAliHLTSample_la_SOURCES     =  AliHLTSampleComponent1.cxx \
-                                  AliHLTSampleComponent2.cxx \
-                                  AliHLTDummyComponent.cxx
+# The source files are specified in libAliHLTSample.pkg
+#libAliHLTSample_la_SOURCES    =  $(MODULE_SRCS)
+# temporary until lib*.pkg file is commited to AliRoot
+libAliHLTSample_la_SOURCES=    AliHLTSampleComponent1.cxx \
+                               AliHLTSampleComponent2.cxx \
+                               AliHLTDummyComponent.cxx
 
-# class header files, the link definition for the root dictionary
-# will be created from the names of the header files
-CLASS_HDRS                     =  AliHLTSampleComponent1.h \
-                                  AliHLTSampleComponent2.h \
-                                  AliHLTDummyComponent.h
+# temporary until lib*.pkg file is commited to AliRoot
+CLASS_HDRS=    AliHLTSampleComponent1.h \
+               AliHLTSampleComponent2.h \
+               AliHLTDummyComponent.h
 
-noinst_HEADERS                 =  $(CLASS_HDRS)
+# library headers
+# The header files are specified in libAliHLTSample.pkg
+#noinst_HEADERS                        =  $(MODULE_HDRS)
+# temporary until lib*.pkg file is commited to AliRoot
+noinst_HEADERS=        $(CLASS_HDRS)
 
-# version info for the library
-libAliHLTSample_la_LDFLAGS     =  -version-info 1:0:0
+# compilation flags of the library
+# This is the place to add further include directories if you are
+# using external modules. The AliRoot, ROOT and HLT base directories
+# are the default include directories.
+AM_CPPFLAGS                    = @HLTBASE_CPPFLAGS@ \
+                                 @ALIROOT_CPPFLAGS@ \
+                                 @ROOTCFLAGS@
+
+# linking flags of the library
+# This is the place to add further libraries if you are
+# using external modules. The AliRoot, ROOT and HLT base libraries
+# are added by default.
+# Also the version of the library 
+libAliHLTSample_la_LDFLAGS     = -L@ROOTLIBDIR@ \
+                                 @ROOTLIBS@ \
+                                 @HLTBASE_LDFLAGS@ \
+                                 @ALIROOT_LDFLAGS@ \
+                                 @ALIROOT_LIBS@ \
+                                 -version-info $(LIBRARY_VERSION)
 
 # set the file name for the generated root dictionary
 DICTCPP                                =  AliHLTSample-DICT.cxx
@@ -33,4 +88,30 @@ nodist_libAliHLTSample_la_SOURCES    =  $(DICTCPP)
 
 CLEANFILES                     =
 
-include $(top_srcdir)/make.dict
+###############################################################################
+#
+# do not change anything below this line
+#
+DICTDEF                                =  $(MODULE)-LinkDef.h
+DICTFILES                      =  $(DICTCPP) $(DICTCPP:.cxx=.h) $(DICTDEF)
+DICTHEADERS                    =  $(CLASS_HDRS)
+
+CLEANFILES                     += $(DICTFILES)
+
+
+$(DICTCPP:.cxx=.h): $(DICTCPP)
+       if test $@ ; then : ; else rm -f $< ; $(MAKE) $(MAKEFLAGS) $< ; fi 
+
+$(DICTCPP): $(DICTHEADERS:%=$(srcdir)/%) $(DICTDEF)
+       if [ -x $(ROOTCINT) ]; then $(ROOTCINT) -f $@ -c $(CPPFLAGS) $(AM_CPPFLAGS) $(DEFS) $(foreach i, $(DICTINCLUDE), $(i)) $^ ; fi
+$(DICTDEF): Makefile.am
+       @echo '//automatically generated ROOT DICT definition' > $@
+       @echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@
+       @echo '//add further class definitions to the CLASS_HDRS variable in Makefile.am' >> $@
+       @echo '#ifdef __CINT__' >> $@
+       @echo '#pragma link off all globals;' >> $@
+       @echo '#pragma link off all classes;' >> $@
+       @echo '#pragma link off all functions;' >> $@
+       @$(foreach i, $(DICTHEADERS), \
+          echo "#pragma link C++ class `echo $(i) | sed -e "s|.*/||g" -e "s|\.h.*||"`;" >> $@ ;)
+       @echo '#endif' >> $@
diff --git a/HLT/SampleLib/NEWS b/HLT/SampleLib/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/HLT/SampleLib/README b/HLT/SampleLib/README
new file mode 100644 (file)
index 0000000..df000ec
--- /dev/null
@@ -0,0 +1,232 @@
+This README describes the procedure to create a customized component 
+library for the ALICE HLT.
+
+Please send corrections/suggestions/bugreports to
+Matthias.Richter@ift.uib.no
+
+Part A describes a library embedded into the ALICE HLT build system
+Part B gives a  recipe for using this package stand-alone
+
+Note: You can not mix the two alternatives since this would confuse aototools. 
+Our suggestions: If you are developing anyway with the AliRoot HLT module 
+choose alternative A. If you don't use the HLT module explicitly choose 
+alternative B.
+
+If you have downloaded the 'alice-hlt-sample' package and want to build and 
+modify it, go directly to Part B.
+
+===============================================================================
+=====                                                                     =====
+=====                Part A: The embedded case                            =====
+=====                                                                     =====
+===============================================================================
+
+This describes how to create a new component library embedded into the
+ALICE HLT build system. We asume that you have a version of the AliRoot
+HLT module installed. The top level directory of the package is referred
+as 'topdir' from now on.
+
+1. Choose a name for your library and the sub-folder: 
+   e.g. 'libAliHLTTest' in folder 'Test'
+2. Go to the topdir:
+> cd <topdir>
+
+3. Copy the SampleLib folder as new 'Test' folder
+> cp -a SampleLib Test
+
+4. Change dir to the new folder
+> cd Test
+
+5. Rename libAliHLTSample.pkg to libAliHLTTest.pkg
+> mv libAliHLTSample.pkg libAliHLTTest.pkg
+
+6. Open 'Makefile.am' with an editor
+   This is the Makefile template for the autotools build system. In particular
+   one defines the library to be built to the lib_LTLIBRARIES variable. 
+   Furthermore, source and header files have to be specified, but in our case
+   this is done in the 'lib***.pkg file. By using such a file the library can
+   later easily be added to AliRoot.
+6.1. replace all strings 'AliHLTSample' with 'AliHLTTest'
+
+7. Now, you can think about implementing a new component. The packge contains
+   three example components:
+   - AliHLTDummyComponent: a real component which copies data from the input
+     to the output
+   - AliHLTSampleComponent1/2: two dummy components which just demonstrate 
+     how several components can be implemented in one library
+   Each of the components has a header file '<component>.h' and a source code
+   file '<component>.cxx
+7.1 Take the DummyComponent, copy the two files (to your component name):
+> cp AliHLTDummyComponent.h MyTestComponent.h
+> cp AliHLTDummyComponent.cxx MyTestComponent.cxx
+7.2 Implement the required methods. A tutorial will be added to this package
+   soon. A comprehensive online tutorial is available at
+   http://www.kip.uni-heidelberg.de/wiki/HLT
+
+8. Once you are finnished with the first code development, you have to add
+   the new component files to the build system. Open 'libAliHLTTest.pkg' 
+8.1. Add all your source files to the SRCS variable, remove the files from
+     the libAliHLTSample
+8.2. Add all header files of classes which should be added to the ROOT
+     dictionary to the CLASS_HDRS variable, remove the files from the
+     libAliHLTSample
+8.3. All other header files must be added to the HDRS variable, including the
+     content of the CLASS_HEADERS
+
+9. Now we just have to add our new library to the build system. 
+9.1 Open Makefile.am in the topdir and add 'Test' to the list of SUBDIRS
+9.2 Open configure.ac in the topdir and add 'Test/Makefile' to the list of
+    files to be created: AC_CONFIG_FILES at the end of configure.ac
+
+10.Make sure that all files are saved. Now follow the instruction from the
+   README in the topdir. In principle its enough to go to your build directory
+   and simply type
+> make
+> make install
+
+
+
+===============================================================================
+=====                                                                     =====
+=====                Part B: Stand-alone package                          =====
+=====                                                                     =====
+===============================================================================
+
+TOC
+===
+1. Overview
+2. Requirements
+3. Setting up a version retrieved from CVS
+4. Modifying a distributed package
+5. Installation
+6. Code development
+7. Documentation
+8. Reporting bugs/Asking for support
+9. Committing to the AliRoot CVS
+
+1. Overview
+===========
+This package provides a compilation of shared libraries of the ALICE
+HLT project and is intended for stand-alone compilation, i.e. not as part 
+of the AliRoot compilation. 
+
+
+2. Requirements
+===============
+The package needs both ROOT and AliRoot. Both must be set up in the
+usual way (ROOTSYS, ALICE_ROOT, library locations evtl. specified in
+LD_LIBRARY_PATH, ...). The package also needs the ALICE HLT component
+framework. This is part of AliRoot from version v4-05-Release on. You can
+also download the package from
+http://www.kip.uni-heidelberg.de/wiki/HLT
+
+To set up a version retrieved from CVS, autoconf 2.57, automake 1.6
+,and libtool 1.4 or higher versions are required. Thats the versions
+which come with the Scientific Linux CERN 3. The same applies if
+you want to change the Makefiles.
+
+If your GNU build tools are too old, ask the maintainers for a distributed
+package.  
+
+3. Setting up a version retrieved from CVS
+==========================================
+Skip this section if you have started from the tar ball.
+
+A version checked out from CVS requires a few steps to set up the Makefiles.
+Go to the directory and run
+autoreconf -i -f
+
+Then continue with the package configuration described in the 'Installation'
+section.
+
+4. Modifying a distributed package
+==================================
+If you are going the modify a distributed package you might need to re-make 
+the GNU build system by running
+ autoreconf -f -i
+
+Please notify the authors about bug fixes/corrections/extensions you made if
+you consider them worth to be merged into the project.
+
+Then continue with the package configuration described in the 'Installation'
+section.
+
+5. Installation
+===============
+Package build relies on the GNU triplet configure, make and make install.
+In order to keep the development directory clean, it is recommended to
+use a separate build directory. 
+
+  mkdir build
+  cd build
+  ../configure
+  make
+  make install
+
+You should redirect the output of the make into a file.
+The default install directory is set to the current directory ($PWD). To
+override the default directory use the option --prefix=<dir>. More information
+can be obtained from the configure script by running it with option --help.
+All binary libraries will be installed under <prefix>/lib. 
+If the directory is equal to $ALICE_ROOT, the libraries will be installed under 
+<prefix>/lib/tgt_<arch> as used for AliRoot. This is a custom extension in
+order to adapt to the specific AliRoot installation directories.
+
+You might need to specify the installation path of the ALICE HLT component
+framework during packge configuration. This can be done by the option
+--with-hltbase.
+Please follow correctly the installation procedure of the framework package.
+
+Note: You can have several build directories with different configure options,
+(e.g. AliRoot versions) but using the same source code. 
+
+If you need further information on the GNU build system, execute from the 
+top directory:
+./configure --help | less
+
+6. Code Development
+===================
+Once you are finnished with the build of the package, you can think about
+changing the code. The packge contains three example components:
+- AliHLTDummyComponent: a real component which copies data from the input
+  to the output
+- AliHLTSampleComponent1/2: two dummy components which just demonstrate 
+  how several components can be implemented in one library
+Each of the components has aheader file '<component>.h' and a source code
+file '<component>.cxx
+
+Leave your build directory and go back to the top directory where you can find 
+the source code as well as the Makefile template Makefile.am. Choose a new 
+name of your library (the tutorial uses AliHLTTest) and follow the instructions 
+5 to 8 of Part A (embedded case).
+
+When you are done with this, you can build the library by typing 'make' in your
+build directory, and install it by make install.
+
+7. Documentation
+================
+NOTE: DOXYGEN GENERATED DOCUMENTATION WILL BE ADDED SOON !!!
+Documentation is generated from the source code at compile time if 
+doxygen is installed on the machine. From the build directory, open
+doc/html/index.html with a web browser.
+
+A wiki with detailed information is set up at
+http://www.kip.uni-heidelberg.de/wiki/HLT
+
+8. Reporting bugs/Asking for support
+====================================
+Please include the following information into your request:
+- config.log from your build directory
+- output of the make process. Note: Redirect BOTH the stdout and stderr
+  channel to a log file. Redirection depends on the shell you are using:
+    bash: make 2>&1 | tee make.log 
+    csh: make |& tee make.log
+  The 'tee' command just duplicates the output.
+- history of the commands you are using for compilation
+  history > history.log
+
+9. Committing to the AliRoot CVS
+================================
+At some point you might want to add the library to the AliRoot HLT module.
+Please contact Matthias.Richter@ift.uib.no and send a stable version as a
+tar archive.
diff --git a/HLT/SampleLib/configure.ac b/HLT/SampleLib/configure.ac
new file mode 100644 (file)
index 0000000..0b094f5
--- /dev/null
@@ -0,0 +1,233 @@
+dnl -*- mode: autoconf -*- 
+dnl
+dnl $Id$
+dnl template for the configuration script for the Alice HLT 
+dnl analysis tutorial and example library
+dnl 
+dnl ------------------------------------------------------------------
+AC_INIT([Alice High Level Trigger Tutorial] , [0.1], [Matthias.Richter@ift.uib.no], alice-hlt-sample)
+
+dnl ------------------------------------------------------------------
+AC_CANONICAL_SYSTEM
+AC_PREFIX_DEFAULT(${PWD})
+AC_CONFIG_SRCDIR(AliHLTDummyComponent.cxx)
+AM_INIT_AUTOMAKE
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+
+AC_DEBUG
+AC_OPTIMIZATION
+
+dnl ------------------------------------------------------------------
+dnl
+dnl Check for ROOT
+dnl
+ROOT_PATH(, [have_root=1], [AC_ERROR([Stop! The HLT package needs ROOT.])])
+AM_CONDITIONAL(HAVE_ROOT, test "x$have_root" = "x1" )
+AC_SUBST([ROOTSYS])
+CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}"
+
+dnl ------------------------------------------------------------------
+dnl check for AliRoot features
+AC_LANG_PUSH(C++)
+have_aliroot=no
+AC_ARG_WITH(aliroot,[  --with-aliroot  top of the AliRoot installation],
+                   [test -d $with_aliroot && ALICE_ROOT=$with_aliroot],
+                   [])
+
+if test "x$ALICE_ROOT" != "x" && test -d $ALICE_ROOT ; then
+  dnl ------------------------------------------------------------------
+  dnl Try to estimate the system architecture
+  case $host_os:$host_cpu in
+  linux*:x86_64*)      alice_target='linuxx8664gcc'            ;;
+  linux*)              alice_target='linux'                    ;;
+  *)                   alice_target='unknown'                  ;;
+  esac
+  if test "x$alice_target" = "xunknown" ; then
+    if test -z $ALICE_TARGET ; then
+    AC_MSG_ERROR([Can not estimate system architecture.
+    To avoid the problem, set the ALICE_TARGET variable appropriately.
+    Please send the following information to Matthias.Richter@ift.uib.no:
+       ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])
+    else
+    AC_MSG_NOTICE([Unknown system architecture.
+    Please send the following information to Matthias.Richter@ift.uib.no:
+       ${PACKAGE}: no AliRoot target definition for os=$host_os and cpu=$host_cpu ])  
+    fi
+  else
+    if test "x$ALICE_TARGET" != "x" && test "x$ALICE_TARGET" != "x$alice_target" ; then
+    AC_MSG_WARN([The ALICE_TARGET variable does not match your current system
+    overriding $ALICE_TARGET by $alice_target])
+    fi
+    ALICE_TARGET=$alice_target
+  fi
+  ALIROOTLIBDIR=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}
+  ALIROOTINCDIR=${ALICE_ROOT}/include
+  test -d ${ALIROOTLIBDIR} || AC_MSG_WARN([can not find AliRoot library directory $ALIROOTLIBDIR])
+  test -d ${ALIROOTINCDIR} || AC_MSG_WARN([can not find AliRoot include directory $ALIROOTINCDIR])
+fi
+
+AC_MSG_CHECKING([for AliRoot])
+if test "x$ALICE_ROOT" != "x" \
+   && test -d ${ALIROOTLIBDIR} \
+   && test -d ${ALIROOTINCDIR}; then
+  have_aliroot=$ALICE_ROOT
+else
+  ALIROOTLIBDIR=
+  ALIROOTINCDIR=
+fi
+AC_MSG_RESULT([$have_aliroot])
+
+if test ! "x$have_aliroot" = "xno" ; then
+  # we check for the libSTEER library which is linked to
+  # - the ROOT libs libGeom libMinuit libVMC libEG
+  # - the AliRoot libESD libRAWData (libRAWDatarec from v4-04-Rev-07)
+  # - ROOT libCint needs also libdl
+  # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires
+  #   libTreePlayer.so
+  ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW"
+  ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}"
+  ALIROOT_LIBS="-lESD -lGeom -lMinuit -lVMC -lEG -ldl -lTreePlayer"
+  save_CPPFLAGS=$CPPFLAGS
+  save_LDFLAGS=$LDFLAGS
+  save_LIBS=$LIBS
+  CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
+  LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
+  
+  # check for certain AliRoot libraries/files/features
+  # CBD library is present since AliRoot version v4-05-00 (02.06.2006)
+  LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
+  CHECKLIB=CDB
+  AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
+
+  # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006)
+  have_alirawdata=no
+  LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
+  CHECKLIB=RAWDatabase
+  AC_CHECK_LIB([$CHECKLIB],[_init],
+       [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
+        LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
+        CHECKLIB=RAWDatarec
+        AC_CHECK_LIB([$CHECKLIB],[_init],
+               [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"
+               AC_DEFINE(HAVE_ALIRAWDATA)
+               have_alirawdata=$CHECKLIB])],
+       [# second pass with -RAWData
+        CHECKLIB="-lRAWData"
+        LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $CHECKLIB -lSTEER"
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliRawReaderMemory.h>
+                                      #include <AliRawReaderFile.h>
+                                      #include <AliRawReaderDate.h>
+                                      #include <AliRawReaderRoot.h>], 
+                                     [AliRawReaderMemory mreader;
+                                      AliRawReaderFile freader;
+                                      AliRawReaderDate dreader(NULL,0);
+                                      AliRawReaderRoot rreader(NULL,0);])],
+                                     [AC_DEFINE(HAVE_ALIRAWDATA)
+                                      ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB"
+                                      have_alirawdata=$CHECKLIB], 
+                                     [have_alirawdata=no])
+       ]) dnl AC_CHECK_LIB RAWDatabase
+  AC_MSG_CHECKING(for AliRawReader classes in RAWData libraries)
+  AC_MSG_RESULT($have_alirawdata)
+
+  LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
+  CHECKLIB=STEER
+  AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"])
+
+  if test "x$have_aliroot" = "xno" ; then
+    ALIROOT_CPPFLAGS=
+    ALIROOT_LDFLAGS=
+    ALIROOT_LIBS=
+  fi
+  CPPFLAGS=$save_CPPFLAGS
+  LDFLAGS=$save_LDFLAGS
+  LIBS=$save_LIBS
+fi
+
+dnl ------------------------------------------------------------------
+dnl check for the HLT component framework
+AC_MSG_CHECKING([for HLT component framework in ])
+AC_ARG_WITH(hltbase, [installation path of the HLT component framework],
+                    [],
+                    [test -n $have_aliroot && with_hltbase=$have_aliroot ])
+if test -z $with_hltbase || ! test -d $with_hltbase ; then
+  with_hltbase=no
+fi
+AC_MSG_RESULT([$with_hltbase])
+if test "x$with_hltbase" = "xno" || test "x$with_hltbase" = "x$ALICE_ROOT" ; then
+  HLTBASE_CPPFLAGS=-I${ALICE_ROOT}/HLT/BASE
+  HLTBASE_LDFLAGS=
+else
+  HLTBASE_CPPFLAGS=-I${with_hltbase}/include/alice-hlt
+  HLTBASE_LDFLAGS=-L${with_hltbase}/lib
+fi
+
+  save_CPPFLAGS=$CPPFLAGS
+  save_LDFLAGS=$LDFLAGS
+  save_LIBS=$LIBS
+  CPPFLAGS="$save_CPPFLAGS $HLTBASE_CPPFLAGS -L${ALIROOTLIBDIR}"
+  LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS $HLTBASE_LDFLAGS"
+  LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
+  AC_CHECK_HEADER([AliHLTComponent.h])
+  AC_CHECK_HEADER([AliHLTLogging.h])
+  CHECKLIB=HLTbase
+  AC_CHECK_LIB([$CHECKLIB],[_init],
+              [have_hltbase=yes
+               HLTBASE_LDFLAGS="$HLTBASE_LDFLAGS -l$CHECKLIB"])
+
+  test "x$have_hltbase" = "xyes" || \
+     AC_ERROR([Stop! The package needs the HLT component framework.
+      Use  --with-hltbase option to point to the HLT component framework
+      installation])
+
+  CPPFLAGS=$save_CPPFLAGS
+  LDFLAGS=$save_LDFLAGS
+  LIBS=$save_LIBS
+
+AC_LANG_POP(C++)
+AC_SUBST([ALIROOT_CPPFLAGS])
+AC_SUBST([ALIROOT_LDFLAGS])
+AC_SUBST([ALIROOTLIBDIR])
+AC_SUBST([ALIROOT_LIBS])
+AC_SUBST([HLTBASE_CPPFLAGS])
+AC_SUBST([HLTBASE_LDFLAGS])
+
+dnl ------------------------------------------------------------------
+dnl
+dnl Documentation
+dnl
+AC_ARG_VAR(DOXYGEN, The Documentation Generator)
+AC_PATH_PROG(PERL, perl)
+AC_PATH_PROG(DOXYGEN, doxygen)
+AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x")
+HAVE_DOT=NO
+DOT_PATH=
+AC_PATH_PROG(DOT, dot)
+if ! test "x$DOT" = "x" ; then
+   HAVE_DOT=YES
+   DOT_PATH=`dirname $DOT`
+fi
+AC_SUBST([HAVE_DOT])
+AC_SUBST([DOT_PATH])
+
+dnl ------------------------------------------------------------------
+dnl inatallation directory for libraries
+dnl 
+if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then
+libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET
+AC_MSG_NOTICE([libdir set to $libdir])
+fi
+dnl ------------------------------------------------------------------
+AC_CONFIG_FILES([Makefile])
+
+
+AC_OUTPUT
+dnl
+dnl EOF
+dnl
+
+dnl AC_CONFIG_FILES([Makefile 
+dnl             doc/Makefile
+dnl             doc/doxygen.conf])
index daaad6a..ace5409 100644 (file)
@@ -226,7 +226,7 @@ void AliHLTTPCClusterFinder::ProcessDigits()
   readValue = fDigitReader->Next();
 
   // Matthias 08.11.2006 the following return would cause termination without writing the
-  // ClusterData and thus would block the component. I just wnt to have the commented line
+  // ClusterData and thus would block the component. I just want to have the commented line
   // here for information
   //if (!readValue)return;
 
index 1535302..fc18a41 100644 (file)
@@ -5,7 +5,7 @@
 #define ALIHLTTPCLOG_H
 
 #ifndef __CINT__
-#include <bits/ios_base.h>
+#include <ios>
 #endif
 
 class AliHLTTPCLog {
index a77b683..ee08e63 100644 (file)
@@ -233,6 +233,11 @@ AC_SUBST([ALIROOT_LDFLAGS])
 AC_SUBST([ALIROOTLIBDIR])
 AC_SUBST([ALIROOT_LIBS])
 
+HLTBASE_CPPFLAGS='-I${top_srcdir}/BASE'
+HLTBASE_LDFLAGS=
+AC_SUBST([HLTBASE_CPPFLAGS])
+AC_SUBST([HLTBASE_LDFLAGS])
+
 dnl ------------------------------------------------------------------
 dnl check for the HLT PubSub Framework
 AC_MSG_CHECKING([for HLT PubSub Framework])