This repository will facilitate building widely used packages from source, instead of using existing package managers e.g. HomeBrew for OSX, apt-get for Linux, etc.
The following software can be built with the scripts under ush
and instructions that follow:
- GCC
- Jasper
- Zlib
- SZip
- OpenMPI
- MPICH
- HDF5
- NetCDF
- Parallel NetCDF
- NCCMP
- CGAL
- Udunits
- NetCDF Climate Operators
- Boost (Full library or Headers only)
- Eigen
- LAPACK
- FFTW
- ecCodes
- ESMF
- ESMA-Baselibs
The following extra software required for JEDI project can also be built:
- ECBuild
- ECkit
- FCkit
- ATLAS
lmod
- Lua Modules for software stack managementwget
,curl
,git
- for fetching packages- Other -
cmake
,autoconf
- for building packages
The individual packages will be fetched from their respective sources, but can be downloaded, untarred and placed underpkg
if desired. Most build scripts will look for directory pkg/pkgName-pkgVersion
e.g. pkg/hdf5-1_10_3
.
Configuration for the installation is controlled via config/config.sh
Follow the details in each section.
Set the compiler and mpi families to build the stack.
export FAMILY_COMPILER="gnu"
If using system gcc
, a modulefile will be deployed, but may need an update to provide correct version number e.g. gfortran-7
instead of gfortran
.
Specify the installation path for packages.
export PREFIX="$HOME/opt"
If $PREFIX
is anything other than /opt
, the user will have to define an environment variable export OPT=$PREFIX
in order for the modulefiles to correctly define the installation path of the packages.
Installation is performed in 2 steps:
- First if neccessary execute
build_base.sh
. This builds or sets up the compiler and mpi family. Only GNU compilers can be built with this script. For CLang or Intel, follow the providers instructions. It can also use thenative-module
; which implies to use an existing module for that compiler/mpi family. If a modulefile does not exist, thesetup-module
option can be used to set up the modulefile. It may need manual intervention. - Next,
build_stack.sh
will build the generic packages and its associated modulefiles. - Finally, if desired,
build_jedi.sh
can be used to build JEDI specific packages (and its modulefiles), e.g. ECkit etc.
Check the installation; will execute ctest or make check
export CHECK="YES" | "NO" # Enable | Disable checking
A modulefile will be created from a template and deployed to $OPT/modulefiles
following Lmod
Software Module hierarchy.