<HTML>
<HEAD>
<TITLE>Installation</TITLE>
+
<link rev="made" href="mailto:Federico.Carminati@cern.ch">
-<STYLE>
+<link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css">
+<STYLE type="text/css">
+
BODY {
background: #FFFFFF;
}
background: #FFFFFF;
}
+TABLE.wide {
+ cellspacing: 100%;
+ background: #FF0000
+ }
+
</STYLE>
-<link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css">
</HEAD>
-<BODY background=#FFFFFF>
+<BODY>
<TABLE>
<TR>
<TD><img src="picts/MadHatter.gif" alt="ALICE Off-line Project Logo">
-<TD><img src="picts/installation_name.gif" alt="Installation Name">
+<TD><img src="picts/installation_name.gif" alt="Installation">
<TD><img src="picts/AliceLogo.gif" alt="ALICE Logo">
</TR>
</TABLE>
-<h2>Installation</h2>
+<H2><A NAME="#Content">Content</A></H2>
+<UL>
+<LI><A HREF="#Installation">Installation</A>
+<LI><A HREF="#Code">Code development and user environment</A>
+</UL>
+
+<HR>
+
+<h2><A HREF="#Content" NAME="Installation">Installation</A></h2>
+
<ol>
<p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the
</table>
<p> <i>MM.mm-pp</i> is the number of the latest <i>M</i>ajor and
-<i>m</i>inor version and the <i>p</i>atch number. Please refer to the
-README file found in this directory for further information on file
-content. The file(s) have to be unpacked into the $ALICE directory via the
-command:
+<i>m</i>inor version and the <i>p</i>atch number. The file(s) have to be
+unpacked into the $ALICE directory via the command:
<p><pre>$ gtar xvfz Ali[...].tar.gz</pre>
CERN (1.09) does not support well binary files. Therefore some data files
will be missing with this download mechanism, and these will have to be
fetched <em>by hand</em>. The setup of the access to the remote cvs server
-is described in the <a href="management.html">Code Management</a> section. The
+is described in the Code Development section. The
code is dowloaded via the command:
<p><pre>
$ cd $ALICE
-$ cvsa co -d pro AliRoot
+$ cvsa co -r Release-3-02 -d pro AliRoot
</pre>
</ul>
<p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory
+<p><li>For users with c-like shells, update your search path:
+
+<p>
+<pre>
+$ rehash
+</pre>
+
+<p>This usually has to be done only once, after having defined the new PATH.
+
<p><li>Change to your home directory and run the code
<p>
</pre>
</ol>
+<h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2>
+
+<p>If the ALICE environment is set up correctly, the
+<var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared
+libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var>
+directory is in the PATH variable. This means that the command aliroot will
+in fact correspond to the file
+<var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>.
+
+<p>This is convenient for the normal user, but as soon as the user wants to
+modify one or more directories, this arrangement becomes inefficient
+because if a local copy of one of the shared libraries is remade, the
+linker will always find the official unmodified one that sits in the above
+directory before the local one in the load library path. Moreover, and
+unless the full path is specified, the local version of the <b>aliroot</b>
+executable will be ignored and the official version executed.
+
+<p>Therefore in order to develop one or more packages locally
+(let's say the TPC) and make modifications, the following steps should be
+performed. We suppose here that the remote cvs server has been setup correctly
+as explained in the <a href="../development.html">code development</a> section.
+
+<p><table id="wide" cellspacing=10%>
+ <tr align=center>
+ <th colspan=2>
+ <hr><br>
+ <font size=+1>Preparation of the environment</font>
+ <br><hr>
+ <tr align=left>
+ <th width=30%>$ mkdir AliRoot
+ <td width=50%>create the working directory
+ <tr align=left>
+ <th>$ cd AliRoot
+ <td>set default to it
+ <tr align=left>
+ <th>$ mkdir pro
+ <td>create pro subdirectory
+ <tr align=left>
+ <th>$ cd pro
+ <td>set default to it
+ <tr align=left>
+ <th>$ ln -s $ALICE_ROOT/* ./
+ <td>link all files here
+ <tr align=left>
+ <th>$ rm lib
+ <td>remove link for library, we need a local file here to containing the new
+ TPC library
+ <tr align=left>
+ <th>$ rm bin
+ <td>remove link for bin directory, we need it to rebuild <b>aliroot</b> executable
+ <tr align=left>
+ <th>$ rm TPC
+ <td>remove link for TPC subdirectory, we need the real files here
+ <tr align=left>
+ <th>$ rm ALIROOT
+ <td>remove link to ALIROOT subdirectory, may be this is not really necessary
+ on all systems, but we do it just to be on the safe side
+ <tr align=left>
+ <th>$ cvsa co TPC
+ <td>get from the cvs server the TPC files to be modified
+ <tr align=left>
+ <th>$ cvsa co ALIROOT
+ <td>get from the server the ALIROOT files to recreate the executable
+ <tr align=left>
+ <th>$ mkdir -p lib/tgt_$ALICE_TARGET
+ <td>create library directory
+ <tr align=left>
+ <th>$ cd lib/tgt_$ALICE_TARGET
+ <td>set default to the lib directory
+ <tr align=left>
+ <th>$ ln -s $ALICE_ROOT/lib/* ./
+ <td>link all libraries here
+ <tr align=left>
+ <th>$ rm libTPC.sl (on HP)
+ <br>$ rm libTPC.so (on the other systems)
+ <td>remove link to TPC library, we need a real one
+ <tr align=left>
+ <th>$ changeRoot $HOME/AliRoot
+ <td>change the AliRoot root to $HOME/AliRoot via the <em>changeRoot</em> command
+ <tr align=left>
+ <th>$ rehash
+ <td>make sure that the new PATH is taken into account by the shell
+ <tr align=center>
+ <th colspan=2>
+ <hr><br>
+ <font size=+1>Normal development cycle</font>
+ <br><hr>
+ <tr align=left>
+ <th>$ cd $ALICE_ROOT/TPC
+ <td>(1) set default to TPC directory
+ <tr align=left>
+ <th>$ make macroclean
+ <td>clean up all objects
+ <tr align=left>
+ <th>$ emacs AliTPCv1.cxx
+ <td>(2) edit all the files...
+ <tr align=left>
+ <th>$ make
+ <td>(3) recreate ../lib/libTPC.sl
+ <tr align=left>
+ <th>$ cd ../ALIROOT
+ <td>set default to ALIROOT directory
+ <tr align=left>
+ <th>$ make macroclean
+ <td>clean up object files
+ <tr align=left>
+ <th>$ make
+ <td>make new executable
+ <tr align=left>
+ <th>$ cd <em>directory</em>
+ <td>(4) set default elsewhere
+ <tr align=left>
+ <th>$ aliroot
+ <td>(5) run aliroot
+ <tr align=center>
+ <th colspan=2>
+ <hr>
+</table>
+
+<p>Steps 1-5 are the normal development cycle after the first pass through the
+procedure.
+
<hr>
<address>
<script language="JavaScript">