2.7.1. Building OpenFAST with Spack
The process to build and install OpenFAST with Spack on Linux or macOS is described here.
2.7.1.1. Dependencies
OpenFAST has the following dependencies:
LAPACK libraries. Users should set
BLAS_LIBRARIES
andLAPACK_LIBRARIES
appropriately for CMake if the library isn’t found in standard paths. Use BLASLIB as an example when using Intel MKL.For the optional C++ API, HDF5 (provided by
HDF5_ROOT
) and yaml-cpp (provided byYAML_ROOT
)For the optional testing framework, Python 3+ and Numpy
2.7.1.2. Building OpenFAST Semi-Automatically Using Spack on macOS or Linux
The following describes how to build OpenFAST and its dependencies mostly automatically on macOS using Spack. This can also be used as a template to build OpenFAST on any Linux system with Spack.
These instructions were developed on macOS 10.11 with the following tools installed via Homebrew:
GCC 6.3.0
CMake 3.6.1
pkg-config 0.29.2
2.7.1.2.1. Step 1
Checkout the official Spack repo from github (we will checkout into
${HOME}
):
cd ${HOME} && git clone https://github.com/LLNL/spack.git
2.7.1.2.2. Step 2
Add Spack shell support to your .profile
by adding the lines:
export SPACK_ROOT=${HOME}/spack
. $SPACK_ROOT/share/spack/setup-env.sh
2.7.1.2.3. Step 3
Copy the https://raw.githubusercontent.com/OpenFAST/openfast/dev/share/spack/package.py file to your installation of Spack:
mkdir ${SPACK_ROOT}/var/spack/repos/builtin/packages/openfast
cd ${SPACK_ROOT}/var/spack/repos/builtin/packages/openfast
wget --no-check-certificate https://raw.githubusercontent.com/OpenFAST/openfast/dev/share/spack/package.py
2.7.1.2.4. Step 4
Try spack info openfast
to see if Spack works. If it does, check the
compilers you have available by:
machine:~ user$ spack compilers
==> Available compilers
-- gcc ----------------------------------------------------------
gcc@6.3.0 gcc@4.2.1
-- clang --------------------------------------------------------
clang@8.0.0-apple clang@7.3.0-apple
2.7.1.2.5. Step 5
Install OpenFAST with your chosen version of GCC:
spack install openfast %gcc@6.3.0
To install OpenFAST with the C++ API, do:
spack install openfast+cxx %gcc@6.3.0
That should be it! Spack will automatically use the most up-to-date dependencies unless otherwise specified. For example to constrain OpenFAST to use some specific versions of dependencies you could issue the Spack install command:
spack install openfast %gcc@6.3.0 ^hdf5@1.8.16
The executables and libraries will be located at
spack location -i openfast
Add the appropriate paths to your PATH
and LD_LIBRARY_PATH
to run
OpenFAST.