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
CLHEP/
1.6.0.0/
include/
lib/
cd CLHEP
setenv CXX g++
configure
gmake install prefix=...
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.