Merge branch 'feature-build-granularity' into 'develop'

Feature build granularity

See merge request Development/openfoam!359
This commit is contained in:
Andrew Heather
2020-05-19 07:14:06 +01:00
35 changed files with 924 additions and 542 deletions

View File

@ -14,11 +14,9 @@ EXE_INC = \
${c++CGALWARN} \ ${c++CGALWARN} \
-I.. \ -I.. \
-I$(LIB_SRC)/surfMesh/lnInclude \ -I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude
-I/usr/include/Qt
LIB_LIBS = \ LIB_LIBS = \
-L$(CGAL_ARCH_PATH)/lib \ -L${CGAL_LIBS} \
-L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-lsurfMesh \ -lsurfMesh \
-lmeshTools -lmeshTools

View File

@ -1,11 +1,10 @@
#!/bin/sh #!/bin/sh
cd "${0%/*}" || exit # Run from this directory cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
wclean dummy wclean dummy
wcleanLibMpi mpi ./Allwclean-mpi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

9
src/Pstream/Allwclean-mpi Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------
wcleanLibMpi mpi
#------------------------------------------------------------------------------

View File

@ -1,13 +1,12 @@
#!/bin/sh #!/bin/sh
cd "${0%/*}" || exit # Run from this directory cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments . ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
echo "wmake $targetType dummy (mpi=$WM_MPLIB)" echo "wmake $targetType dummy (mpi=$WM_MPLIB)"
wmake $targetType dummy wmake $targetType dummy
wmakeLibMpi mpi ./Allwmake-mpi $targetType $*
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

13
src/Pstream/Allwmake-mpi Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
# No AllwmakeParseArguments [infinite loop via Allwmake]
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmake.wmake-args
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------
# Environment
# - FOAM_MPI_LIBBIN (optional: defaults to FOAM_LIBBIN/FOAM_MPI)
wmakeLibMpi mpi
#------------------------------------------------------------------------------

View File

@ -3,4 +3,4 @@ UIPread.C
UPstream.C UPstream.C
PstreamGlobals.C PstreamGlobals.C
LIB = $(FOAM_LIBBIN)/$(FOAM_MPI)/libPstream LIB = $(FOAM_MPI_LIBBIN)/libPstream

View File

@ -1,6 +1,11 @@
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB) sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB) sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
/* Default is PROJECT LIB/mpi target */
ifeq (,$(FOAM_MPI_LIBBIN))
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
endif
EXE_INC = $(PFLAGS) $(PINC) $(c++LESSWARN) EXE_INC = $(PFLAGS) $(PINC) $(c++LESSWARN)
LIB_LIBS = $(PLIBS) LIB_LIBS = $(PLIBS)

View File

@ -1,6 +1,5 @@
#!/bin/sh #!/bin/sh
cd "${0%/*}" || exit # Run from this directory cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -10,6 +9,6 @@ wclean scotchDecomp
wclean decompositionMethods wclean decompositionMethods
wclean decompose wclean decompose
wcleanLibMpi ptscotchDecomp ./Allwclean-mpi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
#------------------------------------------------------------------------------
wcleanLibMpi ptscotchDecomp
#------------------------------------------------------------------------------

View File

@ -1,7 +1,6 @@
#!/bin/sh #!/bin/sh
cd "${0%/*}" || exit # Run from this directory cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments . ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_kahip . ${WM_PROJECT_DIR:?}/wmake/scripts/have_kahip
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_metis . ${WM_PROJECT_DIR:?}/wmake/scripts/have_metis
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_scotch . ${WM_PROJECT_DIR:?}/wmake/scripts/have_scotch
@ -27,12 +26,8 @@ fi
if have_scotch if have_scotch
then then
wmake $targetType scotchDecomp wmake $targetType scotchDecomp
if have_ptscotch
then
wmakeLibMpi ptscotchDecomp "scotch=$SCOTCH_VERSION"
fi
fi fi
./Allwmake-mpi $targetType $*
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -0,0 +1,24 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
# No AllwmakeParseArguments [infinite loop via Allwmake]
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmake.wmake-args
. ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_scotch
#------------------------------------------------------------------------------
# Environment
# - FOAM_MPI_LIBBIN (optional: defaults to FOAM_LIBBIN/FOAM_MPI)
: "${FOAM_EXT_LIBBIN:=/usr/lib$WM_COMPILER_LIB_ARCH}" # Extra safety?
export FOAM_EXT_LIBBIN
if have_scotch
then
if have_ptscotch
then
wmakeLibMpi ptscotchDecomp "scotch=$SCOTCH_VERSION"
fi
fi
#------------------------------------------------------------------------------

View File

@ -1,3 +1,3 @@
ptscotchDecomp.C ptscotchDecomp.C
LIB = $(FOAM_LIBBIN)/$(FOAM_MPI)/libptscotchDecomp LIB = $(FOAM_MPI_LIBBIN)/libptscotchDecomp

View File

@ -5,6 +5,11 @@
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB) sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB) sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
/* Default is PROJECT LIB/mpi target */
ifeq (,$(strip $(FOAM_MPI_LIBBIN)))
FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
endif
EXE_INC = \ EXE_INC = \
-I$(PTSCOTCH_INC_DIR) \ -I$(PTSCOTCH_INC_DIR) \
-I$(SCOTCH_INC_DIR) \ -I$(SCOTCH_INC_DIR) \
@ -22,8 +27,8 @@ LIB_LIBS = \
-lscotch \ -lscotch \
-lptscotch -lptscotch
/* Combined into libptscotch for windows compile */ /* errexit, except for windows compile (already in library) */
ifneq ($(WM_OSTYPE),MSwindows) ifeq (,$(findstring windows,$(WM_OSTYPE)))
LIB_LIBS += -lptscotcherrexit LIB_LIBS += -lptscotcherrexit
endif endif

View File

@ -7,8 +7,8 @@ LIB_LIBS = \
-L$(SCOTCH_LIB_DIR) \ -L$(SCOTCH_LIB_DIR) \
-lscotch -lscotch
/* Combined into libscotch for windows compile */ /* errexit, except for windows compile (already in library) */
ifneq ($(WM_OSTYPE),MSwindows) ifeq (,$(findstring windows,$(WM_OSTYPE)))
LIB_LIBS += -lscotcherrexit LIB_LIBS += -lscotcherrexit
endif endif

View File

@ -1,20 +1,69 @@
CGAL_INC = \ # ----------------------------------------------------------------------------
-I$(GMP_ARCH_PATH)/include \ # CGAL definitions - several possibilities
-I$(MPFR_ARCH_PATH)/include \ #
-I$(BOOST_ARCH_PATH)/include \ # 0. missing
-I$(CGAL_ARCH_PATH)/include \ # 1. header-only
-I/usr/local/include \ # 2. library, no mpfr
-I/usr/include # 3. library, with mpfr (a likely default)
#
# Dispatch according to the defined 'CGAL_FLAVOUR'
# - names may change [see wmake/scripts/have_cgal]
# (no-cgal | cgal-header | cgal-no-mpfr | cgal-mpfr)
CGAL_LIBS = \ cgal_subrule := cgal-mpfr
-L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ ifneq (,$(findstring header,$(CGAL_FLAVOUR)))
-L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ cgal_subrule := cgal-header-only
-L$(BOOST_ARCH_PATH)/lib \ endif
-L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ ifneq (,$(findstring no-mpfr,$(CGAL_FLAVOUR)))
-L$(CGAL_ARCH_PATH)/lib \ cgal_subrule := cgal-no-mpfr
-L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ endif
-lCGAL \
-lgmp \
-lmpfr
# ----------------------------------------------------------------------------
# BOOST include/library directories - synthesize from ARCH_PATH as required
ifeq (,$(strip $(BOOST_INC_DIR)))
ifneq (,$(strip $(BOOST_ARCH_PATH)))
BOOST_INC_DIR = $(BOOST_ARCH_PATH)/include
BOOST_LIB_DIR = $(BOOST_ARCH_PATH)/lib \
$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
endif
# ----------------------------------------------------------------------------
# CGAL include/library directories - synthesize from ARCH_PATH as required
ifeq (,$(strip $(CGAL_INC_DIR)))
ifneq (,$(strip $(CGAL_ARCH_PATH)))
CGAL_INC_DIR = $(CGAL_ARCH_PATH)/include
CGAL_LIB_DIR = $(CGAL_ARCH_PATH)/lib \
$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
endif
# ----------------------------------------------------------------------------
CGAL_INC =
CGAL_LIBS =
include $(GENERAL_RULES)/$(cgal_subrule)
# Override
sinclude $(DEFAULT_RULES)/CGAL sinclude $(DEFAULT_RULES)/CGAL
sinclude $(DEFAULT_RULES)/$(cgal_subrule)
# DEBUG
# -----
## $(info CGAL_FLAVOUR $(CGAL_FLAVOUR))
## $(info subrule $(cgal_subrule))
## CGAL_INC += -Wp,-v
## $(info CGAL_INC: $(CGAL_INC))
## $(info CGAL_LIB: $(CGAL_LIBS))
## $(info BOOST_INC_DIR: $(BOOST_INC_DIR))
## $(info BOOST_LIB_DIR: $(BOOST_LIB_DIR))
## $(info CGAL_INC_DIR: $(CGAL_INC_DIR))
## $(info CGAL_LIB_DIR: $(CGAL_LIB_DIR))
# ---------------------------------------------------------------------------

View File

@ -0,0 +1,28 @@
# -----------------------------------------------------------------------------
# CGAL (header-only version)
CGAL_INC = -DCGAL_HEADER_ONLY
CGAL_LIBS =
ifneq (,$(GMP_ARCH_PATH))
CGAL_INC += -I$(GMP_ARCH_PATH)/include
CGAL_LIBS += -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
ifneq (,$(MPFR_ARCH_PATH))
CGAL_INC += -I$(MPFR_ARCH_PATH)/include
CGAL_LIBS += -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
CGAL_INC += \
$(foreach dir,$(BOOST_INC_DIR),-I$(dir)) \
$(foreach dir,$(CGAL_INC_DIR),-I$(dir))
CGAL_LIBS += \
$(foreach dir,$(BOOST_LIB_DIR),-L$(dir)) \
-lmpfr -lgmp
# ----
# Extra failsafe - still needed? (2020-05-15)
## CGAL_INC += -I/usr/local/include -I/usr/include
# -----------------------------------------------------------------------------

View File

@ -1,9 +0,0 @@
# Headers-only CGAL
CGAL_INC = \
-I$(BOOST_ARCH_PATH)/include \
-I$(CGAL_ARCH_PATH)/include
CGAL_LIBS =
#------------------------------------------------------------------------------

View File

@ -0,0 +1,29 @@
# -----------------------------------------------------------------------------
# CGAL (library version) with mpfr/gmp
CGAL_INC =
CGAL_LIBS =
ifneq (,$(strip $(GMP_ARCH_PATH)))
CGAL_INC += -I$(GMP_ARCH_PATH)/include
CGAL_LIBS += -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
ifneq (,$(strip $(MPFR_ARCH_PATH)))
CGAL_INC += -I$(MPFR_ARCH_PATH)/include
CGAL_LIBS += -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH)
endif
CGAL_INC += \
$(foreach dir,$(BOOST_INC_DIR),-I$(dir)) \
$(foreach dir,$(CGAL_INC_DIR),-I$(dir))
CGAL_LIBS += \
$(foreach dir,$(BOOST_LIB_DIR),-L$(dir)) \
$(foreach dir,$(CGAL_LIB_DIR),-L$(dir)) \
-lCGAL -lmpfr -lgmp
# ----
# Extra failsafe - still needed? (2020-05-15)
## CGAL_INC += -I/usr/local/include -I/usr/include
# -----------------------------------------------------------------------------

View File

@ -0,0 +1,17 @@
# -----------------------------------------------------------------------------
# CGAL (library version) without mpfr
CGAL_INC = \
$(foreach dir,$(BOOST_INC_DIR),-I$(dir)) \
$(foreach dir,$(CGAL_INC_DIR),-I$(dir))
CGAL_LIBS = \
$(foreach dir,$(BOOST_LIB_DIR),-L$(dir)) \
$(foreach dir,$(CGAL_LIB_DIR),-L$(dir)) \
-lCGAL
# ----
# Extra failsafe - still needed? (2020-05-15)
## CGAL_INC += -I/usr/local/include -I/usr/include
# -----------------------------------------------------------------------------

View File

@ -1,4 +1,5 @@
# Empty flags for not compiling/linking with CGAL #------------------------------------------------------------------------------
# CGAL - empty flags for not compiling/linking
CGAL_INC = CGAL_INC =
CGAL_LIBS = CGAL_LIBS =

View File

@ -1,10 +1,14 @@
# Clang build of CGAL on Darwin without mpfr,gmp # ----------------------------------------------------------------------------
# CGAL on Darwin
# CGAL (library version) without mpfr
CGAL_INC = \ CGAL_INC = \
-I$(BOOST_ARCH_PATH)/include \ $(foreach dir,$(BOOST_INC_DIR),-I$(dir)) \
-I$(CGAL_ARCH_PATH)/include $(foreach dir,$(CGAL_INC_DIR),-I$(dir))
CGAL_LIBS = \ CGAL_LIBS = \
-L$(BOOST_ARCH_PATH)/lib \ $(foreach dir,$(BOOST_LIB_DIR),-L$(dir)) \
-L$(CGAL_ARCH_PATH)/lib \ $(foreach dir,$(CGAL_LIB_DIR),-L$(dir)) \
-lCGAL -lCGAL
# ----------------------------------------------------------------------------

View File

@ -20,7 +20,8 @@
# ADIOS2_ARCH_PATH # ADIOS2_ARCH_PATH
# #
# Functions provided # 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 # Variables set on success
# HAVE_ADIOS2 # HAVE_ADIOS2
@ -33,7 +34,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_adios2() no_adios2()
{ {
unset HAVE_ADIOS2 ADIOS2_INC_DIR ADIOS2_LIB_DIR unset HAVE_ADIOS2 ADIOS2_INC_DIR ADIOS2_LIB_DIR
@ -66,43 +67,18 @@ INFORMATION
} }
# Query settings # Search
query_adios2() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_ADIOS2, ADIOS2_INC_DIR, ADIOS2_LIB_DIR # -> HAVE_ADIOS2, ADIOS2_INC_DIR, ADIOS2_LIB_DIR
have_adios2() search_adios2()
{ {
local warn # warn="==> skip 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 incName="adios2.h"
local libName="libadios2" local libName="libadios2"
local prefix="${1:-system}"
local header library 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 no_adios2
# Test/query # Test/query

View File

@ -21,7 +21,7 @@
# or config.sh/CGAL (when BOOST_ARCH_PATH is empty) # or config.sh/CGAL (when BOOST_ARCH_PATH is empty)
# #
# Functions provided # Functions provided
# have_boost, no_boost, echo_boost, query_boost # have_boost, no_boost, echo_boost, query_boost, search_boost
# #
# Variables set on success # Variables set on success
# HAVE_BOOST # HAVE_BOOST
@ -34,7 +34,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_boost() no_boost()
{ {
unset HAVE_BOOST BOOST_INC_DIR BOOST_LIB_DIR unset HAVE_BOOST BOOST_INC_DIR BOOST_LIB_DIR
@ -51,47 +51,18 @@ echo_boost()
} }
# Query settings (from CGAL setup) # Search
query_boost() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_BOOST, BOOST_INC_DIR, BOOST_LIB_DIR # -> HAVE_BOOST, BOOST_INC_DIR, BOOST_LIB_DIR
have_boost() search_boost()
{ {
local warn # warn="==> skip 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 incName="boost/version.hpp"
local libName="libboost_system" local libName="libboost_system"
local prefix="${1:-system}"
local header library 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 no_boost
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# config.sh/ccmio # config.sh/ccmio
# #
# Functions provided # Functions provided
# have_ccmio, no_ccmio, echo_ccmio, query_ccmio # have_ccmio, no_ccmio, echo_ccmio, query_ccmio, search_ccmio
# #
# Variables set on success # Variables set on success
# HAVE_CCMIO # HAVE_CCMIO
@ -33,7 +33,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_ccmio() no_ccmio()
{ {
unset HAVE_CCMIO CCMIO_INC_DIR CCMIO_LIB_DIR unset HAVE_CCMIO CCMIO_INC_DIR CCMIO_LIB_DIR
@ -50,44 +50,19 @@ echo_ccmio()
} }
# Query settings # Search
query_ccmio() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_CCMIO, CCMIO_INC_DIR, CCMIO_LIB_DIR # -> HAVE_CCMIO, CCMIO_INC_DIR, CCMIO_LIB_DIR
have_ccmio() search_ccmio()
{ {
local warn="==> skip 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 incName="libccmio/ccmio.h"
local libName="libccmio.a" local libName="libccmio.a"
# Link with static libccmio only (fewer issues)
local prefix="${1:-system}"
local header library 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 no_ccmio
# Test/query # Test/query

View File

@ -25,19 +25,23 @@
# #
# Variables set on success # Variables set on success
# HAVE_CGAL # HAVE_CGAL
# CGAL_FLAVOUR (header, library, ...)
# CGAL_ARCH_PATH # CGAL_ARCH_PATH
# CGAL_INC_DIR # CGAL_INC_DIR
# CGAL_LIB_DIR # CGAL_LIB_DIR
# #
# Uses
# BOOST_ARCH_PATH and have_boost::search_boost()
#
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
. ${WM_PROJECT_DIR:?}/wmake/scripts/sysFunctions # General system functions . ${WM_PROJECT_DIR:?}/wmake/scripts/have_boost # boost + system functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_cgal() no_cgal()
{ {
unset HAVE_CGAL CGAL_INC_DIR CGAL_LIB_DIR unset HAVE_CGAL CGAL_FLAVOUR CGAL_INC_DIR CGAL_LIB_DIR
} }
@ -45,54 +49,26 @@ no_cgal()
echo_cgal() echo_cgal()
{ {
echo "cgal=${HAVE_CGAL:-false}" echo "cgal=${HAVE_CGAL:-false}"
echo "flavour=$CGAL_FLAVOUR"
echo "root=$CGAL_ARCH_PATH" echo "root=$CGAL_ARCH_PATH"
echo "include=$CGAL_INC_DIR" echo "include=$CGAL_INC_DIR"
echo "library=$CGAL_LIB_DIR" echo "library=$CGAL_LIB_DIR"
} }
# Query settings (from CGAL setup) # Search
query_cgal() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_CGAL, CGAL_INC_DIR, CGAL_LIB_DIR # -> HAVE_CGAL, CGAL_INC_DIR, CGAL_LIB_DIR, CGAL_FLAVOUR
have_cgal() search_cgal()
{ {
local warn # warn="==> skip 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 incName="CGAL/version.h"
local libName="libCGAL" local libName="libCGAL"
local header library
local prefix="${1:-system}"
local header library flavour
# ---------------------------------- # ----------------------------------
if isNone "$prefix" if isNone "$prefix"
@ -118,12 +94,13 @@ have_cgal()
return 2 return 2
} }
# Library # Library may be optional - eg, header-only
[ -n "$library" ] \ [ -n "$library" ] \
|| library=$(findLibrary -prefix="$prefix" -name="$libName") \ || library=$(findLibrary -prefix="$prefix" -name="$libName") \
|| { || {
[ -n "$warn" ] && echo "$warn (no library)" [ -n "$warn" ] && echo "==> cgal (no library)"
return 2 unset library
flavour="header" # Header only
} }
# ---------------------------------- # ----------------------------------
@ -132,13 +109,59 @@ have_cgal()
# OK # OK
export HAVE_CGAL=true export HAVE_CGAL=true
export CGAL_FLAVOUR="${flavour:-library}"
export CGAL_ARCH_PATH="$prefix" export CGAL_ARCH_PATH="$prefix"
export CGAL_INC_DIR="${header%/*}" # Basename export CGAL_INC_DIR="${header%/*}" # Basename
export CGAL_LIB_DIR="${library%/*}" # 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
# Need boost for cgal
search_boost "$BOOST_ARCH_PATH"
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 no_cgal
# Test/query # Test/query

View File

@ -21,7 +21,7 @@
# CMAKE_ARCH_PATH that may specify a possible cmake/bin directory. # CMAKE_ARCH_PATH that may specify a possible cmake/bin directory.
# #
# Functions provided # Functions provided
# have_cmake, no_cmake, echo_cmake # have_cmake, no_cmake, echo_cmake, search_cmake
# #
# Variables set on success # Variables set on success
# HAVE_CMAKE # HAVE_CMAKE
@ -32,10 +32,10 @@
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_cmake() 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. # or just use what is found on the path.
# #
# On success: return the resolved value as output. # On success: return the resolved value as output.
# On failure: set executable as "false" and return with 1 # On failure: set executable as "false" and return with 1
# search_cmake()
have_cmake()
{ {
# Treat previous queries as "sticky" # Treat previous queries as "sticky"
if [ -n "$CMAKE_EXE" ] if [ -n "$CMAKE_EXE" ]
@ -63,32 +64,19 @@ have_cmake()
return $? return $?
fi fi
local config="config.sh/cmake" local prefix="$1"
unset CMAKE_ARCH_PATH local candidate foundExe
local settings candidate foundExe
if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config" 2>/dev/null)" candidate="$prefix"/bin/cmake
then
. "$settings"
if [ -d "$CMAKE_ARCH_PATH" ] if [ -d "$prefix" ] && [ -f "$candidate" ] && [ -x "$candidate" ]
then
candidate="$CMAKE_ARCH_PATH"/bin/cmake
if [ -f "$candidate" ] && [ -x "$candidate" ]
then then
foundExe="$candidate" foundExe="$candidate"
fi elif candidate="$(command -v cmake 2>/dev/null)"
fi
fi
if [ -z "$foundExe" ]
then
# Default: resolve from PATH
if candidate="$(command -v cmake 2>/dev/null)"
then then
# Resolved from PATH
foundExe="$candidate" foundExe="$candidate"
fi fi
fi
if [ -n "$foundExe" ] if [ -n "$foundExe" ]
then then
@ -103,9 +91,33 @@ have_cmake()
} }
# Reset variables # Output as per search_* function
no_cmake 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 # Test/query
case "$1" in case "$1" in
@ -118,5 +130,4 @@ case "$1" in
;; ;;
esac esac
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -21,7 +21,7 @@
# or config.sh/FFTW (when FFTW_ARCH_PATH is empty) # or config.sh/FFTW (when FFTW_ARCH_PATH is empty)
# #
# Functions provided # Functions provided
# have_fftw, no_fftw, echo_fftw, query_fftw # have_fftw, no_fftw, echo_fftw, query_fftw, search_fftw
# #
# Variables set on success # Variables set on success
# HAVE_FFTW # HAVE_FFTW
@ -34,7 +34,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_fftw() no_fftw()
{ {
unset HAVE_FFTW FFTW_INC_DIR FFTW_LIB_DIR 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 # On success, return 0 and export variables
# -> HAVE_FFTW, FFTW_INC_DIR, FFTW_LIB_DIR # -> HAVE_FFTW, FFTW_INC_DIR, FFTW_LIB_DIR
have_fftw() search_fftw()
{ {
local warn # warn="==> skip 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 incName="fftw3.h"
local libName="libfftw3" local libName="libfftw3"
local prefix="${1:-system}"
local header library 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 no_fftw
# Test/query # Test/query

View File

@ -21,7 +21,7 @@
# or config.sh/hypre # or config.sh/hypre
# #
# Functions provided # Functions provided
# have_hypre, no_hypre, echo_hypre, query_hypre # have_hypre, no_hypre, echo_hypre, query_hypre, search_hypre
# #
# Variables set on success # Variables set on success
# HAVE_HYPRE # HAVE_HYPRE
@ -34,7 +34,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_hypre() no_hypre()
{ {
unset HAVE_HYPRE HYPRE_INC_DIR HYPRE_LIB_DIR unset HAVE_HYPRE HYPRE_INC_DIR HYPRE_LIB_DIR
@ -51,47 +51,18 @@ echo_hypre()
} }
# Query settings # Search
query_hypre() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_HYPRE, HYPRE_INC_DIR, HYPRE_LIB_DIR # -> HAVE_HYPRE, HYPRE_INC_DIR, HYPRE_LIB_DIR
have_hypre() search_hypre()
{ {
local warn="==> skip 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 incName="HYPRE.h"
local libName="libHYPRE" local libName="libHYPRE"
local prefix="${1:-system}"
local header library 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 no_hypre
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# config.sh/kahip # config.sh/kahip
# #
# Functions provided # Functions provided
# have_kahip, no_kahip, echo_kahip, query_kahip # have_kahip, no_kahip, echo_kahip, query_kahip, search_kahip
# #
# Variables set on success # Variables set on success
# HAVE_KAHIP # HAVE_KAHIP
@ -33,7 +33,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_kahip() no_kahip()
{ {
unset HAVE_KAHIP KAHIP_ARCH_PATH KAHIP_INC_DIR KAHIP_LIB_DIR unset HAVE_KAHIP KAHIP_ARCH_PATH KAHIP_INC_DIR KAHIP_LIB_DIR
@ -51,43 +51,18 @@ echo_kahip()
} }
# Query settings # Search
query_kahip() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_KAHIP, KAHIP_ARCH_PATH, KAHIP_INC_DIR, KAHIP_LIB_DIR # -> HAVE_KAHIP, KAHIP_ARCH_PATH, KAHIP_INC_DIR, KAHIP_LIB_DIR
have_kahip() search_kahip()
{ {
local warn="==> skip 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 incName="kaHIP_interface.h"
local libName="libkahip" local libName="libkahip"
local prefix="${1:-system}"
local header library 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). # 64-bit conversion (mesh size).
echo "kahip (label=32) - $prefix" 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 no_kahip
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# config.sh/metis # config.sh/metis
# #
# Functions provided # Functions provided
# have_metis, no_metis, echo_metis, query_metis # have_metis, no_metis, echo_metis, query_metis, search_metis
# #
# Variables set on success # Variables set on success
# HAVE_METIS # HAVE_METIS
@ -33,7 +33,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_metis() no_metis()
{ {
unset HAVE_METIS METIS_ARCH_PATH METIS_INC_DIR METIS_LIB_DIR unset HAVE_METIS METIS_ARCH_PATH METIS_INC_DIR METIS_LIB_DIR
@ -51,43 +51,18 @@ echo_metis()
} }
# Query settings # Search
query_metis() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_METIS, METIS_ARCH_PATH, METIS_INC_DIR, METIS_LIB_DIR # -> HAVE_METIS, METIS_ARCH_PATH, METIS_INC_DIR, METIS_LIB_DIR
have_metis() search_metis()
{ {
local warn="==> skip 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 incName="metis.h"
local libName="libmetis" local libName="libmetis"
local prefix="${1:-system}"
local header library 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 # Reset variables
no_metis no_metis

View File

@ -20,7 +20,7 @@
# config.sh/mgridgen # config.sh/mgridgen
# #
# Functions provided # Functions provided
# have_mgridgen, no_mgridgen, echo_mgridgen, query_mgridgen # have_mgridgen, no_mgridgen, echo_mgridgen, query_mgridgen, search_mgridgen
# #
# Variables set on success # Variables set on success
# HAVE_MGRIDGEN # HAVE_MGRIDGEN
@ -33,7 +33,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_mgridgen() no_mgridgen()
{ {
unset HAVE_MGRIDGEN MGRIDGEN_ARCH_PATH MGRIDGEN_INC_DIR MGRIDGEN_LIB_DIR unset HAVE_MGRIDGEN MGRIDGEN_ARCH_PATH MGRIDGEN_INC_DIR MGRIDGEN_LIB_DIR
@ -51,44 +51,19 @@ echo_mgridgen()
} }
# Query settings # Search
query_mgridgen() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_MGRIDGEN, MGRIDGEN_ARCH_PATH, MGRIDGEN_INC_DIR, MGRIDGEN_LIB_DIR # -> HAVE_MGRIDGEN, MGRIDGEN_ARCH_PATH, MGRIDGEN_INC_DIR, MGRIDGEN_LIB_DIR
have_mgridgen() search_mgridgen()
{ {
local warn="==> skip 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 incName="mgridgen.h"
local libName="libMGridGen" local libName="libMGridGen"
local libName2="libmgrid" local libName2="libmgrid"
local prefix="${1:-system}"
local header library 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 no_mgridgen
# Test/query # Test/query

View File

@ -21,7 +21,8 @@
# or config.sh/petsc # or config.sh/petsc
# #
# Functions provided # 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 # Variables set on success
# HAVE_PETSC # HAVE_PETSC
@ -34,7 +35,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_petsc() no_petsc()
{ {
unset HAVE_PETSC PETSC_INC_DIR PETSC_LIB_DIR 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 # On success, return 0 and export variables
# -> HAVE_PETSC, PETSC_INC_DIR, PETSC_LIB_DIR # -> HAVE_PETSC, PETSC_INC_DIR, PETSC_LIB_DIR
have_petsc() #
# $1 = prefix (eg, PETSC_ARCH_PATH)
search_petsc()
{ {
local warn="==> skip 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 incName="petsc.h"
local libName="libpetsc" local libName="libpetsc"
local pkgName="PETSc" local pkgName="PETSc"
local prefix="${1:-system}"
local header library 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 no_petsc
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# None # None
# #
# Functions provided # Functions provided
# have_readline, no_readline, echo_readline # have_readline, no_readline, echo_readline, search_readline
# #
# Variables set on success # Variables set on success
# HAVE_LIBREADLINE - as per GNU autoconf # HAVE_LIBREADLINE - as per GNU autoconf
@ -32,7 +32,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_readline() no_readline()
{ {
unset HAVE_LIBREADLINE READLINE_INC_DIR READLINE_LIB_DIR 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 # On success, return 0 and export variables
# -> HAVE_LIBREADLINE, READLINE_INC_DIR, READLINE_LIB_DIR # -> HAVE_LIBREADLINE, READLINE_INC_DIR, READLINE_LIB_DIR
have_readline() search_readline()
{ {
local warn # warn="==> skip readline" local warn # warn="==> skip readline"
local settings
# Expected location, include/library names
local prefix=system
local incName="readline/readline.h" local incName="readline/readline.h"
local libName="libreadline" local libName="libreadline"
local prefix="${1:-system}"
local header library local header library
# ---------------------------------- # ----------------------------------
@ -104,7 +105,16 @@ have_readline()
} }
# Reset variables # Output as per search_* function
have_readline()
{
search_readline system
}
#------------------------------------------------------------------------------
# Reset
no_readline no_readline
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# config.sh/scotch # config.sh/scotch
# #
# Functions provided # Functions provided
# have_scotch, no_scotch, echo_scotch, query_scotch # have_ptscotch, search_ptscotch
# #
# Variables set on success # Variables set on success
# HAVE_SCOTCH # HAVE_SCOTCH
@ -28,12 +28,21 @@
# SCOTCH_INC_DIR # SCOTCH_INC_DIR
# SCOTCH_LIB_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 . ${WM_PROJECT_DIR:?}/wmake/scripts/sysFunctions # General system functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_scotch() no_scotch()
{ {
unset HAVE_SCOTCH SCOTCH_ARCH_PATH SCOTCH_INC_DIR SCOTCH_LIB_DIR unset HAVE_SCOTCH SCOTCH_ARCH_PATH SCOTCH_INC_DIR SCOTCH_LIB_DIR
@ -57,44 +66,19 @@ echo_scotch()
} }
# Query settings # Search
query_scotch() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_SCOTCH, SCOTCH_ARCH_PATH, SCOTCH_INC_DIR, SCOTCH_LIB_DIR # -> HAVE_SCOTCH, SCOTCH_ARCH_PATH, SCOTCH_INC_DIR, SCOTCH_LIB_DIR
have_scotch() search_scotch()
{ {
local warn="==> skip 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 incName="scotch.h"
local libName="libscotch" local libName="libscotch"
local localDir="scotch-int$WM_LABEL_SIZE" local localDir="scotch-int$WM_LABEL_SIZE"
local prefix="${1:-system}"
local header library 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 # On success, return 0 and export variables
# -> HAVE_PTSCOTCH, PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR # -> HAVE_PTSCOTCH, PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR
have_ptscotch() search_ptscotch()
{ {
local warn="==> skip 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 incName="ptscotch.h"
local libName="libptscotch" local libName="libptscotch"
local localDir="scotch-int$WM_LABEL_SIZE" local localDir="scotch-int$WM_LABEL_SIZE"
local prefix="${1:-system}"
local header library 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 no_scotch
# Test/query # Test/query

View File

@ -20,7 +20,7 @@
# config.sh/zoltan # config.sh/zoltan
# #
# Functions provided # Functions provided
# have_zoltan, no_zoltan, echo_zoltan, query_zoltan # have_zoltan, no_zoltan, echo_zoltan, query_zoltan, search_zoltan
# #
# Variables set on success # Variables set on success
# HAVE_ZOLTAN # HAVE_ZOLTAN
@ -33,7 +33,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Reset variables # Reset
no_zoltan() no_zoltan()
{ {
unset HAVE_ZOLTAN ZOLTAN_INC_DIR ZOLTAN_LIB_DIR unset HAVE_ZOLTAN ZOLTAN_INC_DIR ZOLTAN_LIB_DIR
@ -50,43 +50,18 @@ echo_zoltan()
} }
# Query settings # Search
query_zoltan() # $1 : prefix (*_ARCH_PATH, system, ...)
{ #
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
}
# On success, return 0 and export variables # On success, return 0 and export variables
# -> HAVE_ZOLTAN, ZOLTAN_INC_DIR, ZOLTAN_LIB_DIR # -> HAVE_ZOLTAN, ZOLTAN_INC_DIR, ZOLTAN_LIB_DIR
have_zoltan() search_zoltan()
{ {
local warn # warn="==> skip 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 incName="zoltan.h"
local libName="libzoltan" local libName="libzoltan"
local prefix="${1:-system}"
local header library 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 no_zoltan
# Test/query # Test/query