A simple script to download and build the ANITA libraries.
doxygen generated documentation is available online here https://anitaneutrino.github.io/anitaBuildTool
In your terminal do
git clone https://github.com/anitaNeutrino/anitaBuildTool
to create an anitaBuildTool subdirectory containing the scripts and git repository. Alternatively, you can clone over ssh with
git clone email@example.com:anitaNeutrino/anitaBuildTool
Building for the first time
In theory all one needs to do is make sure the ANITA_UTIL_INSTALL_DIR enviromental vairable is set and then type:
The build script is not very sophisticated it will attempt to:
1) Checkout the libraries from GitHub 2) Make a build directory and run cmake in that directory to generate Makefiles 3) Build the libraries (make) 4) Install the libraries in to ANITA_UTIL_INSTALL_DIR (make install)
This will build and install everything with the defaults. However, there are some optional arguments
./buildAnita.sh [njobs = 1] [configure = 0] [build aware = 0] [nuke build dir = 1] [convolve tuff responses = 1]
|Argument||Default||What it does|
|njobs||1||The number of threads you wish to compile with. njobs > 1 will result in faster compilation, however, warnings and errors may appear out of order.|
|configure||0||Edit compiler flags and other options before building.|
|build aware||0||Whether or not to download and build AWARE in addition to the default packages.|
|nuke build dir||1||Whether or not the build directory will be deleted and completely re-compiled.|
|convolve tuff responses||1||Whether or not you want to convolve together the TUFF models with the A3 and A4 impulse responses|
The main prerequisites are: ROOT https://root.cern.ch with Minuit2, MathMore, and Fortran. See https://root.cern.ch/build-prerequisites to make sure you have the prerequisites required for those features. FFTW http://www.fftw.org cmake https://cmake.org these should be available using your favourite package manager for your system.
Building for the Nth time
After buildAnita.sh is run once, more things are possible. anitaBuildTool includes a high level Makefile, which allows for separately compiling/updating/installing the software, rather than doing all of the above. The Makefile commands are documented, to see what is available do
in the anitaBuildTool directory.
Edit the top line of the clone method file (from https to ssh) to clone over ssh rather than https. This requires uploading your public ssh-key to GitHub.
If you want to update all the components, you can run:
./updateComponents.sh [Nuke build directory?] [update aware?] [update treeMaker?]
If you put a zero for [Nuke build directory?] it will possibly allow you to quicky rebuild only things that have been changed. It might not work though if there are significant modifications.
Known working systems
Mac OS X
Mac Os X 10.11.5 ROOT -- 6.06/04 cmake -- 3.5.2 The ROOT, cmake and FFTW libraries were installed using homebrew.sh for details on how to install these see https://alexpearce.me/2016/02/root-on-os-x-el-capitan/
macOS Sierra 10.12
ROOT -- 6.06/08 cmake -- 3.6.2 clang -- 800.0.38 (xcode 8.0)
Scientific Linux 6
Scientific Linux release 6.7 (Carbon) gcc version 4.4.7 20120313 ROOT -- 5.34/20 cmake version 18.104.22.168
Fedora 24 ( 64-bit)
gcc 6.1.1 20160621 (Red Hat 6.1.1-3) ROOT 6.06/06 cmake 3.5.2 fftw-3.3.4-7 all installed via dnf from normal repositories
Centos 7 (64-bit)
gcc 4.8.5 20150623 (Red Hat 4.8.5-4) ROOT 6.06/04 cmake 2.8.11 all installed via yum from normal + epel repositories
Ubuntu 16.04 (64-bit)
gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu2) ROOT 6.06/08 (installed explicitly with minuit2) cmake 3.5.1