- integration of libHLTbase into AliRoot prepared
[u/mrichter/AliRoot.git] / HLT / README
1 Package: ALICE HLT
2
3 This package implements the ALICE High Level Trigger analysis framework.
4 All contributions are under the terms of the 
5 GNU General Public License as published by the Free Software 
6 Foundation. Also see files AUTHORS and THANKS.
7
8 This packages is maintained by Matthias.Richter@ift.uib.no
9 Comments, bug reports, suggestions welcome! 
10
11 TOC
12 ===
13 1. Overview
14 2. Requirements
15 3. Setting up a version retrieved from CVS
16 4. Modifying a distributed package
17 5. Installation
18 6. Documentation
19 7. Further information
20 8. Reporting bugs/Asking for support
21 9. Committing to the AliRoot CVS
22
23 1. Overview
24 ===========
25 This package provides a compilation of shared libraries of the ALICE
26 HLT project and is intended for stand-alone compilation, i.e. not as part 
27 of the AliRoot compilation. 
28
29 - BASE: The base library (libHLTbase.so) provides the common interface for HLT 
30 processing components, the binding into the ALICE offline project AliRoot
31 and a pure C interface to the HLT on-line framework (Publisher/Subscriber
32 framework)
33
34 - SampleLib: The sample library contains examples for component 
35 implementation and a tutorial.
36
37 - TPCLib: The HLT code for the TPC
38 - TPCLib/OnlineDisplay: HLT visualization code for the TPC
39
40 Currently, the the package is not included to the standard AliRoot
41 compilation, but will be part of it.
42
43 The old stand-alone build system is still available. Check the README
44 file in the doc folder.
45
46 2. Requirements
47 ===============
48 The package needs both ROOT and AliRoot. Both must be set up in the
49 usual way (ROOTSYS, ALICE_ROOT, library locations evtl. specified in
50 LD_LIBRARY_PATH, ...). Actually, the BASE and SampleLib modules are
51 not dependend on AliRoot. The TPCLib does.
52
53 To set up a version retrieved from CVS, autoconf 2.57, automake 1.6
54 ,and libtool 1.4 or higher versions are required. Thats the versions
55 which come with the Scientific Linux CERN 3. The same applies if
56 you want to change the Makefiles.
57
58 If your GNU build tools are too old, ask the maintainers for a distributed
59 package.  
60
61 3. Setting up a version retrieved from CVS
62 ==========================================
63 Skip this section if you have started from the tar ball.
64
65 A version checked out from CVS requires a few steps to set up the Makefiles.
66 Go to the directory and run
67 autoreconf -i -f
68
69 Then continue with the package configuration described in the 'Installation'
70 section.
71
72 4. Modifying a distributed package
73 ==================================
74 If you are going the modify a distributed package you might need to re-make 
75 the GNU build system by running
76  autoreconf -f -i
77
78 Please notify the authors about bug fixes/corrections/extensions you made if
79 you consider them worth to be merged into the project.
80
81 Then continue with the package configuration described in the 'Installation'
82 section.
83
84 5. Installation
85 ===============
86 NOTE: The Makefiles which are in repository are part of the old build system.
87 Now, the Makefile.am templates are valid.
88
89 Package build relies on the GNU triplet configure, make and make install.
90 In order to keep the development directory clean, it is recommended to
91 use a separate build directory. 
92
93   mkdir build
94   cd build
95   ../configure
96   make
97   make install
98
99 You should redirect the output of the make into a file.
100 The default install directory is set to the current directory ($PWD). To
101 override the default directory use the option --prefix=<dir>. More information
102 can be obtained from the configure script by running it with option --help.
103 All binary libraries will be installed under <prefix>/lib. 
104 If the directory is equal to $ALICE_ROOT, the libraries will be installed under 
105 <prefix>/lib/tgt_<arch> as used for AliRoot. This is a custom extension in
106 order to adapt to the specific AliRoot installation directories.
107
108 Some important options:
109 --enable-logging  # Enable/Disable logging (default enabled)
110 --enable-sample   # Compile the sample library
111 --enable-tpc      # Compile the TPC library
112 --enable-phos      # Compile the PHOS library
113
114 Note: You can have several build directories with different configure options,
115 but using the same source code. 
116
117 If you need further information on the GNU build system, execute from the 
118 top directory:
119 ./configure --help | less
120
121
122 6. Documentation
123 ================
124 Documentation is generated from the source code at compile time if 
125 doxygen is installed on the machine. From the build directory, open
126 doc/html/index.html with a web browser.
127
128 7. Further information
129 ======================
130 A wiki with detailed information is set up at
131 http://www.kip.uni-heidelberg.de/wiki/HLT
132
133 8. Reporting bugs/Asking for support
134 ====================================
135 Please include the following information into your request:
136 - config.log from your build directory
137 - output of the make process. Note: Redirect BOTH the stdout and stderr
138   channel to a log file. Redirection depends on the shell you are using:
139     bash: make 2>&1 | tee make.log 
140     csh: make |& tee make.log
141   The 'tee' command just duplicates the output.
142 - history of the commands you are using for compilation
143   history > history.log
144
145 9. Committing to the AliRoot CVS
146 ================================
147 For development of HLT analysis code check out a HEAD version from the 
148 repository and implement your code. 
149
150 For committing do:
151 1. make sure that the code changes are correct
152    cvs diff | less
153    remember to restore all temporary changes you made (e.g. log level default)
154 2. cvs update
155 3. correct merging conflicts
156 4. compile and test your code again
157 5. send the whole HLT module except the build sub-directories to
158    Matthias.Richter@ift.uib.no
159 6. you will get a notification when the code is committed, right after that you
160    must either do another cvs update or check out the complete module again in
161    order to have the right CVS information