Building extra packages for the neutrino experiments

(Build packages required by art) (Build a distributable ups) (Building art externals)
(Building extra packages for the neutrino experiments) (Building extra packages for Mu2e)
(Building CET packages and art)

Building extra packages for the neutrino experiments

These instructions should be considered obsolete. Please see the download page for the nu distribution.

In addition to the art externals products, the neutrino experiments also use the following products.
Note that this list changes over time and may not be exhautive.

Product Qualifier Extra Qualifier Notes
cry eN
cstxsd gccXX
geant4 eN debug, opt, or prof
genie eN debug, opt, or prof
lhapdf eN debug, opt, or prof
log4cpp eN debug, opt, or prof
mysql_client eN
postgresql gccXX
pythia gccXX debug, opt, or prof
xerces_c eN debug, opt, or prof
root nu:eN debug, opt, or prof the nu build of root requires a number of packages

<product-dir> is the fully qualified path to your external packages directory.

  • The build order is very important. Several products rely on the existence of other products.
  • We start by building those products which have no depencencies except the existence of packages already in art_externals.
  • We recommend that you look at the various log files after they are created.

1. Make sure you have art_externals installed in your <product-dir>

Build a distributable ups
Building art externals

Make sure you downloaded all the source code.

2. Setup the environment

source <product-dir>/setup

3. build types

There are 3 available build types: opt, debug, and prof.
If you are unsure which to use, start by building for debug. However, most experiments are using the prof distributions.
We have found very little difference in performance between opt and prof,
and therefore recommend building prof (for profile) for increased performance.

You MUST specify the "basequal" and either debug, opt, or prof
We will refer to this as <extra_qual> in the directions below.
There are exceptions for certain individual package builds, such as cry, mysql_client, pdfsets, and postgresql.

4. Build all the packages

Build everything except cstxsd

cd <product_dir>/art_externals/<version>
./ <product_dir> <basequal> <extra_qual>
for instance: ./ <product_dir> e4 prof

Build cstxsd

  • cstxsd is built with boost -q gccXX:prof and xerces_c -q gccXX:prof
  • This package uses boost and xerces_c, but cannot be built with the c++11 extensions
  • Once built, cstxsd contains only an executable and headers. There is no library.
  • If you are going to build cstxsd yourself, you first need to build boost and xerces_c with these qualifiers.
    cd <product_dir>/boost/<version>
    ./ <product_dir> <gccXX> prof >& &
    cd $PRODUCTS/xerces_c/<version>
    ./ <product_dir> <gccXX> prof >& &
    cd $PRODUCTS/cstxsd/<version>
    ./ <product_dir>  <gccXX> & log.buildCstxsd &

5. Distributing nu_extras

Verify that ups recognizes all the products

  • List all the products in <product-dir>
ups list -aK+

Build the distributable ups tar file.

  • Some definitions used to name the tarball:
  • version: usually written as, for instance, 0.5.0 instead of v0_5_0
  • os: slf5, slf6, etc.
  • architecture: noarch, i686, or x86_64
  • compiler: gcc47, e2, etc.
  • e2 is gcc 4.7.x with c++11 extensions enabled
  • For general distribution, we allow people to define their own <product-dir>, so we build the tarball from inside <product-dir>
  • We tar the noarch and architecture specific packages separately.
  • Note that <product-dir> will also contain other products. These instructions are just for the extra nu packages.
cd <product_dir>/art_externals/<version>
./ <product_dir> <basequal> <extra_qual> [noarch]
  • This will create <product_dir>/nu_extras-<version>-noarch.tar.gz or <product_dir>/nu_extras-<version>-<os>-<architecture>-<basequal>.<extra_qual>.tar.gz

10. Getting a prebuilt tarball

  • You can copy and unwind your own tarball wherever you need it.
  • Tarballs for supported distributions of nu_extras are at
  • To conserve disk space, we strongly recommend deleting your local copy of the tarball after you unwind it.