From ddbb4c5c246d52fa792f566bf73a953446b0a452 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 18 Aug 2023 08:05:28 -0400 Subject: [PATCH] Improved the robustness of the dependency builder. New version of Zlib dropped today, breaking the script. Now all dependencies are pulled from tagged releases on github.com. HDF5 required some adjustments due to how the main folder from github version is named. --- buildscripts/build_dependencies.sh | 27 +++++++++++++++++++++------ buildscripts/build_hdf5.sh | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/buildscripts/build_dependencies.sh b/buildscripts/build_dependencies.sh index 9775f6502..fed957585 100755 --- a/buildscripts/build_dependencies.sh +++ b/buildscripts/build_dependencies.sh @@ -17,8 +17,8 @@ set -a ARGS=$@ . ${SCRIPT_DIR}/_build_getopts.sh ${ARGS} -ZLIB_VER="1.2.13" -HDF5_VER="1.14.1-2" +ZLIB_VER="1.3" +HDF5_VER="1_14_2" NC_VER="4.9.2" NF_VER="4.6.1" @@ -33,15 +33,28 @@ if [ -d ${DEPENDENCY_DIR}/zlib-${ZLIB_VER} ]; then make distclean cd ${DEPENDENCY_DIR} else - wget -qO- https://www.zlib.net/zlib-${ZLIB_VER}.tar.gz | tar xvz + [ -d ${DEPENDENCY_DIR}/zlib-* ] && rm -rf ${DEPENDENCY_DIR}/zlib-* + wget -qO- https://github.com/madler/zlib/releases/download/v${ZLIB_VER}/zlib-${ZLIB_VER}.tar.gz | tar xvz fi -if [ -d ${DEPENDENCY_DIR}/hdf5-${HDF5_VER} ]; then - cd ${DEPENDENCY_DIR}/hdf5-${HDF5_VER} +printf "Checking if HDF5 source exists\n" +if [[ (-d ${DEPENDENCY_DIR}/hdfsrc) && (-f ${DEPENDENCY_DIR}/hdfsrc/README.md) ]]; then + OLDVER=$(grep version ${DEPENDENCY_DIR}/hdfsrc/README.md | awk '{print $3}' | sed 's/\./_/g') + printf "Existing copy of HDF5 source detected\n" + printf "Existing version : ${OLDVER}\n" + printf "Requested version: ${HDF5_VER}\n" + if [ "$OLDVER" != "${HDF5_VER}" ]; then + printf "Existing version of HDF5 source doesn't match requested. Deleting\n" + rm -rf ${DEPENDENCY_DIR}/hdfsrc + fi +fi + +if [ -d ${DEPENDENCY_DIR}/hdfsrc ]; then + cd ${DEPENDENCY_DIR}/hdfsrc make distclean cd ${DEPENDENCY_DIR} else - wget -qO- https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-${HDF5_VER}.tar.gz | tar xvz + wget -qO- https://github.com/HDFGroup/hdf5/releases/download/hdf5-${HDF5_VER}/hdf5-${HDF5_VER}.tar.gz | tar xvz fi if [ -d ${DEPENDENCY_DIR}/netcdf-c-${NC_VER} ]; then @@ -49,6 +62,7 @@ if [ -d ${DEPENDENCY_DIR}/netcdf-c-${NC_VER} ]; then make distclean cd ${DEPENDENCY_DIR} else + [ -d ${DEPENDENCY_DIR}/netcdf-c-* ] && rm -rf ${DEPENDENCY_DIR}/netcdf-c-* wget -qO- https://github.com/Unidata/netcdf-c/archive/refs/tags/v${NC_VER}.tar.gz | tar xvz fi @@ -57,6 +71,7 @@ if [ -d ${DEPENDENCY_DIR}/netcdf-fortran-${NF_VER} ]; then make distclean cd ${DEPENDENCY_DIR} else + [ -d ${DEPENDENCY_DIR}/netcdf-fortran-* ] && rm -rf ${DEPENDENCY_DIR}/netcdf-fortran-* wget -qO- https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v${NF_VER}.tar.gz | tar xvz fi cd $ROOT_DIR diff --git a/buildscripts/build_hdf5.sh b/buildscripts/build_hdf5.sh index b022fd838..1b24504be 100755 --- a/buildscripts/build_hdf5.sh +++ b/buildscripts/build_hdf5.sh @@ -27,7 +27,7 @@ printf "LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}\n" printf "LDFLAGS: ${LDFLAGS}\n" printf "*********************************************************\n" -cd ${DEPENDENCY_DIR}/hdf5-* +cd ${DEPENDENCY_DIR}/hdfsrc if [ $COMPILER = "GNU-Mac" ]; then read -r OS ARCH < <($SCRIPT_DIR/get_platform.sh) if [ $ARCH = "arm64" ]; then