|
| 1 | +#!/bin/sh |
| 2 | +unsetopt EQUALS 2>/dev/null |
| 3 | + |
| 4 | +RECIPE_DIR="$(dirname "$0")" |
| 5 | +export SRC_DIR="$(cd `dirname ${RECIPE_DIR}`; pwd)" |
| 6 | +export RECIPE_DIR="${SRC_DIR}/$(basename "${RECIPE_DIR}")" |
| 7 | + |
| 8 | +cd ${SRC_DIR} |
| 9 | + |
| 10 | +#. "$(conda info --base)/etc/profile.d/conda.sh" |
| 11 | +eval "$(micromamba shell hook --shell=bash)" |
| 12 | +micromamba shell init --shell=bash --prefix=~/micromamba |
| 13 | +source activate ncl_build 2>/dev/null || micromamba activate ncl_build |
| 14 | + |
| 15 | +export PREFIX="${CONDA_PREFIX}" |
| 16 | +export CXXFLAGS="-fPIC $CXXFLAGS" |
| 17 | +export LDFLAGS="-L${PREFIX}/lib $LDFLAGS" |
| 18 | +export CPPFLAGS="-I${PREFIX}/include $CPPFLAGS" |
| 19 | +export CFLAGS="-I${PREFIX}/include $CFLAGS" |
| 20 | + |
| 21 | +if [ "$(uname)" = "Darwin" ]; then |
| 22 | + export CC="${CLANG}" |
| 23 | + export CPP="${CLANG} -E -traditional" |
| 24 | + export CXX="${CLANG}++" |
| 25 | + export FC |
| 26 | + |
| 27 | + if [ -d "/opt/X11" ]; then |
| 28 | + x11_lib="-L/opt/X11/lib" |
| 29 | + x11_inc="-I/opt/X11/include -I/opt/X11/include/freetype2" |
| 30 | + |
| 31 | + CAIROLIB="#define CAIROlib /opt/X11/lib/libcairo.2.dylib /opt/X11/lib/libfontconfig.1.dylib /opt/X11/lib/libpixman-1.0.dylib /opt/X11/lib/libfreetype.6.dylib -lXrender -lexpat -lpng -lz -liconv -lbz2 -lpthread" |
| 32 | + CAIROLIBUSER="#define CAIROlibuser /opt/X11/lib/libcairo.2.dylib /opt/X11/lib/libfontconfig.1.dylib /opt/X11/lib/libpixman-1.0.dylib /opt/X11/lib/libfreetype.6.dylib -lXrender -lexpat -lpng -lz -liconv -lbz2 -lpthread" |
| 33 | + else |
| 34 | + echo "No X11 libs found. Exiting..." 1>&2 |
| 35 | + exit |
| 36 | + fi |
| 37 | + |
| 38 | + LDFLAGS="-headerpad_max_install_names $LDFLAGS" |
| 39 | + conf_file=config/Darwin_Intel |
| 40 | +elif [ "$(uname)" = "Linux" ]; then |
| 41 | + export CC="$GCC" |
| 42 | + export CPP="${CPP} -traditional" |
| 43 | + export CXX="$GXX" |
| 44 | + export FC |
| 45 | + |
| 46 | + conf_file=config/LINUX |
| 47 | +fi |
| 48 | + |
| 49 | +export EXTRA_LDFLAGS="$LDFLAGS" |
| 50 | + |
| 51 | +export grib2_dir=${SRC_DIR}/external/g2clib-1.6.0 |
| 52 | +export EXTRA_INCLUDES=-I${grib2_dir} |
| 53 | + |
| 54 | +# fix malformed sed subsitutions |
| 55 | +sed -e 's/+/|/g' -i.backup ni/src/scripts/yMakefile |
| 56 | +sed -e 's/+/|/g' -i.backup ni/src/ncl/yMakefile |
| 57 | + |
| 58 | + |
| 59 | +# fix path to cpp in ymake -- we should fix this in NCL |
| 60 | +sed -e "s|^\( set cpp = \)/lib/cpp$|\1'$CPP'|g" -i.backup config/ymake |
| 61 | + |
| 62 | + |
| 63 | +# generate Site.local |
| 64 | +sed -e "s|\${PREFIX}|${PREFIX}|g" -e "s|\${x11_inc}|${x11_inc}|g" -e "s|\${x11_lib}|${x11_lib}|g" -e "s|\${CAIROLIB}|${CAIROLIB}|g" -e "s|\${CAIROLIBUSER}|${CAIROLIBUSER}|g" -e "s|\${grib2_dir}|${grib2_dir}|g" -e "s|\${CC}|${CC}|g" -e "s|\${FC}|${FC}|g" -e "s|\${CPP}|${CPP}|g" -e "s|\${CXX}|${CXX}|g" -e "s|\${LD}|${LD}|g" "${RECIPE_DIR}/Site.local.template" > config/Site.local |
| 65 | + |
| 66 | +patch -N -p1 < ${RECIPE_DIR}/grib2.patch >/dev/null 2>&1 |
| 67 | + |
| 68 | +echo -e "n\n" | ./Configure |
| 69 | +make Everything |
| 70 | + |
| 71 | +ACTIVATE_DIR="$PREFIX/etc/conda/activate.d" |
| 72 | +DEACTIVATE_DIR="$PREFIX/etc/conda/deactivate.d" |
| 73 | + |
| 74 | +mkdir -p "$ACTIVATE_DIR" |
| 75 | +mkdir -p "$DEACTIVATE_DIR" |
| 76 | + |
| 77 | +cp "$RECIPE_DIR/scripts/activate.sh" "$ACTIVATE_DIR/ncl-activate.sh" |
| 78 | +cp "$RECIPE_DIR/scripts/deactivate.sh" "$DEACTIVATE_DIR/ncl-deactivate.sh" |
| 79 | + |
| 80 | +conda list |
0 commit comments