Using External Libraries with CMT

Click on to return to start of page

In order to simplify the process of acquiring the external libraries that GLAST code needs we have archives of each of the required external libraries.   By maintaining these distributions we hope to avoid having users search through twenty different websites to find the external libraries.  It will also help to ensure that the correct versions of the external libraries are being used.

Below you will find a listing of the available external libraries and which GLAST programs they are needed for.  The libraries contain binaries for either Windows or Linux.  The distributions are available from the SLAC ftp site.  To download them, use the table to determine which external libraries you need for a given program and then follow the instructions belowThe naming convention for the external libraries is simple; just 
<library>_<version>_<operating_system>.tar.gz    (or .zip for windows). 
Note that GLAST programs expect the external libraries to be in certain specific directories; see below for how GLAST programs interface with external libraries and where you should place the external libraries.

Which External Libraries to Download

How to Download the external libraries

How CMT recognizes these libraries

Installing Root


Which External Libraries to Download 

The following table lists GLAST programs and explains which versions of which external libraries they require.  n/a means that that library is not required.  Under each external library is a link to the site that maintains the external libraries.  This information is for the benefit of developers who may need to use newer versions of the external libraries; users should not need to concern themselves with this.  

We do provide archives of external libraries bundled into a single convenient tar file.  Available on both windows and linux - see the How to Download section for more details.

GLAST Checkout Package CLHEP Xerces Root Geant4 AIDA Gaudi HTL
[version numbers] homepage homepage homepage homepage homepage   homepage
bfemApp [v1r10] 1.6.0.0 1.5.2 3.00.06 n/a n/a n/a 1.3.0.1
gismosys [v5r4p1]  1.6.0.0 n/a n/a n/a n/a n/a n/a
GlastRelease [v0] 1.8.0.0 1.5.2 3.03.09 4.1.p01 2.2.1 v11r4 1.3.1.1
GlastRelease [v1] 1.8.0.0 1.52 3.04.02 5.0 2.2.1 v11r4p0 1.3.1.2 (linux)
1.3.1.1 (win)
GlastRelease [v2] 1.8.0.0 1.7.0 3.04.02 5.0 2.2.1 v11r4p0 1.3.1.2 (linux)
1.3.1.1 (win)
Gleam [v0] 1.7.0.0 1.5.2 3.02.07 3.2 1.0 n/a 1.3.1.1
pdrApp [v7r2] 1.6.0.0 1.5.2 3.00.06 n/a n/a n/a 1.3.0.1
ROOTWriter [v5r12] 1.6.0.0 n/a 3.00.06 n/a n/a n/a n/a
tkrApp [v2] 1.7.0.0 1.5.2 n/a 3.2 1.0 n/a 1.3.1.1

The highlighted row denotes the current development version of GLAST Science Analysis Software.

If you are interested in external libraries requirements for old packages before the PDR, see this page.

 


How to Download the external libraries 

You can download each library separately, or we also provide bundled tar files containing a set of external libraries that are used with a specific version of our software.  The libraries are available via FTP from SLAC.  You can access this FTP site using one of two mechanisms:

  1. Using command-line ftp (actual commands in bold).

    ftp ftp-glast.slac.stanford.edu  

    use anonymous as your login name

  2. Use the web ftp

    ftp://ftp-glast.slac.stanford.edu/glast.u05/extlib

The extlib directory is arranged such that is contains separate directories for each type of library:  AIDA, CLHEP, ROOT, etc.  These directories contain specific zip files for windows and linux.  There is also a directory called full_dist.  The full_dist directory contains a single tar file containing all the external libraries that correspond to a specific release of GLAST software.  Rather than downloading each library separately, you may choose to download this single file by doing the following, once you ftp to the site:

cd full_dist
binary
get full_dist_GlastRelease_v0_linux.tar

 

To actually install the external libraries you simply need to unzip the file(s) you obtained via FTP into your GLAST_EXT directory.  In addition, if you wish to use ROOT as an analysis tool you need to set several environment variables, such as ROOTSYS.  (For info on how to set these variables, read the INSTALL file that comes with ROOT or visit the ROOT webpage).

After you get all the directories set up the directory structure should look something like this


How CMT recognizes the external libraries 

CMT needs to know the path to the external libraries. This is achieved in two steps:

GlastRelease

Starting with GlastRelease, we have modified our mechanism to setup external libraries using CMT.  There is a new container package called IExternal which contains all of the interface packages that define the locations of the external libraries on your local machine.  If you download the external libraries and unzip them into your GLAST_EXT directory, the paths should be setup as expected by the interface packages.  If you desire to modify the locations of some external libraries, you will have to be sure to update the path in the corresponding interface package's requirements file.

Before GlastRelease (before January, 2003)

In case that your installation does not have a common path to all external libraries, then individual paths can be defined in the requirements file of  the package EXTLIB and /or the interface packages. In this case you may have to update these packages each time you check them out. The package ROOT is often installed at a location, which is not under the control of the GLAST developer. For this reason a separate definition of the access path is already foreseen in EXTLIB. If the developer intends to use an external library with a version number different from the standard one, then the path has to be updated in the corresponding CMT interface package, for details see the CMT treatment of external libraries .


Installing Root 

It is realized that many people already possess a copy of ROOT on their computers.  Nevertheless the default behavior for GLAST code is to look for the ROOT package in the same directory as the rest of the external libraries (i.e. the GLAST_EXT directory).  Users may choose to install ROOT in the default GLAST ROOT directory, or to install ROOT in a directory of their own choosing.  Avoid using a ROOT version different from the one recommended for GLAST. You may succeed to make it work, but doing so will be your own responsibility; it is not an option that the software group will support.

Installation in the default GLAST ROOT directory

In this case, ROOT should be installed in the GLAST_EXT directory.  So, using the example above of external libraries installed in C:\extlib, CMT would expect to find the ROOT program installed at C:\extlib\ROOT\<version> (for instance <version> would be something like 2.25.03).  

The expected directory structure is somewhat different on Unix. If you had GLAST_EXT set to /afs/slac/g/glast/extlib and were using Linux, then CMT would expect to find ROOT at /afs/slac/g/glast/extlib/ROOT/v2.25.03/i386_linux22/root/. 

This structure should be kept in mind by users who need to install ROOT.  If they install ROOT as above, then they will need to do no other work, other than setting GLAST_EXT.

Installation of ROOT in a user-defined directory

In some cases this default behavior will not work.  For instance, some users may use central copies of ROOT and will not be able be install the external libraries in the same directory.  Alternately some users may not wish to have ROOT installed in the same place as the external libraries.  In these cases it is necessary for you to do some extra work to set up CMT to use ROOT.  The easiest way to do this is to edit the requirements file for the ROOTpackage.  You will want to replace the following macro definition in the ROOT requirements file:

set ROOT_PATH "${ROOT_DIR}/v2.25.03/@sys/root" \
   VisualC "${ROOT_DIR}/2.25.03" \
   VisualCStatic "${ROOT_DIR}/2.25.03" 

with something that points to where root is installed on your machine.  For instance if your root package was installed at C:\root then you would change the above to 

set ROOT_PATH "C:/root"

Note that the slash is forward, despite the fact that this is a Windows path. CMT will treat it correctly. 

Setting up ROOT to use as an analysis tool

If you use ROOT also as an analysis tool, you need to set the environment variable ROOTSYS equal to the path to the root executable and add it to your PATH environment variable.  For more information read the ROOT  INSTALL file or visit the ROOT home page .


Contact als@slac.stanford.edu in case of difficulties.

Last Modified March 12, 2003

Back to Main Menu           Previous Step (Windows) (Unix)        Next Step (Windows)  (Unix)