source: trunk/documents/UserDoc/UsersGuides/InstallationGuide/html/UnixMachines/unixMachines.html @ 1292

Last change on this file since 1292 was 1208, checked in by garnier, 15 years ago

CVS update

File size: 12.1 KB
Line 
1<HTML>
2<HEAD>
3<TITLE>Unix Machines</TITLE>
4</HEAD>
5
6<BODY>
7<TABLE WIDTH="100%"><TR>
8<TD>
9
10
11<A HREF="../index.html">
12<IMG BORDER="0" SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents"></A>
13<A HREF="../Introduction/introduction.html">
14<IMG BORDER="0" SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous"></A>
15<A HREF="../PCMachines/pcMachines.html">
16<IMG BORDER="0" SRC="../../../../resources/html/IconsGIF/Next.gif" ALT="Next"></A>
17</TD>
18<TD ALIGN="Right">
19<FONT SIZE="-1" COLOR="#238E23">
20<P ALIGN="Right">
21<B>Installation Guide</B><BR>
22</FONT>
23</TD>
24</TR></TABLE>
25<P>
26<BR><BR>
27
28<P ALIGN="Center">
29<FONT SIZE="+4" COLOR="#238E23">
30<A name="2">
31<B>2. Installation Procedures</B></A>
32</FONT>
33<BR><BR>
34
35<HR ALIGN="Center" SIZE="7%">
36<BR><BR>
37
38<!-- ============================================== Section --> 
39
40Before installing Geant4, the required software listed in
41<A HREF="../Introduction/introduction.html">section 1.2</A>
42(and <A HREF="../Introduction/introduction.html">1.3</A> in the case of
43graphics drivers) of this Installation Guide must already be installed on
44your system.
45
46<p>
47In this section, a short tutorial on how to install the toolkit's
48kernel libraries is given. The installation of the Geant4 kernel
49libraries and the proper configuration of the environment can be
50achieved either manually (by setting the proper environment variables)
51or through the <CODE>Configure</CODE> shell script, which will allow
52the installation of just the necessary source code and libraries in a
53specified installation area.
54<P>
55
56<A name="2.1">
57<H2>2.1 Using the <CODE>Configure</CODE> Script for installation</H2></A>
58
59A shell script is provided for building the libraries and to allow easy
60installation in a specified area.
61The <CODE>Configure</CODE> shell script is placed in the top directory tree
62of the distribution (<CODE>geant4/Configure</CODE>) and allows the user or
63system administrator to install the Geant4 toolkit in a semi-automatic way.
64Some knowledge of the system is required for the installation, such as:
65<UL>
66<LI>the compiler to be used</LI>
67<LI>the path where the Geant4 toolkit is to be installed
68    (<CODE>$G4INSTALL</CODE>)</LI>
69<LI>definition of installation directory paths (optional)</LI>
70<LI>kind of graphics/analysis system(s) installed in the system,
71    and paths to the installation of each graphics/analysis package</LI>
72<LI>the kind of library to be generated: static/shared, compound/granular.</LI>
73</UL>
74
75To run the installer script for installation of the Geant4 toolkit,
76one must type the following from the top directory <CODE>geant4</CODE>:
77<PRE>
78 > ./Configure -build
79</PRE>
80and follow the on-screen instructions. The script will ask for the
81path in the system where the Geant4 libraries should be installed later on.
82The script provides default settings for most of the environment variables
83to be set.  By pressing -RETURN-, the default values will be selected;
84otherwise the proper selection (or path, in case a path is requested) must be
85typed in.
86<P>
87In case the installation procedure fails for some reason, or you realise
88the selected options were not correct at the time the installation started,
89you can repeat the whole process by manually removing the current installation
90with:
91<PRE>
92 > cd geant4/source
93 > gmake clean
94</PRE>
95where the <CODE>$G4SYSTEM</CODE> environment variable (specifying the
96kind of architecture and compiler used) is manually set in your environment
97(according to the flavors listed in section 1.1).
98<P>
99In case new modules must be added to an existing build (for example
100a module for visualization), this can be done manually by re-running
101<CODE>Configure</CODE> and providing the new settings.
102<P>
103Once the process of building the libraries has been completed successfully,
104the Geant4 toolkit can be installed in the specified (already existing)
105installation area by typing:
106<PRE>
107 > ./Configure -install
108</PRE>
109Libraries and necessary source code will be installed in <TT>lib/geant4</TT>,
110<TT>include/geant4</TT> (if selected to install all headers in a single
111directory), <TT>src/geant4</TT>, respectively.<BR>
112<CODE>$G4INSTALL</CODE> will be set to
113<CODE>[INSTALLATION_AREA]/src/geant4</CODE>.
114
115<BR>
116<HR>
117<A name="2.1.1">
118<H2>2.1.1 Configuring the Environment to Use Geant4</H2></A>
119Once libraries have been installed, the user's environment must be correctly
120set up for the usage of the Geant4 toolkit.  The <CODE>Configure</CODE> script
121provides a way to check the existing installation and provide the correct
122configuration for the user's environment. Configuration scripts
123<TT>env[.sh.csh]</TT> can be generated, and should be sourced by the final
124users in order to configure their environment according to the performed
125installation.<BR>
126
127To generate the configuration scripts, the user should run <TT>Configure</TT>
128placed in the installation area, as follows:
129<PRE>
130 > $G4INSTALL/Configure
131</PRE>
132This will generate the shell script <CODE>env.csh</CODE> (<CODE>env.sh</CODE>
133for <TT>bash</TT> shell) to be sourced or integrated into the shell login
134script (<CODE>.tcshrc</CODE> or <CODE>.bashrc</CODE>).
135The shell script will be generated in the user's current directory
136(<CODE>$PWD</CODE>).  The user can customize it to specify for example
137her/his proper working directory through the variable <CODE>$G4WORKDIR</CODE>.
138Once the generated script is sourced, the user will be ready to start building
139a Geant4 application.<BR>
140Refer to <a href="../../../ForApplicationDeveloper/html/GettingStarted/makeFile.html">section 2.7</a> 
141of the "Geant4 User's Guide for Application Developers" for information on how
142to build an executable in Geant4.
143
144<BR>
145<HR>
146
147<A name="2.2">
148<H2>2.2 Installing Geant4 Manually</H2></A>
149
150<p>
151Before proceeding with the installation, some key environment variables must
152be defined in your user environment in order to specify where all
153software components are to be placed and to set some compilation options.
154A complete reference to all environment variables in Geant4 is available in
155<a href="../../../ForApplicationDeveloper/html/Appendix/makeFile.html">section 10.5</a> 
156 of the &quot;User's Guide - For Application Developers&quot;.
157</p>
158
159<h4>Required Environment Variables </h4>
160<DL> 
161  <dt><CODE>G4SYSTEM</CODE>: </dt>
162  <DD>set to one of the flavors listed in section 1.1 to specify the kind of
163      architecture and compiler used
164  <DT><CODE>G4INSTALL</CODE>:
165  <DD>path where the Geant4 toolkit tree is installed (ex. <CODE>$HOME/geant4</CODE>)
166  <dt><code>CLHEP_BASE_DIR</code>:
167  <dd>path to the CLHEP installation
168</DL>
169<h4>Optional Environment Variables </h4>
170<DL> 
171  <dt><CODE>G4WORKDIR</CODE>: </dt>
172  <DD>path of the user's working directory (default in <CODE>$G4INSTALL</CODE>)
173  <dt><CODE>G4LIB</CODE>: </dt>
174  <DD>path where the kernel libraries should be installed (default in <CODE>$G4INSTALL/lib</CODE>)
175  <dt><CODE>G4TMP</CODE>:</dt>
176  <dd>path where temporary files (object files, dependency files) are placed (default
177    in <CODE>$G4WORKDIR/tmp)</CODE></dd>
178  <dt><CODE>G4BIN</CODE>:</dt>
179  <DD> path where final executable files are placed (default in <CODE>$G4WORKDIR/bin)</CODE>.
180  <DT><CODE>G4INCLUDE</CODE>:
181  <DD>path where source header files may be mirrored at installation by issuing
182    <CODE>gmake includes</CODE> (default in <CODE>$G4INSTALL/include</CODE>)
183  <DT><CODE>G4DEBUG</CODE>:
184  <DD>flag specifying that libraries be built with debug symbols (requires a
185      lot of disk space). The default is optimised-mode
186  <DT><CODE>G4LIB_BUILD_SHARED</CODE>:
187  <DD>flag specifying that kernel libraries be built as shared libraries
188      (libraries will then be used by default). If not set, static archive
189      libraries are built by default
190  <DT><CODE>G4LIB_BUILD_STATIC</CODE>:
191  <DD>flag specifying that kernel libraries be built as static archive
192      libraries. Note that you may specify this flag in addition to
193      <code>G4LIB_BUILD_SHARED</code> to build shared and static libraries
194      simultaneously.
195  <DT><CODE>G4LIB_BUILD_G3TOG4</CODE>:
196  <DD>flag specifying that the library for the g3tog4 module be built. By
197      default the library will not be built.
198  <DT><CODE>G4LIB_BUILD_ZLIB</CODE>:
199  <DD>flag specifying that an additional library for file compression should
200      be built (not required on Linux/Unix systems). By default the library
201      will not be built.
202  <DT><CODE>G4_NO_VERBOSE</CODE>:
203  <DD>defining this flag prevents the compilation of verbosity code (for
204      better performance).  The default is with verbosity on.
205</DL>
206The Geant4 installation requires native STL (the Standard Template
207Library) as the base foundation class library. This also implies strict
208ISO-ANSI language compliance.
209
210In addition to the above, you might want to set the proper environment
211for visualization, such as:
212<UL>
213<LI>the kind of graphics driver(s) installed in the system
214<LI>the path to the installation of each graphics driver
215</UL>
216in case you want to build the Geant4 kernel libraries with the graphics
217drivers built-in.  See
218<a href="../../../ForApplicationDeveloper/html/Visualization/visdrivers.html">section
2198.3</a> in the User's Application Developers Guide.
220<P>
221At this point, you may choose one of two ways to compile and install the
222kernel libraries, depending on your needs and system resources.
223From <CODE>$G4INSTALL/source</CODE>:
224<OL>
225<LI><CODE>gmake</CODE><BR>
226    This will make one library for each "leaf" category (maximum library
227    granularity) and automatically produce a map of library use and
228    dependencies.
229<LI><CODE>gmake global</CODE><BR>
230    This will make global libraries, one for each major category.
231</OL>
232The main advantage of the first approach is the speed of building the
233libraries and of the application, which in some cases can be improved by
234a factor of two or three compared to the "global library" approach.<BR>
235Using the "granular library" approach a fairly large number (roughly 90) 
236of "leaf" libraries is produced.  However, the dependencies and linking
237list are evaluated and generated automatically on the fly. The top-level
238<CODE>GNUmakefile</CODE> in <CODE>$G4INSTALL/source</CODE> parses the
239dependency files of Geant4 and produces a file <CODE>libname.map</CODE> in
240<CODE>$G4LIB</CODE>.
241<CODE>libname.map</CODE> is produced by the tool <CODE>liblist</CODE>, whose
242source code is in <CODE>$G4INSTALL/config</CODE>.<BR>
243When building a binary application the script <CODE>binmake.gmk</CODE> in
244<CODE>$G4INSTALL/config</CODE> will parse the user's dependency files and use
245<CODE>libname.map</CODE> to determine through <CODE>liblist</CODE> the required
246libraries to add to the linking list. Only the required libraries will be
247loaded in the link command.<BR>
248The command <CODE>gmake libmap</CODE> issued from
249<CODE>$G4INSTALL/source</CODE>,
250allows manual rebuilding of the dependency map. The command is issued by
251default in the normal build process for granular libraries.<BR>
252It is possible to install both "granular" and "compound" libraries, by typing
253"gmake" and "gmake global" in sequence. In this case, to choose usage of
254granular libraries at link time one should set the flag G4LIB_USE_GRANULAR in
255the environment; otherwise compound libraries will be adopted by default.
256
257<BR>
258<HR>
259<A name="2.3">
260<H2>2.3 Integrating Geant4 into a Generic Framework</H2></A>
261
262As part of the Geant4 kernel libraries installation, it is also possible
263to put the entire set of header files in a single place, which is determined
264by the environment variable <CODE>G4INCLUDE</CODE> specifying the directory
265path. Therefore, it's rather straightforward to integrate Geant4 into a
266generic external framework, by simply knowing the path where header files are
267located in the system (<CODE>G4INCLUDE</CODE>) and where installed libraries
268are placed (<CODE>G4LIB</CODE>).
269<P>
270In <a href="../../../ForApplicationDeveloper/html/Appendix/makeFile.html">section 10.5</a>
271of the Appendix, you can find a list of all the environment variables, together
272with a section explaining how to integrate external libraries which may or may
273not use Geant4 kernel libraries, in the <TT>GNUmake</TT> mechanism of Geant4.
274<BR><BR>
275<HR>
276<A HREF="../../../../Authors/html/subjectsToAuthors.html">
277<I>About the authors</I></A>
278
279</BODY>
280</HTML>
Note: See TracBrowser for help on using the repository browser.