...
Building
...
Gaudi
...
v21r7
...
Requirements
- CMT v1r20p20090520 available on SLAC Linux on /afs/slac/g/glast/users/heather/gaudi_v21r4/CMT
...
- and
...
- through
...
- the
...
- download
...
- section
...
- of
...
- the
...
...
...
...
- .
- Source Code modified for GLAST to limit the externals required by Gaudi
- LCGCMT_58 zip file of externals and interface CMT packages for Gaudi
- An updated version of ROOT v5.26.00a-gl1,
...
- the
...
- binaries
...
- are
...
- available
...
- in
...
- GLAST_EXT
...
- at
...
- SLAC
...
- and
...
- the
...
- source
...
- is
...
- in
...
- compiled
...
- against
...
- gccxml
...
- 0.9
...
Windows
- Unzip LCGCMT_58
...
- into
...
- your
...
- local
...
- directory
...
- Unzip
...
- Gaudi
...
- source
...
- code
...
- into
...
- your
...
- local
...
- directory
...
- Copy
...
- in
...
- our
...
- version
...
- of
...
- ROOT
...
- v5.26.00a-gl1
...
- into
...
- the
...
- external/ROOT
...
- directory
...
- Copy
...
- in
...
- our
...
- version
...
- of
...
- Python
...
- 2.5.1
...
- into
...
- the
...
- external/Python
...
- directory
...
- Update
...
- external/LCGCMT_58/LCG_Configuration/cmt/requirements
...
set
...
- ROOT_config_version
...
- to
...
- 5.26.00a-gl1
...
set
...
- Python_config_version
...
- to
...
- 2.5.1-gl1
...
- Update
...
- external/LCGCMT/LCGCMT_58/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_58/LCG_Settings/cmt/requirements
...
Update
...
- LCG_home
...
- to
...
- the
...
- top
...
- level
...
- location
...
- of
...
- the
...
- Gaudi
...
- build
...
- to
...
- something
...
- like:
...
macro
...
- LCG_home
...
- "$
...
- {myPathDir
...
- }/buildingGaudi_v21r7/"
...
Update
...
- LCG_Releases
...
- to
...
macro
...
- LCG_releases
...
- "$(LCG_home)/external"
...
- Update
...
- GaudiKernel's
...
- requirements
...
- file
...
- to
...
- remove
...
- use
...
- of
...
- CppUnit
...
- Update
...
- GaudiSvc's
...
- requirements
...
- file
...
- to
...
- remove
...
- use
...
- of
...
- CLHEP
...
- Set
...
- up
...
- to
...
- use
...
- CMT
...
- v1r20p20090520,
...
- for
...
- example:
CMTBIN=VisualC
CMTCONFIG=win32_vc71_dbg
...
CMTPATH=C:\heather\gaudi_v21r7\GAUDI\GAUDI_v21r7;C:\heather\gaudi_v21r7\external;C:\heather\gaudi_v21r4\external\LCGCMT\LCGCMT_56c;C:\heather\glast\tools
...
CMTROOT=C:\heather\glast\tools\CMT\v1r20p20090520
...
CMTVERSION=v1r20p20090520
...
- Gaudi
...
- uses
...
- CMT,
...
- so
...
- building
...
- goes
...
- something
...
- like
...
- this
...
We
...
- choose
...
- to
...
- limit
...
- the
...
- Gaudi
...
- packages
...
- we
...
- build
...
- to
...
- (in
...
- this
...
- order):
...
- GaudiKernel,
...
- GaudiSvc,
...
- GaudiUtil,
...
- GaudiAlg,
...
- GaudiAud
...
For
...
- each
...
- package,
...
- enter
...
- the
...
- cmt
...
- directory
...
- and
...
- do:
...
cmt broadcast "cmt
...
- config"
...
source setup.sh
...
make
Building Gaudi v21r4
Requirements
- CMT v1r20p20090520 available on SLAC Linux on /afs/slac/g/glast/users/heather/gaudi_v21r4/CMT
...
- and
...
- through
...
- the
...
- download
...
- section
...
- of
...
- the
...
...
...
...
- .
- 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
...
- Copy
...
- in
...
- our
...
- version
...
- of
...
- python
...
- 2.5.1-gl1
...
- into
...
- the
...
- external/python
...
- directory
...
- Update
...
- external/LCGCMT_56c/LCG_Configuration/cmt/requirements
...
- and
...
set
...
- ROOT_config_version
...
- to
...
- 5.22.00e-gl1
...
set
...
- Python_config_version
...
- to
...
- 2.5.1-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
...
- to
...
- something
...
- like:
...
macro
...
- LCG_home
...
- "$
...
- {myPathDir
...
- }/buildingGaudi_v21r4/"
...
Update
...
- LCG_Releases
...
- to
...
macro
...
- LCG_releases
...
- "$(LCG_home)/external"
...
- Set
...
- up
...
- to
...
- use
...
- CMT
...
- v1r20p20090520,
...
- for
...
- example:
...
setenv
...
- CMTBASE
...
- /afs/slac/g/glast/users/heather/gaudi_v21r4/CMT
...
setenv
...
- CMTVERSION
...
- v1r20p20090520
...
source
...
- $CMTBASE/$CMTVERSION/mgr/setup.csh
...
setenv
...
- CMTCONFIG
...
- slc4_ia32_gcc34
...
setenv
...
- CMTPATH
...
- /nfs/slac/g/glast/users/glground/heather/buildingGaudi_v21r4/GAUDI/GAUDI_v21r4:/nfs/slac/g/glast/users/glground/heather/buildingGaudi_v21r4/external:/nfs/slac/g/glast/users/glground/heather/buildingGaudi_v21r4/external/LCGCMT/LCGCMT_56c:/afs/slac/g/glast/users/heather/gaudi_v21r4
...
- Gaudi
...
- uses
...
- CMT,
...
- so
...
- building
...
- goes
...
- something
...
- like
...
- this
...
We
...
- choose
...
- to
...
- limit
...
- the
...
- Gaudi
...
- packages
...
- we
...
- build
...
- to
...
- (in
...
- this
...
- order):
...
- GaudiKernel,
...
- GaudiSvc,
...
- GaudiUtil,
...
- GaudiAlg,
...
- GaudiAud
...
For
...
- each
...
- package,
...
- enter
...
- the
...
- cmt
...
- directory
...
- and
...
- do:
...
cmt broadcast "cmt
...
- config"
...
source setup.sh
...
make
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).
...
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.
...
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
...
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.
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)
...
Linux
...
Notes
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:
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
...
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.