Building GLAST External Libraries on Solaris using gcc

 

CLHEP

To build CLHEP (versions 1.5.0.0 and 1.6.0.0) on sun I do the following

  1. make a directory structure as follows

    CLHEP/

        1.6.0.0/

            include/

            lib/

  2. download and unpack the clhep library into include/.  
  3. do

        cd CLHEP

        setenv CXX g++

        configure

        gmake install prefix=...

  4. then copy the created lib file to the lib directory and make a symbol link to it

    mv libCLHEP-g++.a ../../ lib/.

    cd ../../lib/.

    ln -s libCLHEP-g++.a libCLHEP.a


Xerces-c

Just follow the instructions on the xerces-c website.


ROOT 2.25.03

The following are the steps I needed to take to get ROOT v2.25.03 to compile on solaris (5.6) using ecgs (1.1.2)

1) Install Mesa (3.2) from the mesa website . This is some sort of OPENGL emulator.  You'll need to build the package (just follow the instructions). Set an environment variable to point to the install, ie

setenv OPENGL ~/Mesa-3.2

2) Install the xpm binaries from the xpm website.  I have them at ~/xpm-3.4k-solaris/

3) download and unpack the source files for ROOT 2.25.03.  Set ROOTSYS to point to them.   Run configure as follows

    configure solarisegcs --with-xpm=~/xpm-3.4k-solaris/ --with-opengl-incdir=${OPENGL}/include --with-opengl-libdir=${OPENGL}/lib

 

then do

    gmake

    gmake install

ROOT 3.00.06

The following are the steps I needed to take to get ROOT v3.00.06 to compile on solaris (5.7) using ecgs (1.1.2) are the same as above except the configure line is as follows

    configure solarisegcs --with-xpm=~/xpm-3.4k-solaris/ --with-opengl-incdir=${OPENGL}/include --with-opengl-libdir=${OPENGL}/lib --default-rfio

 


HTL

The following steps worked for building HTL (1.3.0.1) on Solaris (5.6) using ecgs (1.1.2):

1) Download and unpack the archive file from CERN. A directory HTL, containing the package, will be created as a subdirectory in the directory in which you unpack the archive.

2) cd to unpack/HTL (where unpack is the directory in which you unpacked HTL) and set the following environment variables (csh style notation):

setenv LHCXX_REL_DIR $PWD

setenv LHCXXTOP $PWD

setenv PLATF Linux

setenv HTL_VERSION 1.3.0.1      (or whatever version you're using)

setenv OS Linux

 setenv OSTYPE Linux    

It is highly recommended that after building HTL you set OS and OSTYPE back to the appropriate value (e.g. SunOS) as this could lead to problems with other programs that depend on having the correct operating system environment variable(s) set (and hopefully the HTL maintainers will eventually include a gcc on Solaris option via the makefiles so that this step can be avoided). Note: setting LHCXXTOP and PLATF seems to be optional, gmake grumbles but does the right thing even if they're not set, but since it says to set them in the documentation...

3) cd to the unpack/HTL/1.3.0.1/HTL/etc directory (where the /etc directory lives may vary with HTL version but it should be somewhere under unpack/HTL) and add the line:

C_FLAGS += -U __sun

to the file Linux.mk (a convenient place is under another C_FLAGS line). Note the double underscore before sun.

4) cd to unpack/HTL and run

gmake transient

Note: we only need the transient library and in fact can't use the HTL persistent library without having Objectivity installed.