diff --git a/Allclean b/Allclean index a18574054a88a83e55f29291b4c95485fd886e12..b87214fd99ec84d4cd847b352e32ce730924a2ed 100755 --- a/Allclean +++ b/Allclean @@ -7,11 +7,10 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011 OpenFOAM Foundation -# Copyright (C) 2016-2019 OpenCFD Ltd. +# Copyright (C) 2016-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # Allclean @@ -35,10 +34,10 @@ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<<USAGE -Usage: ${0##*/} [OPTION] [<platform> [ ... <platformN> ]] +Usage: ${0##*/} [OPTION] [platform [ ... platformN]] options: - -all remove all platforms directories. - -current clean the current platform ($WM_OPTIONS). + -all remove all platforms directories + -current clean the current platform ($WM_OPTIONS) -help print the usage Cleanup intermediate build directories. @@ -50,10 +49,11 @@ USAGE } # Print help message -if [ "$1" = "-h" -o "$1" = "-help" ] -then +case "$1" in +(-h | -help*) usage -fi + ;; +esac #------------------------------------------------------------------------------ @@ -124,7 +124,7 @@ fi removePlatform() { local platform="$1" - if [ -n "$platform" -a -d "platforms/$platform" ] + if [ -n "$platform" ] && [ -d "platforms/$platform" ] then echo echo "Cleaning platform '$platform'" diff --git a/Allwmake b/Allwmake index 06b82fe7b05840428d5a5dd3f52088fa1c0f34c1..4a07b97dfcc75b5b27af3de3fb246e1ed20f7e42 100755 --- a/Allwmake +++ b/Allwmake @@ -7,14 +7,13 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2019 OpenCFD Ltd. +# Copyright (C) 2016-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script -# Allwmake +# ThirdParty Allwmake # # Description # Build script for ThirdParty applications/libraries @@ -29,11 +28,6 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo " Check your OpenFOAM environment and installation" exit 1 } -[ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set for ThirdParty" - echo " Check your OpenFOAM environment and installation" - exit 1 -} . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ exportCompiler true # Compiler info + flags for CMake/configure @@ -54,7 +48,7 @@ echo Build MPI libraries if required echo " $MPI_ARCH_PATH" case "$WM_MPLIB" in (OPENMPI | MPICH) - ./make$WM_MPLIB -test "$MPI_ARCH_PATH" || ./make$WM_MPLIB + ./make"$WM_MPLIB" -test "$MPI_ARCH_PATH" || ./make"$WM_MPLIB" ;; esac @@ -103,7 +97,7 @@ echo echo ======================================== if [ -n "$CGAL_ARCH_PATH" ] then - echo "CGAL/boost" + echo "cgal/boost" ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \ ./makeCGAL || warnBuildIssues CGAL else diff --git a/etc/testThirdPartyFunctions b/etc/testThirdPartyFunctions index 4e9cb5f3be01c16c6686d6c9ac93a56d6a5ed74b..d0c8265195b2933935277ceff6530d4297429565 100755 --- a/etc/testThirdPartyFunctions +++ b/etc/testThirdPartyFunctions @@ -3,12 +3,13 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2019 OpenCFD Ltd. +# \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ +# Copyright (C) 2019 OpenCFD Ltd. +#------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # testThirdPartyFunctions diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index f7ce1949b4556868eebd0a2419819c32fbe3cd2e..f5bfae3d3989915d061beeca5752e06d1e42cc39 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -267,7 +267,7 @@ addMesaSupport() return fi - if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ] + if [ -d "$MESA_INCLUDE" ] && [ -f "$MESA_LIBRARY" ] then addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON" addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE" @@ -479,7 +479,7 @@ INFO # Non-system installation of QT? case "$qtLib" in (/usr/lib | /usr/lib64) unset qtLib ;; esac - if [ "${qmake%/*}" != /usr/bin -a -d "$qtLib" ] + if [ "${qmake%/*}" != /usr/bin ] && [ -d "$qtLib" ] then /bin/cat<<INFO diff --git a/etc/tools/QtFunctions b/etc/tools/QtFunctions index 7c366f87ff6533fc603b5f0a901c2c4a76a5cfb3..1cba9c97dc93ce729828a79d8470ff67ef8c8974 100644 --- a/etc/tools/QtFunctions +++ b/etc/tools/QtFunctions @@ -2,14 +2,14 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd. +# \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ -# | Copyright (C) 2011 OpenFOAM Foundation +# Copyright (C) 2011 OpenFOAM Foundation +# Copyright (C) 2016-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # File # etc/tools/QtFunction @@ -35,7 +35,7 @@ createQtConf() { local confFile="$QT_ARCH_PATH/bin/qt.conf" - if [ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/bin" ] + if [ -n "$QT_ARCH_PATH" ] && [ -d "$QT_ARCH_PATH/bin" ] then /bin/cat << QT_CONF > $confFile [Paths] diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 70634e9f11bec3d3cc31dfe66bf534d3b5fd4fc9..24b00904766341870296dc101fcc5af0b254178d 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -326,6 +326,20 @@ requireWMakeToolchain() } +# Require FOAM_EXT_LIBBIN for some compilations +requireExtLibBin() +{ + [ -n "$FOAM_EXT_LIBBIN" ] || { + exec 1>&2 + echo + echo "Error: \$FOAM_EXT_LIBBIN not set for '${0##*/}" + echo " Check your OpenFOAM environment and installation" + echo + exit 1 + } +} + + # grep for package http or ftp entries in BUILD.md # Should be of the form "[link xx]: http://..." showDownloadHint() @@ -660,7 +674,7 @@ pkgconfigNewPrefix() [ -d "$dir/$libdir" ] || continue for i in $dir/$libdir/*.pc do - if [ -f "$i" -a ! -L "$i" ] + if [ -f "$i" ] && [ ! -L "$i" ] then nfiles="x$nfiles" sed -i~ -e 's@^\(prefix=\).*$@\1'"$dir@" $i @@ -708,7 +722,7 @@ pkgconfigAdjust() [ -d "$dir/$libdir" ] || continue for i in $dir/$libdir/*.pc do - if [ -f "$i" -a ! -L "$i" ] + if [ -f "$i" ] && [ ! -L "$i" ] then nfiles="x$nfiles" sed -i~ \ diff --git a/makeAdios2 b/makeAdios2 index 7b19844db701f65be0fdec5fc11a9205ccf8ff05..dd0da7e9962eb4490ed86dcb3c3715c071bc3c39 100755 --- a/makeAdios2 +++ b/makeAdios2 @@ -26,8 +26,9 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- FFTW_ARCH_PATH - if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libadios2$EXT_SO" ] + dir="${2%/}" # <- *_ARCH_PATH + if [ -d "$dir/include" ] \ + && [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libadios2$EXT_SO" ] then echo " adios2 include: $dir/include" echo " adios2 library: $dir/lib$WM_COMPILER_LIB_ARCH" @@ -59,6 +60,7 @@ usage() { usage: ${0##*/} [OPTION] [adios-VERSION] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -cmake PATH With cmake from the given path -help @@ -73,6 +75,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler minimal # Minimal compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -80,6 +84,7 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" @@ -128,8 +133,9 @@ echo # Needs future adjustment # - for mpi-specific library locations -if [ -f $ADIOS2_ARCH_PATH/include/adios2.h \ - -a -r $ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libadios2$EXT_SO ] +if [ -z "$optForce" ] \ +&& [ -f "$ADIOS2_ARCH_PATH/include/adios2.h" ] \ +&& [ -r "$ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libadios2$EXT_SO" ] then echo " ADIOS2 header in $ADIOS2_ARCH_PATH/include" echo " ADIOS2 libs in $ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" diff --git a/makeCCMIO b/makeCCMIO index 077b0415c9667844abc3dd3c05633838805dd58b..6068539d11835636bc67292475ff030f4f2da100 100755 --- a/makeCCMIO +++ b/makeCCMIO @@ -21,9 +21,6 @@ # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ -# Dynamic library ending (default is .so) -[ "$(uname -s)" = Darwin ] && EXT_SO=.dylib || EXT_SO=.so - # Run from third-party directory only cd "${0%/*}" || exit wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { @@ -31,11 +28,6 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo " Check your OpenFOAM environment and installation" exit 1 } -[ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" - echo " Check your OpenFOAM environment and installation" - exit 1 -} . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ @@ -97,6 +89,7 @@ do done requireWMakeToolchain +requireExtLibBin #------------------------------------------------------------------------------ # diff --git a/makeCmake b/makeCmake index b35fdc8a72052fd2b4c4220f6cb7fb2b390a43bb..a998eaf2dd8b5e5733c9ea5c2d24fadcd1d34f67 100755 --- a/makeCmake +++ b/makeCmake @@ -45,6 +45,7 @@ usage() { usage: ${0##*/} [OPTION] cmake-VERSION options: + -force Force compilation, even if binary already exists -gcc Force use of gcc/g++ -link Create additional symlink as 'cmake-system' -help @@ -59,7 +60,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure -unset optLink +unset optForce optLink + # Parse options while [ "$#" -gt 0 ] do @@ -67,10 +69,9 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; + -link) optLink=true ;; - -link) - optLink=true - ;; cmake-[0-9]*) cmakePACKAGE="${1%%/}" ;; @@ -97,7 +98,9 @@ fi CMAKE_SOURCE_DIR=$sourceBASE/$cmakePACKAGE CMAKE_ARCH_PATH=$installBASE/$cmakePACKAGE -if [ -d "$CMAKE_ARCH_PATH" -a -r "$CMAKE_ARCH_PATH/bin/cmake" ] +if [ -z "$optForce" ] \ +&& [ -d "$CMAKE_ARCH_PATH" ] \ +&& [ -r "$CMAKE_ARCH_PATH/bin/cmake" ] then echo "Already built: $cmakePACKAGE" else @@ -124,7 +127,7 @@ else } fi -if [ "$optLink" = true -a -x "$CMAKE_ARCH_PATH/bin/cmake" ] +if [ "$optLink" = true ] && [ -x "$CMAKE_ARCH_PATH/bin/cmake" ] then ( cd "${CMAKE_ARCH_PATH%/*}" || exit @@ -135,7 +138,7 @@ then then exit 2 fi - ln -svf $cmakePACKAGE cmake-system + ln -svf "$cmakePACKAGE" cmake-system ) fi diff --git a/makeFFTW b/makeFFTW index acd2afe29e72cd1bf4c7a58e1d8c4b136725b06d..b1ff70bfd048b9a88378c1cb8d180db3d65ef541 100755 --- a/makeFFTW +++ b/makeFFTW @@ -27,8 +27,9 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- FFTW_ARCH_PATH - if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3$EXT_SO" ] + dir="${2%/}" # <- *_ARCH_PATH + if [ -d "$dir/include" ] \ + && [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3$EXT_SO" ] then echo " fftw include: $dir/include" echo " fftw library: $dir/lib$WM_COMPILER_LIB_ARCH" @@ -61,6 +62,7 @@ usage() { usage: ${0##*/} [OPTION] [fftw-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -help @@ -74,6 +76,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -82,6 +86,7 @@ do --) break;; # Extra configure options (leave on $@ for later detection) -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; fftw-[0-9]* | fftw_[0-9]* | fftw-system ) fftwPACKAGE="${1%%/}" @@ -121,7 +126,8 @@ fi FFTW_SOURCE_DIR=$sourceBASE/$fftwPACKAGE FFTW_ARCH_PATH=$installBASE/$fftwPACKAGE -if [ -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3$EXT_SO" ] +if [ -z "$optForce" ] \ +&& [ -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3$EXT_SO" ] then echo "Already has FFTW shared library" else diff --git a/makeHYPRE b/makeHYPRE index 9667b9c3f62c947dadb8d6a520c4a19429b1e478..ded8b329749fca7097b716b62d63669215f2ab35 100755 --- a/makeHYPRE +++ b/makeHYPRE @@ -43,6 +43,7 @@ usage() { usage: ${0##*/} [OPTION] [lib|libso] [HYPRE-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -help @@ -56,6 +57,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -63,6 +66,7 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; lib|libso) targetType="$1" diff --git a/makeKAHIP b/makeKAHIP index f29f8b6b60c31b7c2e226f796f3c18725695db79..7ad15508ecff2fefdde19ae4847f412c0d35a7d0 100755 --- a/makeKAHIP +++ b/makeKAHIP @@ -27,7 +27,7 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- KAHIP_ARCH_PATH + dir="${2%/}" # <- *_ARCH_PATH if [ -d "$dir/include" ] then for lib in \ @@ -56,11 +56,6 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo " Check your OpenFOAM environment and installation" exit 1 } -[ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" - echo " Check your OpenFOAM environment and installation" - exit 1 -} . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ _foamConfig kahip @@ -78,6 +73,7 @@ usage() Usage: ${0##*/} [OPTION] [lib|libso] [kahip-VERSION] options: -gcc Force use of gcc/g++ + -force Force build attempt (mingw) -cmake PATH With cmake from the given path -help @@ -91,6 +87,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler minimal # Minimal compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -98,6 +96,7 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" @@ -133,7 +132,21 @@ then exit 0 fi +# Known build issues for mingw (uses some non-portable headers) +case "$WM_COMPILER" in +(Mingw*) + if [ "$optForce" = true ] + then + echo "Warning: kahip - known compilation issues with $WM_COMPILER" + else + echo "Skipping kahip - known compilation issues with $WM_COMPILER" + exit 0 + fi + ;; +esac + requireWMakeToolchain +requireExtLibBin #------------------------------------------------------------------------------ # diff --git a/makeMETIS b/makeMETIS index b5840ba8dad5117d58dad7e0577980bf69c9c7a4..2d58c1239994b5b102b935382cf298214dca4ea8 100755 --- a/makeMETIS +++ b/makeMETIS @@ -27,7 +27,7 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- METIS_ARCH_PATH + dir="${2%/}" # <- *_ARCH_PATH if [ -d "$dir/include" ] then for lib in \ @@ -56,11 +56,6 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo " Check your OpenFOAM environment and installation" exit 1 } -[ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" - echo " Check your OpenFOAM environment and installation" - exit 1 -} . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ _foamConfig metis @@ -125,6 +120,8 @@ then exit 0 fi +requireExtLibBin + #------------------------------------------------------------------------------ # # Build METIS diff --git a/makeMGridGen b/makeMGridGen index f97730dff502cf97bd2c646bcad185af1b09c2d4..44d7576e7a5c52da06bcf52ef40a8e12f355b519 100755 --- a/makeMGridGen +++ b/makeMGridGen @@ -44,6 +44,7 @@ usage() { usage: ${0##*/} [OPTION] [mgridgen-VERSION] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -help @@ -57,6 +58,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -64,6 +67,7 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; mgridgen-[0-9]* | MGridGen-[0-9]* | parmgridgen-[0-9]* | ParMGridGen-[0-9]*) mgridgenPACKAGE="${1%%/}" @@ -133,8 +137,9 @@ install() # Needs future adjustment # - for shared library # - for mpi-specific library locations -if [ -f $MGRIDGEN_ARCH_PATH/include/mgridgen.h \ - -a -r $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmgrid.a ] +if [ -z "$optForce" ] \ +&& [ -f "$MGRIDGEN_ARCH_PATH/include/mgridgen.h" \ +&& [ -r "$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmgrid.a" ] then echo " MGridGen header in $MGRIDGEN_ARCH_PATH/include" echo " MGridGen libs in $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" # static diff --git a/makeMPICH b/makeMPICH index f09660780290be8f885780d1676ebf83234a6618..0ad7e9cc8c21e11f78c5d563a8b0070cf68dfe3e 100755 --- a/makeMPICH +++ b/makeMPICH @@ -6,11 +6,10 @@ # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ -# Copyright (C) 2017-2019 OpenCFD Ltd. +# Copyright (C) 2017-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # makeMPICH @@ -28,7 +27,7 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- MPI_ARCH_PATH + dir="${2%/}" # <- *_ARCH_PATH if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo "Have mpich shared library (${dir##*/})" @@ -73,6 +72,7 @@ usage() { usage: ${0##*/} [OPTION] [mpich-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -help @@ -86,6 +86,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -94,6 +96,7 @@ do --) break;; # Extra configure options (leave on $@ for later detection) -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; mpich*) mpiPACKAGE="${1%%/}" @@ -129,10 +132,12 @@ fi MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE MPI_ARCH_PATH=$installBASE/$mpiPACKAGE -if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] +if [ -z "$optForce" ] \ +&& [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo "Already has shared library" -elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] +elif [ -z "$optForce" ] \ + && [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] then echo "Already has static library" else diff --git a/makeMVAPICH b/makeMVAPICH index 9a73709d00a407226e1c47f7bddf96b1f42a30c4..c641cd68496dc6cac06a54368608593e0cc400d5 100755 --- a/makeMVAPICH +++ b/makeMVAPICH @@ -6,11 +6,10 @@ # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ -# Copyright (C) 2019 OpenCFD Ltd. +# Copyright (C) 2019-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # makeMVAPICH2 @@ -28,7 +27,7 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- MPI_ARCH_PATH + dir="${2%/}" # <- *_ARCH_PATH if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo "Have mpich shared library (${dir##*/})" @@ -73,6 +72,7 @@ usage() { usage: ${0##*/} [OPTION] [mvapich2-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -help @@ -90,6 +90,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -98,6 +100,7 @@ do --) break;; # Extra configure options (leave on $@ for later detection) -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; mvapich*) mpiPACKAGE="${1%%/}" @@ -133,10 +136,12 @@ fi MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE MPI_ARCH_PATH=$installBASE/$mpiPACKAGE -if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] +if [ -z "$optForce" ] \ +&& [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo "Already has shared library" -elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] +elif [ -z "$optForce" ] \ + && [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] then echo "Already has static library" else diff --git a/makeMesa b/makeMesa index 7332b9302f0b1a879a42b91d82e90954fdcb354c..56d5703f0acc9148d5713fb760020403dfb74d53 100755 --- a/makeMesa +++ b/makeMesa @@ -9,8 +9,7 @@ # Copyright (C) 2016-2019 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # Script # makeMesa diff --git a/makeOPENMPI b/makeOPENMPI index 7172c9a60dfb0f26fd4220ae5f37d4f6316b22f4..7b821199508ab6e0674836a2ebec25aa5e9bcc78 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -27,7 +27,7 @@ if [ "$1" = "-test" ] then [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } - dir="${2%/}" # <- MPI_ARCH_PATH + dir="${2%/}" # <- *_ARCH_PATH if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo " Have openmpi shared library (${dir##*/})" @@ -72,6 +72,7 @@ usage() { usage: ${0##*/} [OPTION] [openmpi-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -memcheck Configure with --enable-memcheck (requires valgrind.h) -threaded Configure with --enable-mpi-thread-multiple @@ -88,7 +89,7 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure -unset optMemchecker optThreaded +unset optForce optMemchecker optThreaded # Parse options while [ "$#" -gt 0 ] @@ -98,6 +99,7 @@ do --) break;; # Extra configure options (leave on $@ for later detection) -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; -memcheck*) optMemchecker=true ;; -thread*) optThreaded=enable ;; -no-thread*) optThreaded=disable ;; @@ -136,10 +138,12 @@ fi MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE MPI_ARCH_PATH=$installBASE/$mpiPACKAGE -if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] +if [ -z "$optForce" ] \ +&& [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ] then echo "Already has shared library: $MPI_ARCH_PATH" -elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] +elif [ -z "$optForce" ] \ + && [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] then echo "Already has static library: $MPI_ARCH_PATH" else diff --git a/makePETSC b/makePETSC index c003ade799df79e5ce4bb8e3a8e8150576389652..80e97b2c4f9c1aa0d6fa92403a95b501769234aa 100755 --- a/makePETSC +++ b/makePETSC @@ -49,6 +49,7 @@ usage() { usage: ${0##*/} [OPTION] [lib|libso] [HYPRE-VERSION] [PETSC-VERSION] [-- configure-options] options: + -force Force compilation, even if include/library already exists -gcc Force use of gcc/g++ -inplace Build/install inplace (expert option) -no-hypre Disable automatic hypre detection @@ -69,7 +70,7 @@ USAGE #------------------------------------------------------------------------------ exportCompiler # Compiler info for CMake/configure -unset optInplace +unset optForce optInplace # Parse options while [ "$#" -gt 0 ] @@ -78,10 +79,8 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; - - -inplace) - optInplace=true - ;; + -force) optForce=true ;; + -inplace) optInplace=true ;; lib|libso) targetType="$1" diff --git a/makeQt b/makeQt index 711fde8bc89f2199e5b44db1ea9b20374d541663..ef2c6de6d33680056aa4989e3c683aacb34a8588 100755 --- a/makeQt +++ b/makeQt @@ -38,6 +38,7 @@ usage() { usage: ${0##*/} [OPTION] [qt-VERSION] [-- configure-options] options: + -force Force compilation, even if it already exists -gcc Force use of gcc/g++ -help @@ -50,6 +51,8 @@ USAGE #------------------------------------------------------------------------------ exportCompiler true # Compiler info + flags for CMake/configure +unset optForce + # Parse options while [ "$#" -gt 0 ] do @@ -58,6 +61,7 @@ do --) break;; # Extra configure options (leave on $@ for later detection) -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; -qt-[0-9]* | [0-9]* | qt-*) # -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION @@ -95,7 +99,10 @@ echo echo ======================================== echo "Build Qt $qtPACKAGE" echo -if [ -d "$QT_ARCH_PATH" -a -r "$QT_ARCH_PATH/bin/qmake" ] + +if [ -z "$optForce" ] \ +&& [ -d "$QT_ARCH_PATH" ] \ +&& [ -r "$QT_ARCH_PATH/bin/qmake" ] then echo "Already built: Qt-$qtVERSION" else diff --git a/makeSCOTCH b/makeSCOTCH index cc6d43f86c4d6a4d0125aa15640c321d325fa27e..618865f3f3399c876e48964bb463517ea8a60480 100755 --- a/makeSCOTCH +++ b/makeSCOTCH @@ -19,8 +19,6 @@ # # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE -#------------------------------------------------------------------------------ - #------------------------------------------------------------------------------ # Run from third-party directory only cd "${0%/*}" || exit @@ -29,11 +27,6 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo " Check your OpenFOAM environment and installation" exit 1 } -[ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" - echo " Check your OpenFOAM environment and installation" - exit 1 -} . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ _foamConfig scotch # Get SCOTCH_ARCH_PATH, SCOTCH_VERSION @@ -53,6 +46,7 @@ usage() Usage: ${0##*/} [OPTION] [libso] [scotch-VERSION] options: -force Force compilation, even if include/library already exists + Also force build attempt of pt-scotch (mingw) -gcc Force use of gcc/g++ -bin Create scotch binaries as well (experimental) -no-bin Suppress creation of scotch binaries (default) @@ -69,6 +63,7 @@ USAGE #------------------------------------------------------------------------------ unset optBinaries optForce + # Parse options while [ "$#" -gt 0 ] do @@ -76,11 +71,11 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -force) optForce=true ;; - -force) optForce=true ;; - -bin) optBinaries=true ;; - -no-bin) unset optBinaries ;; - -no-mpi) unset withMPI ;; + -bin) optBinaries=true ;; + -no-bin) unset optBinaries ;; + -no-mpi) unset withMPI ;; scotch-[0-9]* | scotch-git | scotch_* ) scotchPACKAGE="${1%%/}" @@ -106,6 +101,8 @@ then exit 0 fi +requireExtLibBin + #------------------------------------------------------------------------------ # Needs generalizing, but works fairly well @@ -230,6 +227,19 @@ then exit 0 fi +# Known build issues for mingw (MS-MPI source code annotations) +case "$WM_COMPILER" in +(Mingw*) + if [ -z "$optForce" ] + then + echo "Skipping pt-scotch - known compilation issues with $WM_COMPILER" + exit 0 + else + echo "Warning: pt-scotch - known compilation issues with $WM_COMPILER" + fi + ;; +esac + # Build ptscotch if normal scotch was built (has include and library) # (reuse prefix/include/lib dirs set above)