- adapted to AliRoot logging system, messages printed out via AliRoot
[u/mrichter/AliRoot.git] / HLT / README
index c1364a6..8cc1ac1 100644 (file)
@@ -8,8 +8,20 @@ Foundation. Also see files AUTHORS and THANKS.
 This packages is maintained by Matthias.Richter@ift.uib.no
 Comments, bug reports, suggestions welcome! 
 
-Overview
-========
+TOC
+===
+1. Overview
+2. Requirements
+3. Setting up a version retrieved from CVS
+4. Modifying a distributed package
+5. Installation
+6. Documentation
+7. Further information
+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. 
@@ -25,14 +37,15 @@ implementation and a tutorial.
 - TPCLib: The HLT code for the TPC
 - TPCLib/OnlineDisplay: HLT visualization code for the TPC
 
-Currently, the the package is not included to the standard AliRoot
-compilation, but will be part of it.
+- PHOS: The HLT code for PHOS
+
+- TRD: The HLT code for TRD
 
 The old stand-alone build system is still available. Check the README
 file in the doc folder.
 
-Requirements
-============
+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, ...). Actually, the BASE and SampleLib modules are
@@ -46,8 +59,8 @@ you want to change the Makefiles.
 If your GNU build tools are too old, ask the maintainers for a distributed
 package.  
 
-Setting up a version retrieved from CVS
-=======================================
+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.
@@ -57,8 +70,8 @@ autoreconf -i -f
 Then continue with the package configuration described in the 'Installation'
 section.
 
-Modifying a distributed package
-===============================
+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
@@ -69,8 +82,8 @@ you consider them worth to be merged into the project.
 Then continue with the package configuration described in the 'Installation'
 section.
 
-Installation
-============
+5. Installation
+===============
 NOTE: The Makefiles which are in repository are part of the old build system.
 Now, the Makefile.am templates are valid.
 
@@ -78,23 +91,57 @@ 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. 
 
+It is recommended to read the complete section before the build process.
+
+5.1 For the impatiant user
+--------------------------
+
   mkdir build
   cd build
   ../configure
   make
   make install
 
-You should redirect the output of the make into a file.
-The default install directories are set to the current directory ($PWD).
+5.2 Installation directory
+--------------------------
+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.
 
-To override the default prefix use
---prefix=<dir>           
+5.3 For the AliRoot user
+------------------------
+To install all libraries in the AliRoot lib dir:
 
-Some important options:
---enable-logging  # Enable/Disable logging (default enabled)
---enable-sample   # Compile the sample library
---enable-tpc      # Compile the TPC library
+  mkdir build
+  cd build
+  ../configure --prefix=$ALICE_ROOT
+  make
+  make install
 
+5.4 Package options
+-------------------
+Some important options (all options are on by default):
+--disable-sample           # disable compilation the sample library
+--disable-tpc              # disable compilation the TPC library
+--disable-phos             # disable compilation the PHOS library
+--disable-trd              # disable compilation the TRD library
+--disable-aliroot-logging  # disable logging
+
+5.5 External packages
+---------------------
+PubSub framework: the TPC online display needs the HOMER interface, which
+is currently part of the PubSub framework. It is planned to integrate it
+into AliRoot.
+If the TPC online display is not necessary one can skip this option.
+--with-pubsub=<dir>        # the top dir of the HLT PubSub framework
+
+5.6 Final remarks/further information 
+-------------------------------------
 Note: You can have several build directories with different configure options,
 but using the same source code. 
 
@@ -103,19 +150,19 @@ top directory:
 ./configure --help | less
 
 
-Documentation
-=============
+6. Documentation
+================
 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.
 
-Further information
-===================
+7. Further information
+======================
 A wiki with detailed information is set up at
 http://www.kip.uni-heidelberg.de/wiki/HLT
 
-Reporting bugs/Asking for support
-=================================
+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
@@ -123,3 +170,23 @@ Please include the following information into your request:
     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
+================================
+For development of HLT analysis code check out a HEAD version from the 
+repository and implement your code. 
+
+For committing do:
+1. make sure that the code changes are correct
+   cvs diff | less
+   remember to restore all temporary changes you made (e.g. log level default)
+2. cvs update
+3. correct merging conflicts
+4. compile and test your code again
+5. send the whole HLT module except the build sub-directories to
+   Matthias.Richter@ift.uib.no
+6. you will get a notification when the code is committed, right after that you
+   must either do another cvs update or check out the complete module again in
+   order to have the right CVS information