- migrate to c++14 for most compilers *except* gcc. There are still many systems in use with gcc-4.8.5, which does not support c++14. - initial rules for nvidia compilers (pgi is will soon be defunct). Not fully tested... CONFIG: provide fallback value for the user directory name - in containers may have an unset USER env variable. Default to 'user' to prevent ugly looking directory names.
109 lines
3.4 KiB
Bash
Executable File
109 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Run from OPENFOAM top-level directory only
|
|
cd "${0%/*}" || exit
|
|
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
|
|
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
|
|
echo " Check your OpenFOAM environment and installation"
|
|
exit 1
|
|
}
|
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
|
|
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
|
|
echo "Argument parse error";
|
|
else
|
|
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
|
|
echo " Check your OpenFOAM environment and installation"
|
|
exit 1
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Preamble. Report tools or at least the mpirun location
|
|
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
|
|
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
|
|
else
|
|
echo "mpirun=$(command -v mpirun || true)"
|
|
fi
|
|
echo
|
|
# Report compiler information. First non-blank line from --version output
|
|
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
|
|
if [ -x "$compiler" ]
|
|
then
|
|
echo "compiler=$compiler"
|
|
"$compiler" --version 2>/dev/null | sed -e '/^$/d;q'
|
|
else
|
|
echo "compiler=unknown"
|
|
fi
|
|
|
|
echo
|
|
echo "========================================"
|
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
|
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
|
|
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
|
echo "========================================"
|
|
echo
|
|
|
|
# Compile tools for wmake
|
|
"${WM_DIR:-wmake}"/src/Allmake
|
|
|
|
# Compile ThirdParty libraries and applications
|
|
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
|
then
|
|
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
|
then
|
|
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
|
|
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
|
|
fi
|
|
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
|
|
then "$WM_THIRD_PARTY_DIR"/Allwmake
|
|
else
|
|
echo "Skip ThirdParty (no Allwmake* files)"
|
|
fi
|
|
else
|
|
echo "Skip ThirdParty (no directory)"
|
|
fi
|
|
|
|
echo "========================================"
|
|
echo "Compile OpenFOAM libraries"
|
|
echo
|
|
src/Allwmake $targetType $*
|
|
|
|
echo "========================================"
|
|
echo "Compile OpenFOAM applications"
|
|
echo
|
|
applications/Allwmake $targetType $*
|
|
|
|
# Additional components/modules
|
|
if [ "$FOAM_MODULE_PREFIX" = false ] || [ "$FOAM_MODULE_PREFIX" = none ]
|
|
then
|
|
echo "========================================"
|
|
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
|
|
echo
|
|
elif [ -d "$WM_PROJECT_DIR/modules" ]
|
|
then
|
|
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
|
|
fi
|
|
|
|
# Count files in given directory. Ignore "Test-*" binaries.
|
|
_foamCountDirEntries()
|
|
{
|
|
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
|
|
sed -e '\@/Test-@d' | wc -l
|
|
}
|
|
|
|
# Some summary information
|
|
echo
|
|
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
|
|
echo "========================================"
|
|
echo " ${WM_PROJECT_DIR##*/}"
|
|
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
|
echo
|
|
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
|
|
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
|
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
|
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
|
echo
|
|
echo "========================================"
|
|
|
|
#------------------------------------------------------------------------------
|