diff --git a/buildscripts/build_all.sh b/buildscripts/build_all.sh index 23c1bdfbd..dd3e71f7f 100755 --- a/buildscripts/build_all.sh +++ b/buildscripts/build_all.sh @@ -58,12 +58,15 @@ case $OS in if [ "$ARCH" = "x86_64" ]; then COMPILER="Intel" else - COMPILER="GNU" + COMPILER="GNU-Linux" fi fi ;; MacOSX) - COMPILER="GNU" + COMPILER="GNU-Mac" + export MACOSX_DEPLOYMENT_TARGET=13 + export LDFLAGS="-Wl,-no_compact_unwind" + echo "Building for Mac assumes using Homebrew gfortran-13, gcc-13, and g++13. Install these first if necessary." ;; *) echo "Swiftest is currently not configured to build for platform ${OS}-${ARCH}" @@ -71,12 +74,8 @@ case $OS in ;; esac -/bin/bash -lic "${SCRIPT_DIR}/fetch_dependencies.sh" -if [ "$COMPILER"="GNU" ]; then - /bin/bash -lic "${SCRIPT_DIR}/make_build_environment.sh" - conda activate swiftest-build-env -fi -/bin/bash -lic "${SCRIPT_DIR}/build_dependencies.sh $COMPILER" -/bin/bash -lic "${SCRIPT_DIR}/build_swiftest.sh $COMPILER" +${SCRIPT_DIR}/fetch_dependencies.sh && \ +${SCRIPT_DIR}/build_dependencies.sh $COMPILER && \ +${SCRIPT_DIR}/build_swiftest.sh $COMPILER diff --git a/buildscripts/build_dependencies.sh b/buildscripts/build_dependencies.sh index b06b1e8a8..e7c3fcafa 100755 --- a/buildscripts/build_dependencies.sh +++ b/buildscripts/build_dependencies.sh @@ -38,11 +38,16 @@ case $COMPILER in fi export F77="${FC}" ;; - GNU) + GNU-Linux) export FC=$(command -v gfortran) export CC=$(command -v gcc) export CXX=$(command -v g++) ;; + GNU-Mac) + export FC=$HOMEBREW_PREFIX/bin/gfortran-13 + export CC=$HOMEBREW_PREFIX/bin/gcc-13 + export CXX=$HOMEBREW_PREFIX/bin/g++-13 + ;; *) echo "Unknown compiler type: ${COMPILER}" echo $USTMT @@ -61,11 +66,12 @@ export HDF5_LIBDIR="${HDF5_ROOT}/lib" export HDF5_INCLUDE_DIR="${HDF5_ROOT}/include" export HDF5_PLUGIN_PATH="${HDF5_LIBDIR}/plugin" -export LDFLAGS="-L${INSTALL_DIR}/lib" +export LDFLAGS="${LDFLAGS} -L${INSTALL_DIR}/lib" export CPATH="${INSTALL_DIR}/include" export CFLAGS="-fPIC" cd zlib-1.2.13 +make distclean ./configure --prefix=${INSTALL_DIR} --static make make install @@ -77,6 +83,7 @@ cd ../hdf5-1.14.1-2 --disable-cxx \ --prefix=${INSTALL_DIR} \ --with-zlib=${INSTALL_DIR} +make distclean make make install @@ -85,6 +92,7 @@ cd ../netcdf-c-4.9.2 --disable-dap \ --disable-byterange \ --prefix=${INSTALL_DIR} +make distclean make make check make install @@ -100,6 +108,7 @@ fi export LIBS="$(${INSTALL_DIR}/bin/nc-config --libs)" cd ../netcdf-fortran-4.6.1 ./configure --disable-shared --with-pic --prefix=${NFDIR} +make distclean make make check make install diff --git a/buildscripts/build_swiftest.sh b/buildscripts/build_swiftest.sh index b7973895f..8eb834f05 100755 --- a/buildscripts/build_swiftest.sh +++ b/buildscripts/build_swiftest.sh @@ -35,11 +35,16 @@ case $COMPILER in fi export F77="${FC}" ;; - GNU) + GNU-Linux) export FC=$(command -v gfortran) export CC=$(command -v gcc) export CXX=$(command -v g++) ;; + GNU-Mac) + export FC=$HOMEBREW_PREFIX/bin/gfortran-13 + export CC=$HOMEBREW_PREFIX/bin/gcc-13 + export CXX=$HOMEBREW_PREFIX/bin/g++-13 + ;; *) echo "Unknown compiler type: ${COMPILER}" echo $USTMT @@ -53,7 +58,7 @@ export CPATH=$DEPDIR/include export NETCDF_FORTRAN_HOME=$DEPDIR export LD_LIBRARY_PATH="${DEPDIR}/lib:${LD_LIBRARY_PATH}" export LIBS=$(${DEPDIR}/bin/nf-config --all) -export LDFLAGS="-L${DEPDIR}/lib" +export LDFLAGS="${LDFLAGS} -L${DEPDIR}/lib" export CFLAGS="-fPIC" export CMAKE_ARGS="-DBUILD_SHARED_LIBS=OFF" diff --git a/buildscripts/fetch_dependencies.sh b/buildscripts/fetch_dependencies.sh index 24337c095..dc31aff66 100755 --- a/buildscripts/fetch_dependencies.sh +++ b/buildscripts/fetch_dependencies.sh @@ -20,5 +20,3 @@ wget -qO- https://www.zlib.net/zlib-1.2.13.tar.gz | tar xvz wget -qO- https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz | tar xvz wget -qO- https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz | tar xvz wget -qO- https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.1.tar.gz | tar xvz - -echo "Files downloaded to ${BUILD_DIR}" \ No newline at end of file