Using rmkdepend from ROOT and not makedepend
[u/mrichter/AliRoot.git] / html / installation.html
CommitLineData
14c31136 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2 "http://www.w3.org/TR/REC-html40/loose.dtd">
3<HTML>
4<HEAD>
5<TITLE>Installation</TITLE>
4c505702 6<!-- Changed by: , 1-Nov-1999 -->
14c31136 7<link rev="made" href="mailto:Federico.Carminati@cern.ch">
8<STYLE>
9BODY {
10 background: #FFFFFF;
11 }
12
13COL, COLGROUP, TABLE, TBODY, TD, TR {
14 color: black;
15 text-decoration: none;
16 border-color: black;
17 border-style: none;
18 background: #FFFFFF;
19 }
20
21</STYLE>
22<link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css">
23</HEAD>
24
25<BODY background=#FFFFFF>
26<TABLE>
27<TR>
28<TD><img src="picts/MadHatter.gif" alt="ALICE Off-line Project Logo">
87ad6e14 29<TD><img src="picts/installation_name.gif" alt="Installation">
14c31136 30<TD><img src="picts/AliceLogo.gif" alt="ALICE Logo">
31</TR>
32</TABLE>
33
4c505702 34<H2><A NAME="#Content">Content</A></H2>
35<UL>
36<LI><A HREF="#Installation">Installation</A>
37<LI><A HREF="#Code">Code development and user environment</A>
38</UL>
39
40<HR>
41
42<h2><A HREF="#Content" NAME="Installation">Installation</A></h2>
43
14c31136 44
45<ol>
46<p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the
47necessary variables correctly.
48
49<p><li> Decide where the code will reside (from here on <i>directory</i>).
50
51<p><li>Define the following global variables in the login script
52
53<p><table align=centre borders=no>
54<tr><th align=left>variable</th><th align=left>value</th></tr>
55<tr><td width=30%>ALICE </td><td> <i>directory</i>
56<tr><td>ALICE_LEVEL </td><td> pro </td></tr>
57<tr><td>ALICE_ROOT </td><td> $ALICE/$ALICE_LEVEL </td></tr>
58<tr><td>ALICE_TARGET </td><td> `uname`
59(i.e. result of the Unix <b>uname</b> command)</td></tr>
60<tr><td colspan=2><i><center>on all systems but HP-UX</center></i></td></tr>
61<tr><td>LD_LIBRARY_PATH</td>
62<td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$LD_LIBRARY_PATH</td></tr>
63<tr><td colspan=2><i><center>on HP-UX</center></i></td></tr>
64<tr><td>SHLIB_PATH</td>
65<td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$SHLIB_PATH</td></tr>
66<tr><td>PATH</td>
67<td> $PATH\:$ALICE_ROOT/bin/tgt_${ALICE_TARGET} </td></tr>
68</table>
69
70<p>At this point you should logout, login again and check that the symbols
71are set correctly.
72
73<p><li> Retrieve the AliRoot code. There are two ways to do this:
74
75<ul>
76<p><li> <em>From a tar file</em>. This is the preferred way for those who
77do not have an internet connection to the <em>cvs</em> server from the
78machine where the code has to be installed. The <a
79href="ftp://pcepaip01.cern.ch/pub">files</a> containing the latest release
80should be brought on the target machine. Three files are offered:
81
82<p><table align=center borders=no>
83<tr><th align=left>File<th align=left>Content</tr>
84<tr><td align=center colspan=2><em>Either</em></tr>
85<tr><td>AliOffline<i>MM.mm-pp</i>.tar.gz
86<td>Code and the data files of ALICE Off-line</tr>
87<tr><td align=center colspan=2><em>Or</em></tr>
88<tr><td>AliLibs<i>MM.mm-pp</i>.tar.gz
89<td>Code and the data files of the auxiliary libraries</tr>
90<tr><td>AliRoot<i>MM.mm-pp</i>.tar.gz
91<td>All the code and the data files of the AliRoot system</tr>
92</table>
93
94<p> <i>MM.mm-pp</i> is the number of the latest <i>M</i>ajor and
20b19209 95<i>m</i>inor version and the <i>p</i>atch number. The file(s) have to be
96unpacked into the $ALICE directory via the command:
14c31136 97
98<p><pre>$ gtar xvfz Ali[...].tar.gz</pre>
99
100
101<p><li> <em>From cvs remote cvs server</em>. This method has the advantage
102that new patches can be incrementally retrieved and installed via internet.
103At the moment the problem is that the version of cvs currently installed at
104CERN (1.09) does not support well binary files. Therefore some data files
105will be missing with this download mechanism, and these will have to be
106fetched <em>by hand</em>. The setup of the access to the remote cvs server
1f3e54b9 107is described in the Code Development section. The
14c31136 108code is dowloaded via the command:
109
110<p><pre>
111$ cd $ALICE
112$ cvsa co -d pro AliRoot
113</pre>
114
115</ul>
116
117<p><li>install the CERN library part
118
119<p><pre>
120$ cd $ALICE_ROOT
121$ gmake cernlibs
122</pre>
123
124<p><li>Install the ALICE specific software
125
126<p><pre>
127$ cd $ALICE_ROOT
128$ gmake
129</pre>
130
131<p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory
132
133<p><li>Change to your home directory and run the code
134
135<p>
136<pre>
137$ cd
138$ aliroot
139
140<output from aliroot>
141
142root [1] .x menu.C
143</pre>
144</ol>
145
4c505702 146<h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2>
87ad6e14 147
148<p>If the ALICE environment is set up correctly, the
149<var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared
150libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var>
151directory is in the PATH variable. This means that the command aliroot will
152in fact correspond to the file
153<var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>.
154
155<p>This is convenient for the normal user, but as soon as the user wants to
156modify one or more directories, this arrangement becomes inefficient
157because if a local copy of one of the shared libraries is remade, the
158linker will always find the official unmodified one that sits in the above
159directory before the local one in the load library path. Moreover, and
160unless the full path is specified, the local version of the <b>aliroot</b>
161executable will be ignored and the official version executed.
162
163<p>Therefore in order to develop one or more packages locally
164(let's say the TPC) and make modifications, the following steps should be
165performed. We suppose here that the remote cvs server has been setup correctly
4c505702 166as explained in the <a href="../development.html">code development</a> section.
87ad6e14 167
168<p><table>
169 <tr align=left>
170 <th width=30%>$ mkdir AliRoot
171 <td width=50%>create the working directory
172 <tr align=left>
173 <th>$ cd AliRoot
174 <td>set default to it
175 <tr align=left>
176 <th>$ mkdir pro
177 <td>create pro subdirectory
178 <tr align=left>
179 <th>$ cd pro
180 <td>set default to it
181 <tr align=left>
182 <th>$ ln -s $ALICE_ROOT/* ./
183 <td>link all files here
184 <tr align=left>
185 <th>$ rm lib
186 <td>remove link for library, we need a local file here to containing the new
187 TPC library
188 <tr align=left>
189 <th>$ rm bin
190 <td>remove link for bin directory, we need it to rebuild <b>aliroot</b> executable
191 <tr align=left>
192 <th>$ rm TPC
193 <td>remove link for TPC subdirectory, we need the real files here
194 <tr align=left>
195 <th>$ rm ALIROOT
196 <td>remove link to ALIROOT subdirectory, may be this is not really necessary
197 on all systems, but we do it just to be on the safe side
198 <tr align=left>
199 <th>$ cvsa co TPC
200 <td>get from the cvs server the TPC files to be modified
201 <tr align=left>
202 <th>$ cvsa co ALIROOT
203 <td>get from the server the ALIROOT files to recreate the executable
204 <tr align=left>
205 <th>$ mkdir -p lib/tgt_$ALICE_TARGET
206 <td>create library directory
207 <tr align=left>
208 <th>$ cd lib/tgt_$ALICE_TARGET
209 <td>set default to the lib directory
210 <tr align=left>
211 <th>$ ln -s $ALICE_ROOT/lib/* ./
212 <td>link all libraries here
213 <tr align=left>
214 <th>$ rm libTPC.sl
215 <td>remove link to TPC library, we need a real one
216 <tr align=left>
217 <th>$ changeRoot $HOME/AliRoot
218 <td>change the AliRoot root to $HOME/AliRoot
219 <tr align=left>
220 <th>$ rehash
221 <td>make sure that the new PATH is taken into account by the shell
222 <tr align=left>
223 <th>$ cd $ALICE_ROOT/TPC
224 <td>(1) set default to TPC directory
225 <tr align=left>
226 <th>$ make macroclean
227 <td>clean up all objects
228 <tr align=left>
229 <th>$ emacs AliTPCv1.cxx
230 <td>(2) edit all the files...
231 <tr align=left>
232 <th>$ make
233 <td>(3) recreate ../lib/libTPC.sl
234 <tr align=left>
235 <th>$ cd ../ALIROOT
236 <td>set default to ALIROOT directory
237 <tr align=left>
238 <th>$ make macroclean
239 <td>clean up object files
240 <tr align=left>
241 <th>$ make
242 <td>make new executable
243 <tr align=left>
244 <th>$ cd <em>directory</em>
245 <td>(4) set default elsewhere
246 <tr align=left>
247 <th>$ aliroot
248 <td>(5) run aliroot
249</table>
250
251<p>Steps 1-5 are the normal development cycle after the first pass through the
252procedure.
253
14c31136 254<hr>
255<address>
256 <script language="JavaScript">
257 document.write("Last modified "+ document.lastModified)
258 // end of script -->
259 </script>
260by <a href="mailto:Federico.Carminati@cern.ch">Federico Carminati</a>
261</address>
262</BODY>
263</HTML>