Skip to content

Files and scripts needed to build all of the support packages for GENIE (assuming a complete *nix installation).

Notifications You must be signed in to change notification settings

thecuriousneutrino/GENIESupport

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

READ ME FIRST!

It is a good idea to use a tagged version of GENIESupport. The latest recommended tag is R-2_12_8.0. Use the following command to check it out (and read below for more if you're really interested). After cloning the repository, cd into the GENIESupport directory and run:

git checkout -b R-2_12_8.0-br R-2_12_8.0

Run ./build_support.sh -h to get a help menu. If you run into trouble, please consult the "Trouble-Shooting" section below. If you find a bug, please feel free to contact Gabe Perdue (perdue at Fermilab) or open an issue on GitHub.

Basic Usage

This script will install the required third party packages to build GENIE from source. It has been thoroughly tested on Scientific Linux 5 and 6. It should also work on Ubuntu and CentOS, but read the trouble-shooting section carefully. If you run into trouble (especially on Ubuntu 15), see Wayfarer.

Running the script with no arguments will produce the help menu:

Usage: ./build_support.sh -<flag>
                   -h / --help     : print the help menu
                   -p / --pythia # : Pythia 6 or 8 and link ROOT to it (required).
                   -r / --root tag : Which ROOT version (default = v5-34-24).
                   -n / --nice     : Run configure, build, etc. under nice.
                   -c / --force    : Archive current build and start fresh.
                   -s / --https    : Use https for GitHub checkout (default is ssh)
                   -v / --verbose  : Print logging data to stdout during installation
                   -d / --debug    : Build with debugging symbols (in Pythia8 and ROOT)
                   --no-roomu      : build without RooMUHistos
 
  Examples:  
    ./build_support.sh                   # do nothing; print the help menu
    ./build_support.sh -h                # do nothing; print the help menu
    ./build_support.sh --help            # do nothing; print the help menu
    ./build_support.sh -p 6              # build Pythia 6, gmake, ssh checkout, ROOT v5-34-24
    ./build_support.sh -p 6 -v           # same with verbose logging
    ./build_support.sh -p 6 -v -n        # same building under "nice"
    ./build_support.sh --pythia 6
    ./build_support.sh -p 8 -r v5-34-18

Tags and versioning

When first checking out this package, you will have the HEAD version of the master branch. Get a specific tagged release by checking out the tag into a branch like so:

git checkout -b R-2_12_8.0-br R-2_12_8.0

This will checkout tag R-2_12_8.0 into branch R-2_12_8.0-br. You want to checkout into a branch so you are not in a "detached HEAD" state.

Trouble-Shooting

This is a bash script, so some errors will likely occur under different shells. If you get errors, make sure /bin/bash exists and is not a link to a different executable.

If there is a strong desire for a c-shell or some other version of this script, we welcome a translation!

If you are having trouble installing some items (especially log4cpp) it is possible you are missing the autoconf tools. In that case, you can install them with a package manager:

  • sudo apt-get install autoconf (Ubuntu)
  • yum install autoconf (RedHat/SLF)
  • Download source from GNU and build.
  • etc.

For Ubuntu, you also probably need libtool:

  • sudo apt-get install libtool

If you are using gcc 5, you may have trouble building ROOT5. Some versions will not compile unless you edit the configuration files by hand. (The ROOT team is not supporting ROOT5 for gcc 5 and they request users to move to ROOT6, but we have not completed that transition yet.) We have had luck with ROOT v5-34-30 using gcc 5.2.

Finally, the default checkout method for packages living in GitHub is ssh (because it was easier for me to configure at Fermilab). If you run into "permission denied" errors, try using the https checkout flag, -s and see if that works.

Contributors

About

Files and scripts needed to build all of the support packages for GENIE (assuming a complete *nix installation).

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%