# Installation¶

HARP uses an autotools-based build system. If you are installing from a distribution tarball, then you do not need to actually have autotools installed. If you are installing from a git checkout, then you need to have recent versions of automake, autoconf, and libtool installed.

## Dependencies¶

The first step to installing HARP is to make sure that you have all of the dependencies installed. You should probably use a package manager to install these dependencies (see below). The minimal required dependencies for the serial toolkit are CFITSIO, LAPACK, and a full installation of BOOST:

Note that many High Performance Computing (HPC) systems have vendor-tuned BLAS/LAPACK libraries, which should be used if possible. If you would like to build the Python language interface, then you additionally must have installed python and numpy:

If you would like to use the parallel toolkit, then obviously you need an MPI implementation (e.g. MPICH or OpenMPI) that has been built with or is compatible with the serial compilers you are using. You must also install Elemental:

The table below shows these dependencies and what optional features are enabled by each. Dependencies detected at configure time.

LAPACK / BOOST / CFITSIO Python / Numpy MPI / boost::mpi Elemental mpi4py
Serial Tools
Python Bindings
MPI Tools
MPI Python Bindings

## Installing Dependencies on Ubuntu¶

On Ubuntu 14.04, you can get all dependencies except for Elemental by doing:

$> sudo apt-get install build-essential libopenblas-dev liblapack-dev libboost-all-dev python-numpy python-mpi4py libcfitsio3-dev Then download and install Elemental. For default options, you can just specify the install prefix and remember to do an out-of-source build. In this example we downloaded and extracted the 0.84 tarball and made a build directory in the same place as that extracted directory:$> mkdir build
$> cd build$> cmake -D CMAKE_INSTALL_PREFIX=/home/<blah>/software ../Elemental-0.84-p1
$> make$> make install

## Installing Dependencies on OS X¶

The easiest way by far to get things like boost installed on OS X is to install macports:

Then use macports to install all dependencies except Elemental:

$> sudo port install cfitsio py27-numpy boost +python27 +openmpi py27-mpi4py -mpich +openmpi Then download and install Elemental. For default options, you can just specify the install prefix and remember to do an out-of-source build. In this example we downloaded and extracted the 0.84 tarball and made a build directory in the same place as that extracted directory:$> mkdir build
$> cd build$> cmake -D CMAKE_INSTALL_PREFIX=/Users/<blah>/software ../Elemental-0.84-p1
$> make$> make install

## Configuring HARP¶

Before configuring HARP, you should determine:

1. where you want to install HARP.
2. which compilers you are using.
3. whether any dependencies are installed in a non-standard place (and where that place is).