diff --git a/buildscripts/_build_getopts.sh b/buildscripts/_build_getopts.sh index 85dbbeaa5..6c4ab93f9 100755 --- a/buildscripts/_build_getopts.sh +++ b/buildscripts/_build_getopts.sh @@ -63,15 +63,8 @@ if [ -z ${DEPENDENCY_ENV_VARS+x} ]; then LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}" CPPFLAGS="${CPPFLAGS} -isystem ${PREFIX}/include" - LDFLAGS="${LDFLAGS} -L${PREFIX}/lib -fPIE" + LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" CPATH="${CPATH} ${PREFIX}/include}" - CFLAGS="${CFLAGS} -Wno-unused-but-set-variable -fPIC" - LIBS="${LIBS} -lgomp" - - if [ $COMPILER = "GNU-Mac" ]; then - LDFLAGS="${LDFLAGS} -Wl,-no_compact_unwind" - CFLAGS="${CFLAGS} -Wno-deprecated-non-prototype" - fi HDF5_ROOT="${PREFIX}" HDF5_LIBDIR="${HDF5_ROOT}/lib" diff --git a/buildscripts/build_dependencies.sh b/buildscripts/build_dependencies.sh index fed957585..e305c0161 100755 --- a/buildscripts/build_dependencies.sh +++ b/buildscripts/build_dependencies.sh @@ -28,11 +28,7 @@ printf "*********************************************************\n" printf "Copying files to ${DEPENDENCY_DIR}\n" mkdir -p ${DEPENDENCY_DIR} cd $DEPENDENCY_DIR -if [ -d ${DEPENDENCY_DIR}/zlib-${ZLIB_VER} ]; then - cd ${DEPENDENCY_DIR}/zlib-${ZLIB_VER} - make distclean - cd ${DEPENDENCY_DIR} -else +if [ ! -d ${DEPENDENCY_DIR}/zlib-${ZLIB_VER} ]; then [ -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 @@ -49,31 +45,20 @@ if [[ (-d ${DEPENDENCY_DIR}/hdfsrc) && (-f ${DEPENDENCY_DIR}/hdfsrc/README.md) ] fi fi -if [ -d ${DEPENDENCY_DIR}/hdfsrc ]; then - cd ${DEPENDENCY_DIR}/hdfsrc - make distclean - cd ${DEPENDENCY_DIR} -else +if [ ! -d ${DEPENDENCY_DIR}/hdfsrc ]; then 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 - cd ${DEPENDENCY_DIR}/netcdf-c-${NC_VER} - make distclean - cd ${DEPENDENCY_DIR} -else +if [ ! -d ${DEPENDENCY_DIR}/netcdf-c-${NC_VER} ]; then [ -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 -if [ -d ${DEPENDENCY_DIR}/netcdf-fortran-${NF_VER} ]; then - cd ${DEPENDENCY_DIR}/netcdf-fortran-${NF_VER} - make distclean - cd ${DEPENDENCY_DIR} -else +if [ ! -d ${DEPENDENCY_DIR}/netcdf-fortran-${NF_VER} ]; then [ -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 printf "*********************************************************\n" printf "* STARTING DEPENDENCY BUILD *\n" @@ -83,10 +68,30 @@ printf "Installing to ${PREFIX}\n" printf "\n" set -e -${SCRIPT_DIR}/build_zlib.sh ${ARGS} -${SCRIPT_DIR}/build_hdf5.sh ${ARGS} -${SCRIPT_DIR}/build_netcdf-c.sh ${ARGS} -${SCRIPT_DIR}/build_netcdf-fortran.sh ${ARGS} +if [ ! -f ${PREFIX}/lib/libz.a ]; then + ${SCRIPT_DIR}/build_zlib.sh ${ARGS} +else + echo "Found: ${PREFIX}/lib/libz.a" +fi + +if [ ! -f ${PREFIX}/lib/libhdf5.a ]; then + ${SCRIPT_DIR}/build_hdf5.sh ${ARGS} +else + echo "Found: ${PREFIX}/lib/libhdf5.a" +fi + + +if [ ! -f ${PREFIX}/lib/libnetcdf.a ]; then + ${SCRIPT_DIR}/build_netcdf-c.sh ${ARGS} +else + echo "Found: ${PREFIX}/lib/libnetcdf.a" +fi + +if [ ! -f ${PREFIX}/lib/libnetcdff.a ]; then + ${SCRIPT_DIR}/build_netcdf-fortran.sh ${ARGS} +else +` echo "Found: ${PREFIX}/lib/libnetcdff.a" +fi printf "\n" printf "*********************************************************\n" diff --git a/buildscripts/build_hdf5.sh b/buildscripts/build_hdf5.sh index 1b24504be..fdf7f8654 100755 --- a/buildscripts/build_hdf5.sh +++ b/buildscripts/build_hdf5.sh @@ -49,3 +49,5 @@ if [ $? -ne 0 ]; then exit 1 fi +make distclean + diff --git a/buildscripts/build_netcdf-c.sh b/buildscripts/build_netcdf-c.sh index ff9ce8b13..e0327fbbe 100755 --- a/buildscripts/build_netcdf-c.sh +++ b/buildscripts/build_netcdf-c.sh @@ -49,3 +49,4 @@ if [ $? -ne 0 ]; then exit 1 fi +make distclean \ No newline at end of file diff --git a/buildscripts/build_netcdf-fortran.sh b/buildscripts/build_netcdf-fortran.sh index 4f098bb02..9e9a877cd 100755 --- a/buildscripts/build_netcdf-fortran.sh +++ b/buildscripts/build_netcdf-fortran.sh @@ -43,3 +43,5 @@ if [ $? -ne 0 ]; then exit 1 fi +make distclean + diff --git a/buildscripts/build_swiftest.sh b/buildscripts/build_swiftest.sh index a87705728..49bac3e92 100755 --- a/buildscripts/build_swiftest.sh +++ b/buildscripts/build_swiftest.sh @@ -40,10 +40,6 @@ fi read -r OS ARCH < <($SCRIPT_DIR/get_platform.sh) echo $OS $ARCH -if [ $OS = "MacOSX" ] && [ $ARCH = "arm64" ]; then - printf "OpenMP not supported on Apple M1 Silicon quite yet\n" - SKBUILD_CONFIGURE_OPTIONS="${SKBUILD_CONFIGURE_OPTIONS} -DUSE_OPENMP=OFF -DUSE_SIMD=OFF" -fi cd $ROOT_DIR diff --git a/buildscripts/build_zlib.sh b/buildscripts/build_zlib.sh index 11f17a081..d65cad4f6 100755 --- a/buildscripts/build_zlib.sh +++ b/buildscripts/build_zlib.sh @@ -38,4 +38,6 @@ fi if [ $? -ne 0 ]; then printf "zlib could not be compiled.\n" exit 1 -fi \ No newline at end of file +fi + +make distclean \ No newline at end of file diff --git a/buildscripts/set_compilers.sh b/buildscripts/set_compilers.sh index 4e2fafa8f..979fd8958 100755 --- a/buildscripts/set_compilers.sh +++ b/buildscripts/set_compilers.sh @@ -89,16 +89,29 @@ case $COMPILER in CPP=${CPP:-$(command -v cpp)} ;; GNU-Mac) - GCCVER=${GCCVER:-13} - printf "GCC Version: ${GCCVER}\n" - FC=${FC:-$HOMEBREW_PREFIX/bin/gfortran-${GCCVER}} - CC=${CC:-$HOMEBREW_PREFIX/bin/gcc-${GCCVER}} - CXX=${CXX:-$HOMEBREW_PREFIX/bin/g++-${GCCVER}} - CPP=${CPP:-$HOMEBREW_PREFIX/bin/cpp-${GCCVER}} - AR=${AR:-$HOMEBREW_PREFIX/bin/gcc-ar-${GCCVER}} - NM=${NM:-$HOMEBREW_PREFIX/bin/gcc-nm-${GCCVER}} - RANLIB=${RANLIB:-$HOMEBREW_PREFIX/bin/gcc-ranlib-${GCCVER}} - LD_LIBRARY_PATH="${HOMEBREW_PREFIX}/lib/gcc/${GCCVER}/lib:${LD_LIBRARY_PATH}" + + if $(brew --version &> /dev/null); then + brew install llvm@16 libomp + else + echo \"Please install Homebrew first\" + exit 1 + fi + COMPILER_PREFIX=${COMPILER_PREFIX:-"/opt/homebrew/opt/llvm"} + CC=${CC:-${COMPILER_PREFIX}/bin/clang} + CXX=${CXX:-${COMPILER_PREFIX}/bin/clang++} + CPP=${CPP:-${COMPILER_PREFIX}/bin/clang-cpp} + AR=${AR:-${COMPILER_PREFIX}/bin/llvm-ar} + NM=${NM:-${COMPILER_PREFIX}/bin/llvm-nm} + RANLIB=${RANLIB:-${COMPILER_PREFIX}/bin/llvm-ranlib} + FROOT=$(realpath $(dirname $(command -v gfortran))/..) + FC=$(command -v gfortran) + LD_LIBRARY_PATH="${COMPILER_PREFIX}/lib:${FROOT}/lib:${LD_LIBRARY_PATH}" + LDFLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++" + LIBS="-L/opt/homebrew/opt/libomp/lib -lomp ${LIBS}" + CPATH="${FROOT}/include:${CPATH}" + CFLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET} ${CFLAGS}" + CXXFLAGS="${CFLAGS} ${CXXFLAGS}" + FCFLAGS="${CFLAGS} ${FCFLAGS}" ;; *) printf "Unknown compiler type: ${COMPILER}\n" diff --git a/setup.py b/setup.py index 0473f5caf..a327a2cce 100644 --- a/setup.py +++ b/setup.py @@ -11,6 +11,7 @@ """ from skbuild import setup +from pathlib import Path with open('version.txt') as version_file: version = version_file.read().strip() @@ -20,6 +21,8 @@ author='David A. Minton', author_email='daminton@purdue.edu', url='https://github.itap.purdue.edu/MintonGroup/swiftest', + long_description=Path("README.md").read_text(encoding="utf-8"), + long_description_content_type="text/markdown", python_requires=">=3.8", license="GPLv3", classifiers=[