diff --git a/Allwmake b/Allwmake index 6136570be0..097099bd4f 100755 --- a/Allwmake +++ b/Allwmake @@ -73,10 +73,10 @@ echo applications/Allwmake $targetType $* # Additional components/modules -if [ "$FOAM_MODULE_PREFIX" = false ] +if [ "$FOAM_MODULE_PREFIX" = false ] || [ "$FOAM_MODULE_PREFIX" = none ] then echo "========================================" - echo "OpenFOAM modules disabled (prefix=false)" + echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})" echo elif [ -d "$WM_PROJECT_DIR/modules" ] then diff --git a/modules/Allwmake b/modules/Allwmake index b6bf9301a5..a5a481bffd 100755 --- a/modules/Allwmake +++ b/modules/Allwmake @@ -12,7 +12,13 @@ targetType=libso export FOAM_MODULE_PREFIX echo "========================================" -echo "Compile OpenFOAM modules" +if [ "$FOAM_MODULE_PREFIX" = false ] || [ "$FOAM_MODULE_PREFIX" = none ] +then + echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})" + echo + exit 0 +fi + echo "prefix = $FOAM_MODULE_PREFIX" echo echo " ignoring possible compilation errors" diff --git a/wmake/scripts/AllwmakeParseArguments b/wmake/scripts/AllwmakeParseArguments index 9eeeba595b..f679cf0c04 100644 --- a/wmake/scripts/AllwmakeParseArguments +++ b/wmake/scripts/AllwmakeParseArguments @@ -111,8 +111,8 @@ do # Prefix: openfoam (other) (o | openfoam) FOAM_MODULE_PREFIX="${FOAM_LIBBIN%/*}" ;; - # Prefix: false (ie, 'disabled') - (false) FOAM_MODULE_PREFIX=false ;; + # Prefix: false | none (ie, 'disabled') + (false | none) FOAM_MODULE_PREFIX=false ;; # Prefix: directory (absolute or relative) (*) diff --git a/wmake/scripts/wmakeFunctions b/wmake/scripts/wmakeFunctions index 89134c835a..e84f1da118 100644 --- a/wmake/scripts/wmakeFunctions +++ b/wmake/scripts/wmakeFunctions @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2015-2016 OpenFOAM Foundation -# Copyright (C) 2018-2020 OpenCFD Ltd. +# Copyright (C) 2018-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -55,6 +55,43 @@ checkEnv() } +# Set FOAM_MODULE_PREFIX according to +# - absolute/relative path +# - predefined type (u,user | g,group | o,openfoam) +setModulePrefix() +{ + export FOAM_MODULE_PREFIX="$1" + case "$FOAM_MODULE_PREFIX" in + # Prefix: user + (u | user) FOAM_MODULE_PREFIX="${FOAM_USER_LIBBIN%/*}" ;; + + # Prefix: group + (g | group) FOAM_MODULE_PREFIX="${FOAM_SITE_LIBBIN%/*}" ;; + + # Prefix: openfoam (other) + (o | openfoam) FOAM_MODULE_PREFIX="${FOAM_LIBBIN%/*}" ;; + + # Prefix: false | none (ie, 'disabled') + (false | none) FOAM_MODULE_PREFIX=false ;; + + # Prefix: directory (absolute or relative) + (*) + : "${FOAM_MODULE_PREFIX:=/usr/local}" # Fallback (autoconf-like) + + # Require absolute path + [ "${FOAM_MODULE_PREFIX#/}" != "${FOAM_MODULE_PREFIX}" ] || \ + FOAM_MODULE_PREFIX="${PWD}/${FOAM_MODULE_PREFIX}" + ;; + esac + + # Avoid potential conflicts + unset FOAM_MODULE_APPBIN FOAM_MODULE_LIBBIN + echo "Module prefix = ${FOAM_MODULE_PREFIX:-[]}" 1>&2 +} + + +#------------------------------------------------------------------------------ + # Return the absolute (physical) path for a directory or # for a file's parent directory # expandPath dirName