What configme install yelmo does
This page is for context only. The recommended way to install Yelmo is to run configme install yelmo (see the Quick start); you do not need to run any of the commands below by hand. They are reproduced here so you can see exactly what configme clones, configures, links, and builds on your behalf.
configme install performs the following phases:
- Clone the Yelmo checkout together with the
fesm-utilsrepository it needs. - Manifest — write
.configme/manifest.tomlso the checkout is self-describing regardless of its directory name. - Configure — generate a system-specific
Makefilefor each package from shared machine/compiler fragments, with the netCDF paths detected automatically. - Build
fesm-utils(LIS + FFTW + utils). This is the slow step (~10-30 min), which is why it is folded into the install rather than run separately.
Each run also writes the exact commands it executed to a .install.sh script in the checkout, so any install is reproducible. The script below is the equivalent for the dkrz_levante machine with the ifx compiler; substitute your own machine and compiler, and note that the netCDF paths (NC_FROOT / NC_CROOT) and the install root are filled in automatically for your system.
#!/usr/bin/env bash
# Generated by `configme install` — reproduces this install.
set -euo pipefail
# target=yelmo machine=dkrz_levante compiler=ifx
# --- clone ---
git clone git@github.com:fesmc/yelmo.git $YELMOROOT
git clone git@github.com:fesmc/fesm-utils.git $YELMOROOT/fesm-utils
# fesm-utils/utils: component of fesm-utils (not cloned)
# --- manifest ---
mkdir -p $YELMOROOT/.configme # write .configme/manifest.toml
# --- configure (per package) ---
# fesm-utils: build with autotools (slow, ~10-30 min):
(cd $YELMOROOT/fesm-utils && NC_FROOT=<auto-detected> NC_CROOT=<auto-detected> ./build.py --variant both -m dkrz_levante -c ifx)
(cd $YELMOROOT/fesm-utils/utils && configme config fesm-utils/utils -m dkrz_levante -c ifx)
# fesm-utils/utils: build (serial, omp):
(cd $YELMOROOT/fesm-utils/utils && make openmp=0 fesmutils-static)
(cd $YELMOROOT/fesm-utils/utils && make openmp=1 fesmutils-static)
(cd $YELMOROOT/yelmo && configme config yelmo -m dkrz_levante -c ifx)