Versions Compared

Key

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

...

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

...

  • 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/"

...

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.