Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  1. Unzip LCGCMT_58

...

  1. into

...

  1. your

...

  1. local

...

  1. directory

...

  1. Unzip

...

  1. Gaudi

...

  1. source

...

  1. code

...

  1. into

...

  1. your

...

  1. local

...

  1. directory

...

  1. Copy

...

  1. in

...

  1. our

...

  1. version

...

  1. of

...

  1. ROOT

...

  1. v5.26.00a-gl1

...

  1. into

...

  1. the

...

  1. external/ROOT

...

  1. directory

...

  1. Copy

...

  1. in

...

  1. our

...

  1. version

...

  1. of

...

  1. Python

...

  1. 2.5.1

...

  1. into

...

  1. the

...

  1. external/Python

...

  1. directory

...

  1. Update

...

  1. external/LCGCMT_58/LCG_Configuration/cmt/requirements

...


  1. set

...

  1. ROOT_config_version

...

  1. to

...

  1. 5.26.00a-gl1

...


  1. set

...

  1. Python_config_version

...

  1. to

...

  1. 2.5.1-gl1

...

  1. Update

...

  1. external/LCGCMT/LCGCMT_58/LCG_Interfaces/ROOT/cmt/requirements

...

  1. and

...

  1. comment

...

  1. out

...


  1. ##

...

  1. apply_pattern

...

  1. use_optional

...

  1. pkg=Qt

...


  1. ##

...

  1. apply_pattern

...

  1. use_optional

...

  1. pkg=dcache_client

...


  1. ##

...

  1. apply_pattern

...

  1. use_optional

...

  1. pkg=gfal

...


  1. and

...

  1. add:

...


  1. macro

...

  1. ROOT_cppflags

...

  1. ""

...

  1. \
                        target-winxp

...

  1. "-DROOT_w32pragma

...

  1. "

...

  1. Update

...

  1. external/LCGCMT/LCGCMT_58/LCG_Settings/cmt/requirements

...


  1. Update

...

  1. LCG_home

...

  1. to

...

  1. the

...

  1. top

...

  1. level

...

  1. location

...

  1. of

...

  1. the

...

  1. Gaudi

...

  1. build

...

  1. to

...

  1. something

...

  1. like:

...


  1. macro

...

  1. LCG_home

...

  1. "$

...

  1. {myPathDir

...

  1. }/buildingGaudi_v21r7/"

...


  1. Update

...

  1. LCG_Releases

...

  1. to

...


  1. macro

...

  1. LCG_releases

...

  1. "$(LCG_home)/external"

...

  1. Update

...

  1. GaudiKernel's

...

  1. requirements

...

  1. file

...

  1. to

...

  1. remove

...

  1. use

...

  1. of

...

  1. CppUnit

...

  1. Update

...

  1. GaudiSvc's

...

  1. requirements

...

  1. file

...

  1. to

...

  1. remove

...

  1. use

...

  1. of

...

  1. CLHEP

...

  1. Set

...

  1. up

...

  1. to

...

  1. use

...

  1. CMT

...

  1. v1r20p20090520,

...

  1. for

...

  1. example:
    CMTBIN=VisualC
    CMTCONFIG=win32_vc71_dbg

...


  1. 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

...


  1. CMTROOT=C:\heather\glast\tools\CMT\v1r20p20090520

...


  1. CMTVERSION=v1r20p20090520

...

  1. Gaudi

...

  1. uses

...

  1. CMT,

...

  1. so

...

  1. building

...

  1. goes

...

  1. something

...

  1. like

...

  1. this

...


  1. We

...

  1. choose

...

  1. to

...

  1. limit

...

  1. the

...

  1. Gaudi

...

  1. packages

...

  1. we

...

  1. build

...

  1. to

...

  1. (in

...

  1. this

...

  1. order):

...

  1.   GaudiKernel,

...

  1. GaudiSvc,

...

  1. GaudiUtil,

...

  1. GaudiAlg,

...

  1. GaudiAud

...


  1. For

...

  1. each

...

  1. package,

...

  1. enter

...

  1. the

...

  1. cmt

...

  1. directory

...

  1. and

...

  1. do:

...


  1.   cmt broadcast "cmt

...

  1. config"

...


  1.   source setup.sh

...


  1.   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.