| 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 |
|
|---|
| 40 | Before 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
|
|---|
| 43 | graphics drivers) of this Installation Guide must already be installed on
|
|---|
| 44 | your system.
|
|---|
| 45 |
|
|---|
| 46 | <p>
|
|---|
| 47 | In this section, a short tutorial on how to install the toolkit's
|
|---|
| 48 | kernel libraries is given. The installation of the Geant4 kernel
|
|---|
| 49 | libraries and the proper configuration of the environment can be
|
|---|
| 50 | achieved either manually (by setting the proper environment variables)
|
|---|
| 51 | or through the <CODE>Configure</CODE> shell script, which will allow
|
|---|
| 52 | the installation of just the necessary source code and libraries in a
|
|---|
| 53 | specified 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 |
|
|---|
| 59 | A shell script is provided for building the libraries and to allow easy
|
|---|
| 60 | installation in a specified area.
|
|---|
| 61 | The <CODE>Configure</CODE> shell script is placed in the top directory tree
|
|---|
| 62 | of the distribution (<CODE>geant4/Configure</CODE>) and allows the user or
|
|---|
| 63 | system administrator to install the Geant4 toolkit in a semi-automatic way.
|
|---|
| 64 | Some 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 |
|
|---|
| 75 | To run the installer script for installation of the Geant4 toolkit,
|
|---|
| 76 | one must type the following from the top directory <CODE>geant4</CODE>:
|
|---|
| 77 | <PRE>
|
|---|
| 78 | > ./Configure -build
|
|---|
| 79 | </PRE>
|
|---|
| 80 | and follow the on-screen instructions. The script will ask for the
|
|---|
| 81 | path in the system where the Geant4 libraries should be installed later on.
|
|---|
| 82 | The script provides default settings for most of the environment variables
|
|---|
| 83 | to be set. By pressing -RETURN-, the default values will be selected;
|
|---|
| 84 | otherwise the proper selection (or path, in case a path is requested) must be
|
|---|
| 85 | typed in.
|
|---|
| 86 | <P>
|
|---|
| 87 | In case the installation procedure fails for some reason, or you realise
|
|---|
| 88 | the selected options were not correct at the time the installation started,
|
|---|
| 89 | you can repeat the whole process by manually removing the current installation
|
|---|
| 90 | with:
|
|---|
| 91 | <PRE>
|
|---|
| 92 | > cd geant4/source
|
|---|
| 93 | > gmake clean
|
|---|
| 94 | </PRE>
|
|---|
| 95 | where the <CODE>$G4SYSTEM</CODE> environment variable (specifying the
|
|---|
| 96 | kind of architecture and compiler used) is manually set in your environment
|
|---|
| 97 | (according to the flavors listed in section 1.1).
|
|---|
| 98 | <P>
|
|---|
| 99 | In case new modules must be added to an existing build (for example
|
|---|
| 100 | a module for visualization), this can be done manually by re-running
|
|---|
| 101 | <CODE>Configure</CODE> and providing the new settings.
|
|---|
| 102 | <P>
|
|---|
| 103 | Once the process of building the libraries has been completed successfully,
|
|---|
| 104 | the Geant4 toolkit can be installed in the specified (already existing)
|
|---|
| 105 | installation area by typing:
|
|---|
| 106 | <PRE>
|
|---|
| 107 | > ./Configure -install
|
|---|
| 108 | </PRE>
|
|---|
| 109 | Libraries 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
|
|---|
| 111 | directory), <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>
|
|---|
| 119 | Once libraries have been installed, the user's environment must be correctly
|
|---|
| 120 | set up for the usage of the Geant4 toolkit. The <CODE>Configure</CODE> script
|
|---|
| 121 | provides a way to check the existing installation and provide the correct
|
|---|
| 122 | configuration for the user's environment. Configuration scripts
|
|---|
| 123 | <TT>env[.sh.csh]</TT> can be generated, and should be sourced by the final
|
|---|
| 124 | users in order to configure their environment according to the performed
|
|---|
| 125 | installation.<BR>
|
|---|
| 126 |
|
|---|
| 127 | To generate the configuration scripts, the user should run <TT>Configure</TT>
|
|---|
| 128 | placed in the installation area, as follows:
|
|---|
| 129 | <PRE>
|
|---|
| 130 | > $G4INSTALL/Configure
|
|---|
| 131 | </PRE>
|
|---|
| 132 | This will generate the shell script <CODE>env.csh</CODE> (<CODE>env.sh</CODE>
|
|---|
| 133 | for <TT>bash</TT> shell) to be sourced or integrated into the shell login
|
|---|
| 134 | script (<CODE>.tcshrc</CODE> or <CODE>.bashrc</CODE>).
|
|---|
| 135 | The shell script will be generated in the user's current directory
|
|---|
| 136 | (<CODE>$PWD</CODE>). The user can customize it to specify for example
|
|---|
| 137 | her/his proper working directory through the variable <CODE>$G4WORKDIR</CODE>.
|
|---|
| 138 | Once the generated script is sourced, the user will be ready to start building
|
|---|
| 139 | a Geant4 application.<BR>
|
|---|
| 140 | Refer to <a href="../../../ForApplicationDeveloper/html/GettingStarted/makeFile.html">section 2.7</a>
|
|---|
| 141 | of the "Geant4 User's Guide for Application Developers" for information on how
|
|---|
| 142 | to 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>
|
|---|
| 151 | Before proceeding with the installation, some key environment variables must
|
|---|
| 152 | be defined in your user environment in order to specify where all
|
|---|
| 153 | software components are to be placed and to set some compilation options.
|
|---|
| 154 | A 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 "User's Guide - For Application Developers".
|
|---|
| 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>
|
|---|
| 206 | The Geant4 installation requires native STL (the Standard Template
|
|---|
| 207 | Library) as the base foundation class library. This also implies strict
|
|---|
| 208 | ISO-ANSI language compliance.
|
|---|
| 209 |
|
|---|
| 210 | In addition to the above, you might want to set the proper environment
|
|---|
| 211 | for 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>
|
|---|
| 216 | in case you want to build the Geant4 kernel libraries with the graphics
|
|---|
| 217 | drivers built-in. See
|
|---|
| 218 | <a href="../../../ForApplicationDeveloper/html/Visualization/visdrivers.html">section
|
|---|
| 219 | 8.3</a> in the User's Application Developers Guide.
|
|---|
| 220 | <P>
|
|---|
| 221 | At this point, you may choose one of two ways to compile and install the
|
|---|
| 222 | kernel libraries, depending on your needs and system resources.
|
|---|
| 223 | From <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>
|
|---|
| 232 | The main advantage of the first approach is the speed of building the
|
|---|
| 233 | libraries and of the application, which in some cases can be improved by
|
|---|
| 234 | a factor of two or three compared to the "global library" approach.<BR>
|
|---|
| 235 | Using the "granular library" approach a fairly large number (roughly 90)
|
|---|
| 236 | of "leaf" libraries is produced. However, the dependencies and linking
|
|---|
| 237 | list are evaluated and generated automatically on the fly. The top-level
|
|---|
| 238 | <CODE>GNUmakefile</CODE> in <CODE>$G4INSTALL/source</CODE> parses the
|
|---|
| 239 | dependency 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
|
|---|
| 242 | source code is in <CODE>$G4INSTALL/config</CODE>.<BR>
|
|---|
| 243 | When 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
|
|---|
| 246 | libraries to add to the linking list. Only the required libraries will be
|
|---|
| 247 | loaded in the link command.<BR>
|
|---|
| 248 | The command <CODE>gmake libmap</CODE> issued from
|
|---|
| 249 | <CODE>$G4INSTALL/source</CODE>,
|
|---|
| 250 | allows manual rebuilding of the dependency map. The command is issued by
|
|---|
| 251 | default in the normal build process for granular libraries.<BR>
|
|---|
| 252 | It 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
|
|---|
| 254 | granular libraries at link time one should set the flag G4LIB_USE_GRANULAR in
|
|---|
| 255 | the 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 |
|
|---|
| 262 | As part of the Geant4 kernel libraries installation, it is also possible
|
|---|
| 263 | to put the entire set of header files in a single place, which is determined
|
|---|
| 264 | by the environment variable <CODE>G4INCLUDE</CODE> specifying the directory
|
|---|
| 265 | path. Therefore, it's rather straightforward to integrate Geant4 into a
|
|---|
| 266 | generic external framework, by simply knowing the path where header files are
|
|---|
| 267 | located in the system (<CODE>G4INCLUDE</CODE>) and where installed libraries
|
|---|
| 268 | are placed (<CODE>G4LIB</CODE>).
|
|---|
| 269 | <P>
|
|---|
| 270 | In <a href="../../../ForApplicationDeveloper/html/Appendix/makeFile.html">section 10.5</a>
|
|---|
| 271 | of the Appendix, you can find a list of all the environment variables, together
|
|---|
| 272 | with a section explaining how to integrate external libraries which may or may
|
|---|
| 273 | not 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>
|
|---|