Wiki Markup |
---|
h1. Building Gaudi v21r4 |
...
Requirements
...
*Requirements* * CMT v1r20p20090520 available on SLAC Linux on /afs/slac/g/glast/users/heather/gaudi_v21r4/CMT and through the download section of the [CMT web site |
...
Building Gaudi v18r1
...
|http://www.cmtsite.org/]. * Source Code modified for GLAST to limit the externals required by Gaudi * LCGCMT_56c zip file of externals and interface CMT packages for Gaudi * An updated version of ROOT v5.22.00e-gl1, the binaries are available in GLAST_EXT at SLAC and the source is in compiled against gccxml 0.9 redhat4-i686-32bit-gcc34 * Copy in our version of ROOT v5.22.00e-gl1 in the external/ROOT directory * Update external/LCGCMT_56c/LCG_Configuration/cmt/requirements and set ROOT_config_version to 5.22.00e-gl1 * Update external/LCGCMT/LCGCMT_56c/LCG_Interfaces/ROOT/cmt/requirements and comment out \## apply_pattern use_optional pkg=Qt \## apply_pattern use_optional pkg=dcache_client \## apply_pattern use_optional pkg=gfal and add: macro ROOT_cppflags "" \ target-winxp "-DROOT_w32pragma " * Update external/LCGCMT/LCGCMT_56c/LCG_Settings/cmt/requirements * Update LCG_home to the top level location of the Gaudi build macro LCG_home "${myPathDir}/buildingGaudi_v21r4/" h1. Building Gaudi v18r1 The official Gaudi Home Page: [http://proj-gaudi.web.cern.ch/proj-gaudi/ |
...
] Our outdated GLAST Gaudi home page: [http://www-glast.slac.stanford.edu/software/gaudi/ |
...
] A good point of contact if having trouble: |
...
Pere Mato (Pere.Mato@cern.ch). h2. |
...
Obtaining the source |
...
The Gaudi home Page sees modification from time to time, especially on the timescale of |
...
our upgrades \- so this information is as of June,2006. |
...
Access the Releases page off the Gaudi home page: [http://proj-gaudi.web.cern.ch/proj-gaudi/releases/ |
...
] Click on the Doxygen link for the version you are interested in. |
...
The Doxygen page for a particular release will provide a Download for the Gaudi source. |
...
h2. Obtaining the external libraries that Gaudi uses |
...
Accessing the Gaudi external libraries is separate from downloading Gaudi itself. |
...
Again, the Gaudi Home Page does see reorganization from time to time, this information is current as of June,2006. |
...
Access the Releases page off the Gaudi Home Page: |
...
[http://proj-gaudi.web.cern.ch/proj-gaudi/releases/ |
...
] Click on the Doxygen link for the version you are interested in. |
...
The Doxygen page will include a link called "Related External Libraries" |
...
For example for Gaudi v18r1: [http://proj-gaudi.web.cern.ch/proj-gaudi/releases/v18r1/doxygen/externaldocs.html]Note the version of LCGCMT, in this case LCGCMT_40a. |
...
Also note that the list of external libraries is not complete exhaustive\! |
...
This page lists the highlights, but some of these externals depend on other external libraries that must be obtained. |
...
This page is helpful in that it provides the version of all Gaudi external, however, I have found that it does not necessarily provide useful links for obtaining the binaries for all platforms. |
...
I found the following link much more helpful in that all the binaries are available in one location: |
...
[http://service-spi.web.cern.ch/service-spi/external/distribution/ |
...
] This page does indeed include ALL externals you might require. |
...
For example, for Gaudi v18r1 we require: |
...
AIDA 3.2.1 |
...
BOOST 1.32 |
...
CLHEP 1.9.2.2 |
...
CppUnit 1.10.2 |
...
expat 1.95.8 |
...
gccxml_0.6.0.patch3 |
...
GSL 1.5 |
...
pcre 4.4 |
...
POOL 2.2.7 |
...
Python 2.4.2 |
...
SEAL 1.7.9 |
...
uuid 1.38 |
...
xerces 2.3.0 |
...
Yes, a long list, this will allow you to get started - after compiling Gaudi and determining which Gaudi packages we actually need and require, one can trim down the list of external libraries. |
...
Currently, GLAST Offline uses the following Gaudi packages: |
...
GaudiAud, GaudiAlg, GaudiKernel, GaudiPI, GaudiSvc. |
...
We are interestd in using GaudiPython as well. |
...
On the windows side - many libraries are only provided in debug mode. |
...
The Gaudi team does not have the time or resources to provide non-debug optimized versions - they use |
...
In addition to downloading the libraries, also download the appropriate version of LCGCMT_*, this package acts as their IExternal package and is necessary to compile Gaudi.
Compilation
Unpack all the source and binaries you have downloaded.
...
Windows as a development environment and not for production. *In addition to downloading the libraries, also download the appropriate version of LCGCMT_\**, *this package acts as their IExternal package and is necessary to compile Gaudi.* h2. Compilation Unpack all the source and binaries you have downloaded. Once LCGCMT has been unpacked you may have a directory tree that looks like: LGCCMT/LCG_CMT40a/LCG_Interfaces - contains packages that behave like our IExtermal package where the subpackages determine how to find the external libraries |
...
LCGCMT/LCG_CMT40a/LCG_Settings - requirements file sets up global environment to find externals - in particular it defines the tags for the various operating systems and compilers |
...
LCGCMT/LCG_CMT40a/LCG_Policy - like our GlastPolicy |
...
There are some environment variables that should be set before compiling Gaudi: |
...
CMTBIN |
...
CMTROOT |
...
CMTVERSION |
...
CMTPATH |
...
CMTCONFIG SITEROOT In addition some of the requirements in LCGCMT should be modified: Update LCG_Settings/cmt/requirements: |
...
set LCG_home=C:\heather |
...
set LCG_releases - determines path to find POOL and SEAL |
...
set LCG_external - determines path to find other externals like AIDA... |
...
haven't experimented with makeing LCG_external == LCG_releases |
...
Update LCG_Interfaces/CLHEP/cmt/requirements |
...
CLHEP_version - version number of CLHEP for Gaudi v18r1 it is 1.9.2.2 |
...
CLHEP_home |
...
\- points to our CLHEP external example: $(GLAST_EXT)/CLHEP/$(CLHEP_native_version) |
...
Also add python.exe to the PATH if it isn't already. |
...
Gaudi uses CMT, so building goes something like this - (Windows version in parentheses): |
...
From within the Gaudi cmt |
...
directory cmt broadcast "cmt config" |
...
source setup.sh (setup.bat) |
...
make (nmake /f nmake) |
...
h3. Linux |
...
Might check if there is a .cmtrc file in your $HOME directory to be sure it doesn't override your CMTPATH
Windows Notes
Some examples env var settings:
...
Notes Might check if there is a .cmtrc file in your $HOME directory to be sure it doesn't override your CMTPATH h3. Windows Notes Some examples env var settings: set CMTBIN = VisualC set CMTROOT=C:\heather\glast\tools\CMT\v1r16p20040901 |
...
set CMTVERSION=v1r16p20040901 |
...
set CMTPATH=C:\heather\gaudi\GAUDI\GAUDI_v18r1;C:\heather\gaudi\LCGCMT;C:\heather\gaudi\LCGCMT\LCGCMT_40a;C:\heather\glast\tools |
...
set CMTCONFIG=win32_vc71_dbg |
...
set SITEROOT=C:\heather |
...
h2. Reorganization of includes and libraries |
...
When Gaudi is done compiling, you will find the libraries distributed under each of its packages: |
...
GaudiAlg, GaudiAud, GaudiKernel, GaudPI, GaudiSvc,... |
...
the libraries and includes may be reorganized under one common gaudi directory for distribution with the GLAST Offline software. |