diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi index 4942b58efd..48126fde7a 100644 --- a/etc/config.csh/mpi +++ b/etc/config.csh/mpi @@ -379,29 +379,18 @@ endsw #------------------------------------------------------------------------------ -# Final -# A real (non-dummy) MPI -if ( "$FOAM_MPI" != dummy ) then - if ($?FOAM_VERBOSE && $?prompt) then - echo "Using mpi type : $WM_MPLIB" - echo " FOAM_MPI : $FOAM_MPI" - if ( "${MPI_ARCH_PATH}" == "" ) then - echo " prefix : unset" - else - echo " prefix : $MPI_ARCH_PATH" - endif +# Report +if ($?FOAM_VERBOSE && $?prompt) then + echo "Using mpi type : $WM_MPLIB" + echo " FOAM_MPI : $FOAM_MPI" + if ( "${MPI_ARCH_PATH}" == "" ) then + echo " prefix : unset" + else + echo " prefix : $MPI_ARCH_PATH" endif - - # OpenFOAM library interface to (non-dummy) MPI - if ( $?FOAM_EXT_LIBBIN ) then - # External libraries (can be unset) - _foamAddLib "${FOAM_EXT_LIBBIN}/${FOAM_MPI}" - endif - _foamAddLib "${FOAM_LIBBIN}/${FOAM_MPI}" endif - # Cleanup unset _foamMpiPrefixDir _foamMpiWarning _foamMpiVersion diff --git a/etc/config.csh/settings b/etc/config.csh/settings index 76a30a8571..4919f0092a 100644 --- a/etc/config.csh/settings +++ b/etc/config.csh/settings @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2020 OpenCFD Ltd. +# Copyright (C) 2016-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -177,14 +177,10 @@ _foamAddLib "$FOAM_LIBBIN/dummy" # External (ThirdParty) libraries. Also allowed to be unset if ( -d "$WM_THIRD_PARTY_DIR" ) then setenv FOAM_EXT_LIBBIN "$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib" - _foamAddLib "$FOAM_EXT_LIBBIN" else unsetenv FOAM_EXT_LIBBIN endif -# OpenFOAM libraries (user, group, standard) -_foamAddLib "${FOAM_USER_LIBBIN}:${FOAM_SITE_LIBBIN}:${FOAM_LIBBIN}" - #------------------------------------------------------------------------------ diff --git a/etc/config.csh/setup b/etc/config.csh/setup index a852c9461d..49d5d4ad5d 100644 --- a/etc/config.csh/setup +++ b/etc/config.csh/setup @@ -133,6 +133,9 @@ while ( $#argv > 0 ) shift end + +#---------------------------------------------------------------------------- + # Verify FOAM_CONFIG_ETC (from calling environment or from prefs) if ( $?FOAM_CONFIG_ETC ) then if ( "$FOAM_CONFIG_ETC" == "etc" || "$FOAM_CONFIG_ETC" == "$WM_PROJECT_DIR/etc" ) then @@ -143,8 +146,8 @@ endif # Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Prevent local variables from shadowing setenv variables +# - avoid local variables shadowing setenv variables + unset PATH MANPATH LD_LIBRARY_PATH DYLD_LIBRARY_PATH if (! $?MANPATH ) setenv MANPATH if (! $?LD_LIBRARY_PATH ) setenv LD_LIBRARY_PATH @@ -153,12 +156,11 @@ _foamClean PATH "$foamOldDirs" _foamClean MANPATH "$foamOldDirs" _foamClean LD_LIBRARY_PATH "$foamOldDirs" -# Setup for OpenFOAM compilation etc -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -_foamEtc -config settings -# Setup for third-party packages -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#------------------------------------------------------------------------------ +# Base setup (OpenFOAM compilation), MPI and third-party packages + +_foamEtc -config settings _foamEtc -config mpi _foamEtc -config paraview -- "$FOAM_SETTINGS" # Pass through for evaluation _foamEtc -config vtk @@ -166,6 +168,30 @@ _foamEtc -config adios2 _foamEtc -config CGAL _foamEtc -config FFTW +if (! $?FOAM_MPI ) then + setenv FOAM_MPI dummy # Fallback value +endif + +# Finalize library paths +# ~~~~~~~~~~~~~~~~~~~~~~ + +# ThirdParty serial and mpi-specific libraries +if ( $?FOAM_EXT_LIBBIN ) then + _foamAddLib "${FOAM_EXT_LIBBIN}" + if ( "$FOAM_MPI" != dummy ) then + _foamAddLib "${FOAM_EXT_LIBBIN}/${FOAM_MPI}" + endif +endif + +# OpenFOAM serial and mpi-specific libraries +_foamAddLib "$FOAM_LIBBIN" +if ( "$FOAM_MPI" != dummy ) then + _foamAddLib "${FOAM_LIBBIN}/${FOAM_MPI}" +endif + +# OpenFOAM user, group libraries +_foamAddLib "${FOAM_USER_LIBBIN}:${FOAM_SITE_LIBBIN}" + if ( -d "$WM_PROJECT_DIR/doc/man1" ) then _foamAddMan "$WM_PROJECT_DIR/doc" endif @@ -177,8 +203,9 @@ if ($?prompt) then endif -# Clean environment paths again. Only remove duplicates -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#------------------------------------------------------------------------------ + +# Remove duplicates from environment paths _foamClean PATH _foamClean MANPATH diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi index 90885f6423..ed38419271 100644 --- a/etc/config.sh/mpi +++ b/etc/config.sh/mpi @@ -434,30 +434,14 @@ esac # Ensure MPI_ARCH_PATH is marked for export [ -n "$MPI_ARCH_PATH" ] && export MPI_ARCH_PATH - -# A real (non-dummy) MPI -if [ "$FOAM_MPI" != dummy ] +# Report +if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ] then - if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ] - then - echo "Using mpi type : $WM_MPLIB" 1>&2 - echo " FOAM_MPI : $FOAM_MPI" 1>&2 - echo " prefix : ${MPI_ARCH_PATH:-unset}" 1>&2 - fi - - # OpenFOAM library interface to (non-dummy) MPI - if command -v _foamAddLib >/dev/null - then - if [ -n "$FOAM_EXT_LIBBIN" ] - then - # External libraries (can be unset) - _foamAddLib "$FOAM_EXT_LIBBIN/$FOAM_MPI" - fi - _foamAddLib "$FOAM_LIBBIN/$FOAM_MPI" - fi + echo "Using mpi type : $WM_MPLIB" 1>&2 + echo " FOAM_MPI : $FOAM_MPI" 1>&2 + echo " prefix : ${MPI_ARCH_PATH:-[unset]}" 1>&2 fi - # Cleanup unset _foamMpiPrefixDir _foamMpiVersion _foamMpiWarning diff --git a/etc/config.sh/settings b/etc/config.sh/settings index f3a0d11137..7a69e91e52 100644 --- a/etc/config.sh/settings +++ b/etc/config.sh/settings @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2020 OpenCFD Ltd. +# Copyright (C) 2016-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -178,14 +178,10 @@ _foamAddLib "$FOAM_LIBBIN/dummy" if [ -d "$WM_THIRD_PARTY_DIR" ] then export FOAM_EXT_LIBBIN="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib" - _foamAddLib "$FOAM_EXT_LIBBIN" else unset FOAM_EXT_LIBBIN fi -# OpenFOAM libraries (user, group, standard) -_foamAddLib "$FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN:$FOAM_LIBBIN" - #------------------------------------------------------------------------------ diff --git a/etc/config.sh/setup b/etc/config.sh/setup index a5440df6f4..36ef8d63e9 100644 --- a/etc/config.sh/setup +++ b/etc/config.sh/setup @@ -181,19 +181,17 @@ else fi -# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Clean standard environment variables + export PATH MANPATH LD_LIBRARY_PATH _foamClean PATH "$foamOldDirs" _foamClean MANPATH "$foamOldDirs" _foamClean LD_LIBRARY_PATH "$foamOldDirs" -# Setup for OpenFOAM compilation etc -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -_foamEtc -config settings +#------------------------------------------------------------------------------ +# Base setup (OpenFOAM compilation), MPI and third-party packages -# Setup for third-party packages -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +_foamEtc -config settings _foamEtc -config mpi _foamEtc -config paraview -- "$@" # Pass through for evaluation _foamEtc -config vtk @@ -202,6 +200,30 @@ _foamEtc -config CGAL _foamEtc -config scotch _foamEtc -config FFTW + +# Finalize library paths +# ~~~~~~~~~~~~~~~~~~~~~~ + +# ThirdParty serial and mpi-specific libraries +if [ -n "$FOAM_EXT_LIBBIN" ] +then + _foamAddLib "$FOAM_EXT_LIBBIN" + if [ "${FOAM_MPI:-dummy}" != dummy ] + then + _foamAddLib "$FOAM_EXT_LIBBIN/$FOAM_MPI" + fi +fi + +# OpenFOAM serial and mpi-specific libraries +_foamAddLib "$FOAM_LIBBIN" +if [ "${FOAM_MPI:-dummy}" != dummy ] +then + _foamAddLib "$FOAM_LIBBIN/$FOAM_MPI" +fi + +# OpenFOAM user, group libraries +_foamAddLib "$FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN" + if [ -d "$WM_PROJECT_DIR/doc/man1" ] then _foamAddMan "$WM_PROJECT_DIR/doc" @@ -215,8 +237,9 @@ then fi -# Clean environment paths again. Only remove duplicates -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#------------------------------------------------------------------------------ + +# Remove duplicates from environment paths export PATH MANPATH LD_LIBRARY_PATH _foamClean PATH @@ -229,7 +252,6 @@ then MANPATH="${MANPATH}:" fi - # Cleanup temporary information # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~