From f8ef85b72fe66ecb25ca540767204feeacf4063c Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Fri, 15 May 2020 13:58:16 +0200 Subject: [PATCH] ENH: split up internals of wmake/scripts/have_XXX functions - adds some more flexibility --- wmake/scripts/have_adios2 | 82 +++++++++++++---------- wmake/scripts/have_boost | 89 ++++++++++++++----------- wmake/scripts/have_ccmio | 83 +++++++++++++---------- wmake/scripts/have_cgal | 88 ++++++++++++++----------- wmake/scripts/have_cmake | 73 ++++++++++++--------- wmake/scripts/have_fftw | 88 ++++++++++++++----------- wmake/scripts/have_hypre | 89 ++++++++++++++----------- wmake/scripts/have_kahip | 83 +++++++++++++---------- wmake/scripts/have_metis | 79 ++++++++++++---------- wmake/scripts/have_mgridgen | 81 +++++++++++++---------- wmake/scripts/have_petsc | 90 ++++++++++++++----------- wmake/scripts/have_readline | 26 +++++--- wmake/scripts/have_scotch | 127 ++++++++++++++++++++++-------------- wmake/scripts/have_zoltan | 81 +++++++++++++---------- 14 files changed, 679 insertions(+), 480 deletions(-) diff --git a/wmake/scripts/have_adios2 b/wmake/scripts/have_adios2 index f6afaf123d3..3f9635392c2 100644 --- a/wmake/scripts/have_adios2 +++ b/wmake/scripts/have_adios2 @@ -20,7 +20,8 @@ # ADIOS2_ARCH_PATH # # Functions provided -# have_adios2, no_adios2, echo_adios2, hint_adios2, query_adios2 +# have_adios2, no_adios2, echo_adios2, query_adios2, search_adios2 +# hint_adios2 # # Variables set on success # HAVE_ADIOS2 @@ -33,7 +34,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_adios2() { unset HAVE_ADIOS2 ADIOS2_INC_DIR ADIOS2_LIB_DIR @@ -66,43 +67,18 @@ INFORMATION } -# Query settings -query_adios2() -{ - local config="config.sh/adios2" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query adios2 "$ADIOS2_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "adios2=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_ADIOS2, ADIOS2_INC_DIR, ADIOS2_LIB_DIR -have_adios2() +search_adios2() { local warn # warn="==> skip adios2" - local config="config.sh/adios2" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - local prefix="$ADIOS2_ARCH_PATH" local incName="adios2.h" local libName="libadios2" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -147,7 +123,45 @@ have_adios2() } -# Reset variables +# Output as per search_* function +have_adios2() +{ + local warn # warn="==> skip adios2" + local config="config.sh/adios2" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_adios2 "$ADIOS2_ARCH_PATH" +} + + +# Query settings +query_adios2() +{ + local config="config.sh/adios2" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query adios2 "$ADIOS2_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "adios2=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_adios2 # Test/query diff --git a/wmake/scripts/have_boost b/wmake/scripts/have_boost index 133f15d772b..301d2c3be6f 100644 --- a/wmake/scripts/have_boost +++ b/wmake/scripts/have_boost @@ -21,7 +21,7 @@ # or config.sh/CGAL (when BOOST_ARCH_PATH is empty) # # Functions provided -# have_boost, no_boost, echo_boost, query_boost +# have_boost, no_boost, echo_boost, query_boost, search_boost # # Variables set on success # HAVE_BOOST @@ -34,7 +34,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_boost() { unset HAVE_BOOST BOOST_INC_DIR BOOST_LIB_DIR @@ -51,47 +51,18 @@ echo_boost() } -# Query settings (from CGAL setup) -query_boost() -{ - local config="config.sh/CGAL" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query boost "$BOOST_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "boost=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_BOOST, BOOST_INC_DIR, BOOST_LIB_DIR -have_boost() +search_boost() { local warn # warn="==> skip boost" - local config="config.sh/CGAL" - local settings - - # Setup - current environment if set - if [ -z "$BOOST_ARCH_PATH" ] - then - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - fi - - # Expected location, include/library names - local prefix="$BOOST_ARCH_PATH" local incName="boost/version.hpp" local libName="libboost_system" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -138,7 +109,49 @@ have_boost() } -# Reset variables +# Output as per search_* function +have_boost() +{ + local warn # warn="==> skip boost" + local config="config.sh/CGAL" + local file + + # Setup - current environment if set + if [ -z "$BOOST_ARCH_PATH" ] + then + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + fi + + search_boost "$BOOST_ARCH_PATH" +} + + +# Query settings (from CGAL setup) +query_boost() +{ + local config="config.sh/CGAL" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query boost "$BOOST_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "boost=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_boost # Test/query diff --git a/wmake/scripts/have_ccmio b/wmake/scripts/have_ccmio index 47e32ff8a5e..badeee322c5 100644 --- a/wmake/scripts/have_ccmio +++ b/wmake/scripts/have_ccmio @@ -20,7 +20,7 @@ # config.sh/ccmio # # Functions provided -# have_ccmio, no_ccmio, echo_ccmio, query_ccmio +# have_ccmio, no_ccmio, echo_ccmio, query_ccmio, search_ccmio # # Variables set on success # HAVE_CCMIO @@ -33,7 +33,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_ccmio() { unset HAVE_CCMIO CCMIO_INC_DIR CCMIO_LIB_DIR @@ -50,44 +50,19 @@ echo_ccmio() } -# Query settings -query_ccmio() -{ - local config="config.sh/ccmio" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query ccmio "$CCMIO_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "ccmio=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_CCMIO, CCMIO_INC_DIR, CCMIO_LIB_DIR -have_ccmio() +search_ccmio() { local warn="==> skip ccmio" - local config="config.sh/ccmio" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - # Link with static libccmio only (fewer issues) - local prefix="$CCMIO_ARCH_PATH" local incName="libccmio/ccmio.h" local libName="libccmio.a" + # Link with static libccmio only (fewer issues) + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -153,7 +128,45 @@ have_ccmio() } -# Reset variables +# Output as per search_* function +have_ccmio() +{ + local warn="==> skip ccmio" + local config="config.sh/ccmio" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_ccmio "$CCMIO_ARCH_PATH" +} + + +# Query settings +query_ccmio() +{ + local config="config.sh/ccmio" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query ccmio "$CCMIO_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "ccmio=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_ccmio # Test/query diff --git a/wmake/scripts/have_cgal b/wmake/scripts/have_cgal index f99d1ce7efb..36e3190cf57 100644 --- a/wmake/scripts/have_cgal +++ b/wmake/scripts/have_cgal @@ -34,7 +34,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_cgal() { unset HAVE_CGAL CGAL_INC_DIR CGAL_LIB_DIR @@ -51,47 +51,18 @@ echo_cgal() } -# Query settings (from CGAL setup) -query_cgal() -{ - local config="config.sh/CGAL" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query cgal "$CGAL_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "cgal=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_CGAL, CGAL_INC_DIR, CGAL_LIB_DIR -have_cgal() +search_cgal() { local warn # warn="==> skip cgal" - local config="config.sh/CGAL" - local settings - - # Setup - current environment if set - if [ -z "$CGAL_ARCH_PATH" ] - then - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - fi - - # Expected location, include/library names - local prefix="$CGAL_ARCH_PATH" local incName="CGAL/version.h" local libName="libCGAL" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -132,13 +103,56 @@ have_cgal() # OK export HAVE_CGAL=true + export CGAL_FLAVOUR="${flavour:-library}" export CGAL_ARCH_PATH="$prefix" export CGAL_INC_DIR="${header%/*}" # Basename export CGAL_LIB_DIR="${library%/*}" # Basename } -# Reset variables +# Output as per search_* function +have_cgal() +{ + local warn # warn="==> skip cgal" + local config="config.sh/CGAL" + local file + + # Setup - current environment if set + if [ -z "$CGAL_ARCH_PATH" ] + then + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + fi + + search_cgal "$CGAL_ARCH_PATH" +} + + +# Query settings (from CGAL setup) +query_cgal() +{ + local config="config.sh/CGAL" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query cgal "$CGAL_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "cgal=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_cgal # Test/query diff --git a/wmake/scripts/have_cmake b/wmake/scripts/have_cmake index 94e0531f1ea..9199b0e910c 100644 --- a/wmake/scripts/have_cmake +++ b/wmake/scripts/have_cmake @@ -21,7 +21,7 @@ # CMAKE_ARCH_PATH that may specify a possible cmake/bin directory. # # Functions provided -# have_cmake, no_cmake, echo_cmake +# have_cmake, no_cmake, echo_cmake, search_cmake # # Variables set on success # HAVE_CMAKE @@ -32,10 +32,10 @@ # #------------------------------------------------------------------------------ -# Reset variables +# Reset no_cmake() { - unset HAVE_CMAKE CMAKE_EXE + unset HAVE_CMAKE CMAKE_EXE CMAKE_ARCH_PATH } @@ -47,14 +47,15 @@ echo_cmake() } +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) # -# Try to locate cmake according to values specified in <etc/config.sh/cmake> +# Locate cmake according to values specified in <etc/config.sh/cmake> # or just use what is found on the path. # # On success: return the resolved value as output. # On failure: set executable as "false" and return with 1 -# -have_cmake() +search_cmake() { # Treat previous queries as "sticky" if [ -n "$CMAKE_EXE" ] @@ -63,31 +64,18 @@ have_cmake() return $? fi - local config="config.sh/cmake" - unset CMAKE_ARCH_PATH - local settings candidate foundExe + local prefix="$1" + local candidate foundExe - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config" 2>/dev/null)" - then - . "$settings" - - if [ -d "$CMAKE_ARCH_PATH" ] - then - candidate="$CMAKE_ARCH_PATH"/bin/cmake - if [ -f "$candidate" ] && [ -x "$candidate" ] - then - foundExe="$candidate" - fi - fi - fi + candidate="$prefix"/bin/cmake - if [ -z "$foundExe" ] + if [ -d "$prefix" ] && [ -f "$candidate" ] && [ -x "$candidate" ] then - # Default: resolve from PATH - if candidate="$(command -v cmake 2>/dev/null)" - then - foundExe="$candidate" - fi + foundExe="$candidate" + elif candidate="$(command -v cmake 2>/dev/null)" + then + # Resolved from PATH + foundExe="$candidate" fi if [ -n "$foundExe" ] @@ -103,9 +91,33 @@ have_cmake() } -# Reset variables -no_cmake +# Output as per search_* function +have_cmake() +{ + # Treat previous queries as "sticky" + if [ -n "$CMAKE_EXE" ] + then + test "$CMAKE_EXE" != "false" + return $? + fi + + local config="config.sh/cmake" + local file + unset CMAKE_ARCH_PATH + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config" 2>/dev/null)" + then + . "$file" + fi + search_cmake "$CMAKE_ARCH_PATH" +} + + +#------------------------------------------------------------------------------ + +# Reset +no_cmake # Test/query case "$1" in @@ -118,5 +130,4 @@ case "$1" in ;; esac - #------------------------------------------------------------------------------ diff --git a/wmake/scripts/have_fftw b/wmake/scripts/have_fftw index fd8d2aebf63..634e2af8083 100644 --- a/wmake/scripts/have_fftw +++ b/wmake/scripts/have_fftw @@ -21,7 +21,7 @@ # or config.sh/FFTW (when FFTW_ARCH_PATH is empty) # # Functions provided -# have_fftw, no_fftw, echo_fftw, query_fftw +# have_fftw, no_fftw, echo_fftw, query_fftw, search_fftw # # Variables set on success # HAVE_FFTW @@ -34,7 +34,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_fftw() { unset HAVE_FFTW FFTW_INC_DIR FFTW_LIB_DIR @@ -51,47 +51,19 @@ echo_fftw() } -# Query settings -query_fftw() -{ - local config="config.sh/FFTW" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query fftw "$FFTW_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "fftw=unknown" - fi -} - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_FFTW, FFTW_INC_DIR, FFTW_LIB_DIR -have_fftw() +search_fftw() { local warn # warn="==> skip fftw" - local config="config.sh/FFTW" - local settings - - # Setup - current environment if set - if [ -z "$FFTW_ARCH_PATH" ] - then - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - fi - - # Expected location, include/library names - local prefix="$FFTW_ARCH_PATH" local incName="fftw3.h" local libName="libfftw3" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -136,7 +108,49 @@ have_fftw() } -# Reset variables +# Output as per search_* function +have_fftw() +{ + local warn # warn="==> skip fftw" + local config="config.sh/FFTW" + local file + + # Setup - current environment if set + if [ -z "$FFTW_ARCH_PATH" ] + then + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + fi + + search_fftw "$FFTW_ARCH_PATH" +} + + +# Query settings +query_fftw() +{ + local config="config.sh/FFTW" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query fftw "$FFTW_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "fftw=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_fftw # Test/query diff --git a/wmake/scripts/have_hypre b/wmake/scripts/have_hypre index b4256dd1e31..cf456b847de 100644 --- a/wmake/scripts/have_hypre +++ b/wmake/scripts/have_hypre @@ -21,7 +21,7 @@ # or config.sh/hypre # # Functions provided -# have_hypre, no_hypre, echo_hypre, query_hypre +# have_hypre, no_hypre, echo_hypre, query_hypre, search_hypre # # Variables set on success # HAVE_HYPRE @@ -34,7 +34,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_hypre() { unset HAVE_HYPRE HYPRE_INC_DIR HYPRE_LIB_DIR @@ -51,47 +51,18 @@ echo_hypre() } -# Query settings -query_hypre() -{ - local config="config.sh/hypre" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query hypre "$HYPRE_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "hypre=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_HYPRE, HYPRE_INC_DIR, HYPRE_LIB_DIR -have_hypre() +search_hypre() { local warn="==> skip hypre" - local config="config.sh/hypre" - local settings - - # Setup - prefer current environment value? (TDB) - if [ ! -d "$HYPRE_ARCH_PATH" ] - then - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - fi - - # Expected location, include/library names - local prefix="$HYPRE_ARCH_PATH" local incName="HYPRE.h" local libName="libHYPRE" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -136,7 +107,49 @@ have_hypre() } -# Reset variables +# Output as per search_* function +have_hypre() +{ + local warn="==> skip hypre" + local config="config.sh/hypre" + local file + + # Setup - prefer current environment value? (TDB) + if [ ! -d "$HYPRE_ARCH_PATH" ] + then + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + fi + + search_hypre "$HYPRE_ARCH_PATH" +} + + +# Query settings +query_hypre() +{ + local config="config.sh/hypre" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query hypre "$HYPRE_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "hypre=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_hypre # Test/query diff --git a/wmake/scripts/have_kahip b/wmake/scripts/have_kahip index 78c6bc03ac3..0f5da3a254b 100644 --- a/wmake/scripts/have_kahip +++ b/wmake/scripts/have_kahip @@ -20,7 +20,7 @@ # config.sh/kahip # # Functions provided -# have_kahip, no_kahip, echo_kahip, query_kahip +# have_kahip, no_kahip, echo_kahip, query_kahip, search_kahip # # Variables set on success # HAVE_KAHIP @@ -33,7 +33,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_kahip() { unset HAVE_KAHIP KAHIP_ARCH_PATH KAHIP_INC_DIR KAHIP_LIB_DIR @@ -51,43 +51,18 @@ echo_kahip() } -# Query settings -query_kahip() -{ - local config="config.sh/kahip" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query kahip "$KAHIP_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "kahip=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_KAHIP, KAHIP_ARCH_PATH, KAHIP_INC_DIR, KAHIP_LIB_DIR -have_kahip() +search_kahip() { local warn="==> skip kahip" - local config="config.sh/kahip" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 1 - fi - - # Expected location, include/library names - local prefix="$KAHIP_ARCH_PATH" local incName="kaHIP_interface.h" local libName="libkahip" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -124,7 +99,7 @@ have_kahip() # ---------------------------------- - # kahip itself is 32-bit int, but our interface itself handles some + # kahip itself is 32-bit int, but our interface handles some # 64-bit conversion (mesh size). echo "kahip (label=32) - $prefix" @@ -135,7 +110,45 @@ have_kahip() } -# Reset variables +# Output as per search_* function +have_kahip() +{ + local warn="==> skip kahip" + local config="config.sh/kahip" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 1 + fi + + search_kahip "$KAHIP_ARCH_PATH" +} + + +# Query settings +query_kahip() +{ + local config="config.sh/kahip" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query kahip "$KAHIP_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "kahip=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_kahip # Test/query diff --git a/wmake/scripts/have_metis b/wmake/scripts/have_metis index e251281a6de..8da19e4a82d 100644 --- a/wmake/scripts/have_metis +++ b/wmake/scripts/have_metis @@ -20,7 +20,7 @@ # config.sh/metis # # Functions provided -# have_metis, no_metis, echo_metis, query_metis +# have_metis, no_metis, echo_metis, query_metis, search_metis # # Variables set on success # HAVE_METIS @@ -33,7 +33,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_metis() { unset HAVE_METIS METIS_ARCH_PATH METIS_INC_DIR METIS_LIB_DIR @@ -51,43 +51,18 @@ echo_metis() } -# Query settings -query_metis() -{ - local config="config.sh/metis" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query metis "$METIS_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "metis=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_METIS, METIS_ARCH_PATH, METIS_INC_DIR, METIS_LIB_DIR -have_metis() +search_metis() { local warn="==> skip metis" - local config="config.sh/metis" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - local prefix="$METIS_ARCH_PATH" local incName="metis.h" local libName="libmetis" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -142,6 +117,44 @@ have_metis() } +# Output as per search_* function +have_metis() +{ + local warn="==> skip metis" + local config="config.sh/metis" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_metis "$METIS_ARCH_PATH" +} + + +# Query settings +query_metis() +{ + local config="config.sh/metis" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query metis "$METIS_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "metis=unknown" + fi +} + + +#------------------------------------------------------------------------------ + # Reset variables no_metis diff --git a/wmake/scripts/have_mgridgen b/wmake/scripts/have_mgridgen index 84be5ce5206..f374e7c375a 100644 --- a/wmake/scripts/have_mgridgen +++ b/wmake/scripts/have_mgridgen @@ -20,7 +20,7 @@ # config.sh/mgridgen # # Functions provided -# have_mgridgen, no_mgridgen, echo_mgridgen, query_mgridgen +# have_mgridgen, no_mgridgen, echo_mgridgen, query_mgridgen, search_mgridgen # # Variables set on success # HAVE_MGRIDGEN @@ -33,7 +33,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_mgridgen() { unset HAVE_MGRIDGEN MGRIDGEN_ARCH_PATH MGRIDGEN_INC_DIR MGRIDGEN_LIB_DIR @@ -51,44 +51,19 @@ echo_mgridgen() } -# Query settings -query_mgridgen() -{ - local config="config.sh/mgridgen" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query mgridgen "$MGRIDGEN_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "mgridgen=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_MGRIDGEN, MGRIDGEN_ARCH_PATH, MGRIDGEN_INC_DIR, MGRIDGEN_LIB_DIR -have_mgridgen() +search_mgridgen() { local warn="==> skip mgridgen" - local config="config.sh/mgridgen" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - #silent# [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - local prefix="$MGRIDGEN_ARCH_PATH" local incName="mgridgen.h" local libName="libMGridGen" local libName2="libmgrid" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -177,7 +152,45 @@ have_mgridgen() } -# Reset variables +# Output as per search_* function +have_mgridgen() +{ + local warn="==> skip mgridgen" + local config="config.sh/mgridgen" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + #silent# [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_mgridgen "$MGRIDGEN_ARCH_PATH" +} + + +# Query settings +query_mgridgen() +{ + local config="config.sh/mgridgen" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query mgridgen "$MGRIDGEN_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "mgridgen=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_mgridgen # Test/query diff --git a/wmake/scripts/have_petsc b/wmake/scripts/have_petsc index 4e9413c3951..e6690f02995 100644 --- a/wmake/scripts/have_petsc +++ b/wmake/scripts/have_petsc @@ -21,7 +21,8 @@ # or config.sh/petsc # # Functions provided -# have_petsc, no_petsc, echo_petsc, hint_petsc, query_petsc +# have_petsc, no_petsc, echo_petsc, query_petsc, search_petsc +# hint_petsc # # Variables set on success # HAVE_PETSC @@ -34,7 +35,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_petsc() { unset HAVE_PETSC PETSC_INC_DIR PETSC_LIB_DIR @@ -67,48 +68,18 @@ INFORMATION } -# Query settings -query_petsc() -{ - local config="config.sh/petsc" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query petsc "$PETSC_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "petsc=unknown" - fi -} - - # On success, return 0 and export variables # -> HAVE_PETSC, PETSC_INC_DIR, PETSC_LIB_DIR -have_petsc() +# +# $1 = prefix (eg, PETSC_ARCH_PATH) +search_petsc() { local warn="==> skip petsc" - local config="config.sh/petsc" - local settings - - # Setup - prefer current environment value? (TDB) - if [ ! -d "$PETSC_ARCH_PATH" ] - then - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - fi - - # Expected location, include/library names - local prefix="$PETSC_ARCH_PATH" local incName="petsc.h" local libName="libpetsc" local pkgName="PETSc" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -168,7 +139,50 @@ have_petsc() } -# Reset variables +# On success, return 0 and export variables +# -> HAVE_PETSC, PETSC_INC_DIR, PETSC_LIB_DIR +have_petsc() +{ + local warn="==> skip petsc" + local config="config.sh/petsc" + local file + + # Setup - prefer current environment value? (TDB) + if [ ! -d "$PETSC_ARCH_PATH" ] + then + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + fi + + search_petsc "$PETSC_ARCH_PATH" +} + + +# Query settings +query_petsc() +{ + local config="config.sh/petsc" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query petsc "$PETSC_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "petsc=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_petsc # Test/query diff --git a/wmake/scripts/have_readline b/wmake/scripts/have_readline index 51d264155fa..2b3ab9edfa6 100644 --- a/wmake/scripts/have_readline +++ b/wmake/scripts/have_readline @@ -20,7 +20,7 @@ # None # # Functions provided -# have_readline, no_readline, echo_readline +# have_readline, no_readline, echo_readline, search_readline # # Variables set on success # HAVE_LIBREADLINE - as per GNU autoconf @@ -32,7 +32,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_readline() { unset HAVE_LIBREADLINE READLINE_INC_DIR READLINE_LIB_DIR @@ -48,17 +48,18 @@ echo_readline() } +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_LIBREADLINE, READLINE_INC_DIR, READLINE_LIB_DIR -have_readline() +search_readline() { local warn # warn="==> skip readline" - local settings - - # Expected location, include/library names - local prefix=system local incName="readline/readline.h" local libName="libreadline" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -104,7 +105,16 @@ have_readline() } -# Reset variables +# Output as per search_* function +have_readline() +{ + search_readline system +} + + +#------------------------------------------------------------------------------ + +# Reset no_readline # Test/query diff --git a/wmake/scripts/have_scotch b/wmake/scripts/have_scotch index 3dd2fa43087..8f8a33d3dd9 100644 --- a/wmake/scripts/have_scotch +++ b/wmake/scripts/have_scotch @@ -20,7 +20,7 @@ # config.sh/scotch # # Functions provided -# have_scotch, no_scotch, echo_scotch, query_scotch +# have_ptscotch, search_ptscotch # # Variables set on success # HAVE_SCOTCH @@ -28,12 +28,21 @@ # SCOTCH_INC_DIR # SCOTCH_LIB_DIR # +# Functions provided [Must call have_scotch first] +# have_ptscotch, search_ptscotch +# +# Variables set on success +# HAVE_PTSCOTCH +# PTSCOTCH_ARCH_PATH +# PTSCOTCH_INC_DIR +# PTSCOTCH_LIB_DIR +# #------------------------------------------------------------------------------ . ${WM_PROJECT_DIR:?}/wmake/scripts/sysFunctions # General system functions #------------------------------------------------------------------------------ -# Reset variables +# Reset no_scotch() { unset HAVE_SCOTCH SCOTCH_ARCH_PATH SCOTCH_INC_DIR SCOTCH_LIB_DIR @@ -57,44 +66,19 @@ echo_scotch() } -# Query settings -query_scotch() -{ - local config="config.sh/scotch" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query scotch "$SCOTCH_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "scotch=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_SCOTCH, SCOTCH_ARCH_PATH, SCOTCH_INC_DIR, SCOTCH_LIB_DIR -have_scotch() +search_scotch() { local warn="==> skip scotch" - local config="config.sh/scotch" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - local prefix="$SCOTCH_ARCH_PATH" local incName="scotch.h" local libName="libscotch" local localDir="scotch-int$WM_LABEL_SIZE" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -192,28 +176,19 @@ have_scotch() } -# Must be called after have_scotch! +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) # # On success, return 0 and export variables # -> HAVE_PTSCOTCH, PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR -have_ptscotch() +search_ptscotch() { local warn="==> skip ptscotch" - - if [ "$HAVE_SCOTCH" != true ] - then - echo "$warn (no serial scotch available?)" - return 1 - fi - - # Reuse old settings - [ -n "$PTSCOTCH_ARCH_PATH" ] || PTSCOTCH_ARCH_PATH="$SCOTCH_ARCH_PATH" - - # Expected location, include/library names - local prefix="$PTSCOTCH_ARCH_PATH" local incName="ptscotch.h" local libName="libptscotch" local localDir="scotch-int$WM_LABEL_SIZE" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -272,7 +247,63 @@ have_ptscotch() } -# Reset variables +# Output as per search_* function +have_scotch() +{ + local warn="==> skip scotch" + local config="config.sh/scotch" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_scotch "$SCOTCH_ARCH_PATH" +} + + +# Output as per search_* function +have_ptscotch() +{ + local warn="==> skip ptscotch" + + if [ "$HAVE_SCOTCH" != true ] + then + echo "$warn (no serial scotch available?)" + return 1 + fi + + # Reuse old settings + [ -n "$PTSCOTCH_ARCH_PATH" ] || PTSCOTCH_ARCH_PATH="$SCOTCH_ARCH_PATH" + + search_ptscotch "$PTSCOTCH_ARCH_PATH" +} + + +# Query settings +query_scotch() +{ + local config="config.sh/scotch" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query scotch "$SCOTCH_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "scotch=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_scotch # Test/query diff --git a/wmake/scripts/have_zoltan b/wmake/scripts/have_zoltan index bf43ca58522..d212eb12ba9 100644 --- a/wmake/scripts/have_zoltan +++ b/wmake/scripts/have_zoltan @@ -20,7 +20,7 @@ # config.sh/zoltan # # Functions provided -# have_zoltan, no_zoltan, echo_zoltan, query_zoltan +# have_zoltan, no_zoltan, echo_zoltan, query_zoltan, search_zoltan # # Variables set on success # HAVE_ZOLTAN @@ -33,7 +33,7 @@ #------------------------------------------------------------------------------ -# Reset variables +# Reset no_zoltan() { unset HAVE_ZOLTAN ZOLTAN_INC_DIR ZOLTAN_LIB_DIR @@ -50,43 +50,18 @@ echo_zoltan() } -# Query settings -query_zoltan() -{ - local config="config.sh/zoltan" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" - then - . "$settings" - _process_query zoltan "$ZOLTAN_ARCH_PATH" - else - echo "(no $config settings)" 1>&2 - echo "zoltan=unknown" - fi -} - - +# Search +# $1 : prefix (*_ARCH_PATH, system, ...) +# # On success, return 0 and export variables # -> HAVE_ZOLTAN, ZOLTAN_INC_DIR, ZOLTAN_LIB_DIR -have_zoltan() +search_zoltan() { local warn # warn="==> skip zoltan" - local config="config.sh/zoltan" - local settings - - if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" - then - . "$settings" - else - [ -n "$warn" ] && echo "$warn (no $config settings)" - return 2 - fi - - # Expected location, include/library names - local prefix="$ZOLTAN_ARCH_PATH" local incName="zoltan.h" local libName="libzoltan" + + local prefix="${1:-system}" local header library # ---------------------------------- @@ -131,7 +106,45 @@ have_zoltan() } -# Reset variables +# Output as per search_* function +have_zoltan() +{ + local warn # warn="==> skip zoltan" + local config="config.sh/zoltan" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config")" + then + . "$file" + else + [ -n "$warn" ] && echo "$warn (no $config)" + return 2 + fi + + search_zoltan "$ZOLTAN_ARCH_PATH" +} + + +# Query settings +query_zoltan() +{ + local config="config.sh/zoltan" + local file + + if file="$("$WM_PROJECT_DIR"/bin/foamEtcFile -mode=o "$config")" + then + . "$file" + _process_query zoltan "$ZOLTAN_ARCH_PATH" + else + echo "(no $config)" 1>&2 + echo "zoltan=unknown" + fi +} + + +#------------------------------------------------------------------------------ + +# Reset no_zoltan # Test/query -- GitLab