- generalize some of the library extensions (.so vs .dylib). Provide as wmake 'sysFunctions' - added note about unsupported/incomplete system support - centralize detection of ThirdParty packages into wmake/ subdirectory by providing a series of scripts in the spirit of GNU autoconfig. For example, have_boost, have_readline, have_scotch, ... Each of the `have_<package>` scripts will generally provide the following type of functions: have_<package> # detection no_<package> # reset echo_<package> # echoing and the following type of variables: HAVE_<package> # unset or 'true' <package>_ARCH_PATH # root for <package> <package>_INC_DIR # include directory for <package> <package>_LIB_DIR # library directory for <package> This simplifies the calling scripts: if have_metis then wmake metisDecomp fi As well as reducing clutter in the corresponding Make/options: EXE_INC = \ -I$(METIS_INC_DIR) \ -I../decompositionMethods/lnInclude LIB_LIBS = \ -L$(METIS_LIB_DIR) -lmetis Any additional modifications (platform-specific or for an external build system) can now be made centrally.
111 lines
2.4 KiB
Bash
111 lines
2.4 KiB
Bash
#----------------------------------*-sh-*--------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of OpenFOAM, licensed under GNU General Public License
|
|
# <http://www.gnu.org/licenses/>.
|
|
#
|
|
# Script
|
|
# sysFunctions
|
|
#
|
|
# Description
|
|
# General system helper functions
|
|
#
|
|
# Functions provided
|
|
# isDarwin
|
|
# isNone
|
|
# isSystem
|
|
# isAbsdir, hasAbsdir
|
|
# findFirstFile
|
|
#
|
|
# Variables provided
|
|
# extLiba
|
|
# extLibso
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
if [ -z "$WMAKE_SCRIPTS_SYSFUNCTIONS" ]
|
|
then
|
|
# Load once, but do not rely on this variable elsewhere
|
|
WMAKE_SCRIPTS_SYSFUNCTIONS=loaded
|
|
|
|
# Static library extension. Default=.a
|
|
extLiba=".a"
|
|
|
|
# Shared library extension. Default=.so
|
|
case "$(uname -s 2>/dev/null)" in
|
|
Darwin)
|
|
extLibso=".dylib"
|
|
;;
|
|
*)
|
|
extLibso=".so"
|
|
;;
|
|
esac
|
|
|
|
|
|
# True if OS is Darwin.
|
|
# Uses libso extension to cache the value
|
|
# (instead of calling 'uname -s' each time)
|
|
isDarwin()
|
|
{
|
|
test "$extLibso" = ".dylib"
|
|
}
|
|
|
|
|
|
# True if '$1' begins with '/'
|
|
isAbsdir()
|
|
{
|
|
test "$1" = "/${1#/}"
|
|
}
|
|
|
|
|
|
# True if '$1' begins with '/' and also exists as a directory
|
|
hasAbsdir()
|
|
{
|
|
test "$1" = "/${1#/}" -a -d "$1"
|
|
}
|
|
|
|
|
|
# True if '$1' is an empty string or matches "*-none".
|
|
# Eg,
|
|
# if isNone "$KAHIP_ARCH_PATH" ...
|
|
isNone()
|
|
{
|
|
test -z "$1" -o "${1##*-}" = none
|
|
}
|
|
|
|
|
|
# True if '$1' matches "*-system"
|
|
# Eg,
|
|
# if isSystem "$BOOST_ARCH_PATH"
|
|
isSystem()
|
|
{
|
|
test "${1##*-}" = system
|
|
}
|
|
|
|
|
|
# Check for the existence of any of the files
|
|
# On success, echoes the file found and returns 0, otherwise returns 2
|
|
findFirstFile()
|
|
{
|
|
local file
|
|
for file
|
|
do
|
|
if [ -f "$file" -a -r "$file" ]
|
|
then
|
|
echo "$file"
|
|
return 0
|
|
fi
|
|
done
|
|
return 2
|
|
}
|
|
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|