2014-02-17 15:05:12 +00:00
|
|
|
#!/bin/bash
|
2010-05-12 13:27:55 +00:00
|
|
|
#----------------------------------*-sh-*--------------------------------------
|
|
|
|
# ========= |
|
2013-12-11 16:09:41 +00:00
|
|
|
# \\ / F ield | foam-extend: Open Source CFD
|
2018-05-29 07:35:20 +00:00
|
|
|
# \\ / O peration | Version: 4.1
|
2015-05-17 13:32:07 +00:00
|
|
|
# \\ / A nd | Web: http://www.foam-extend.org
|
|
|
|
# \\/ M anipulation | For copyright notice see file Copyright
|
2010-05-12 13:27:55 +00:00
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
# License
|
2013-12-11 16:09:41 +00:00
|
|
|
# This file is part of foam-extend.
|
2010-05-12 13:27:55 +00:00
|
|
|
#
|
2013-12-11 16:09:41 +00:00
|
|
|
# foam-extend is free software: you can redistribute it and/or modify it
|
2010-05-12 13:27:55 +00:00
|
|
|
# under the terms of the GNU General Public License as published by the
|
2013-12-11 16:09:41 +00:00
|
|
|
# Free Software Foundation, either version 3 of the License, or (at your
|
2010-05-12 13:27:55 +00:00
|
|
|
# option) any later version.
|
|
|
|
#
|
2013-12-11 16:09:41 +00:00
|
|
|
# foam-extend is distributed in the hope that it will be useful, but
|
|
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# General Public License for more details.
|
2010-05-12 13:27:55 +00:00
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
2013-12-11 16:09:41 +00:00
|
|
|
# along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
|
2010-05-12 13:27:55 +00:00
|
|
|
#
|
|
|
|
# Script
|
|
|
|
# etc/bashrc
|
|
|
|
#
|
|
|
|
# Description
|
2015-04-23 12:51:07 +00:00
|
|
|
# Startup file for FOAM
|
2010-05-12 13:27:55 +00:00
|
|
|
# Sourced from ~/.profile or ~/.bashrc
|
|
|
|
# Should be usable by any POSIX-compliant shell (eg, ksh)
|
|
|
|
#
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
2013-12-11 16:09:41 +00:00
|
|
|
export WM_PROJECT=foam
|
|
|
|
export WM_FORK=extend
|
2019-10-17 17:25:46 +00:00
|
|
|
export WM_PROJECT_VERSION=4.1
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
# helps to easily write #ifdefs to detect a dev-version
|
|
|
|
export FOAM_DEV=1
|
|
|
|
|
2010-08-30 17:57:22 +00:00
|
|
|
###############################################################################
|
2010-05-17 13:51:21 +00:00
|
|
|
# USER EDITABLE PART
|
|
|
|
#
|
|
|
|
# either set $FOAM_INST_DIR before sourcing this file or set
|
2015-04-23 12:51:07 +00:00
|
|
|
# $foamInstall below to where FOAM is installed
|
2010-05-12 13:27:55 +00:00
|
|
|
#
|
|
|
|
# Location of FOAM installation
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2018-02-20 18:04:17 +00:00
|
|
|
foamInstall=$HOME/$WM_PROJECT
|
2010-05-12 13:27:55 +00:00
|
|
|
# foamInstall=~$WM_PROJECT
|
|
|
|
# foamInstall=/usr/local/$WM_PROJECT
|
|
|
|
# foamInstall=/opt/$WM_PROJECT
|
2010-11-29 16:14:51 +00:00
|
|
|
# foamInstall=/usr/lib
|
2010-05-17 13:51:21 +00:00
|
|
|
#
|
|
|
|
# END OF (NORMAL) USER EDITABLE PART
|
|
|
|
################################################################################
|
2010-05-12 13:27:55 +00:00
|
|
|
|
2015-08-04 12:39:06 +00:00
|
|
|
# Set $USER if it has not been set (eg. on Windows/MSYS systems)
|
|
|
|
if [ -z $USER ]
|
|
|
|
then
|
|
|
|
export USER=`whoami`
|
|
|
|
fi
|
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
# note the location for later use (eg, in job scripts)
|
2010-05-12 13:27:55 +00:00
|
|
|
: ${FOAM_INST_DIR:=$foamInstall}; export FOAM_INST_DIR
|
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
# The old dirs to be cleaned from the various environment variables
|
|
|
|
# - remove anything under top-level directory.
|
|
|
|
# NB: the WM_PROJECT_INST_DIR might not be identical between versions
|
|
|
|
foamOldDirs="$FOAM_INST_DIR $HOME/$WM_PROJECT/$USER"
|
|
|
|
if [ "$WM_PROJECT_INST_DIR" != "$FOAM_INST_DIR" ]
|
|
|
|
then
|
|
|
|
foamOldDirs="$WM_PROJECT_INST_DIR $foamOldDirs"
|
|
|
|
fi
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
# Location of site/user files
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
export WM_PROJECT_INST_DIR=$FOAM_INST_DIR
|
2013-12-11 16:09:41 +00:00
|
|
|
export WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/$WM_PROJECT-$WM_FORK-$WM_PROJECT_VERSION
|
2013-09-16 14:07:47 +00:00
|
|
|
export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
|
|
|
|
|
|
|
|
# Location of third-party software
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
#: ${WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION}; export WM_THIRD_PARTY_DIR
|
|
|
|
export WM_THIRD_PARTY_DIR=$WM_PROJECT_DIR/ThirdParty
|
2010-05-12 13:27:55 +00:00
|
|
|
|
2015-05-15 12:48:09 +00:00
|
|
|
# Enabling the usage of third-party software
|
|
|
|
# This can be overriden in prefs.sh
|
2015-05-26 04:59:43 +00:00
|
|
|
# Use 'set' and 'unset' to adjust for your environent
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2015-05-15 12:48:09 +00:00
|
|
|
# For AllMake.stage1
|
2018-04-12 13:27:38 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_BISON_27=1
|
2017-01-10 15:42:15 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_CMAKE_322=1
|
2015-05-15 12:48:09 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# For AllMake.stage2
|
2021-07-05 16:26:05 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_OPENMPI_188=1
|
2019-01-31 14:14:30 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_OPENMPI_400=1
|
2015-05-15 12:48:09 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# For AllMake.stage3
|
2021-07-05 16:26:05 +00:00
|
|
|
export METIS_SYSTEM=1
|
|
|
|
#export WM_THIRD_PARTY_USE_METIS_510=1
|
2015-05-15 12:48:09 +00:00
|
|
|
export WM_THIRD_PARTY_USE_PARMGRIDGEN_10=1
|
2021-07-05 16:26:05 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_LIBCCMIO_261=1
|
2018-06-29 00:40:30 +00:00
|
|
|
export WM_THIRD_PARTY_USE_MESQUITE_230=1
|
2021-07-05 16:26:05 +00:00
|
|
|
export SCOTCH_SYSTEM=1
|
|
|
|
#export WM_THIRD_PARTY_USE_SCOTCH_604=1
|
|
|
|
export PARMETIS_SYSTEM=1
|
|
|
|
#export WM_THIRD_PARTY_USE_PARMETIS_403=1
|
2018-06-28 02:56:01 +00:00
|
|
|
export WM_THIRD_PARTY_USE_PYFOAM_069=1
|
2018-06-27 22:40:28 +00:00
|
|
|
export WM_THIRD_PARTY_USE_HWLOC_201=1
|
2015-05-15 12:48:09 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# For AllMake.stage4
|
2018-07-01 17:16:26 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_QT_5111=1
|
2018-07-02 00:41:56 +00:00
|
|
|
#export WM_THIRD_PARTY_USE_PARAVIEW_552=1
|
2015-05-15 12:48:09 +00:00
|
|
|
|
|
|
|
|
2010-10-04 12:13:26 +00:00
|
|
|
# Source files, possibly with some verbosity
|
|
|
|
_foamSource()
|
|
|
|
{
|
|
|
|
while [ $# -ge 1 ]
|
|
|
|
do
|
2013-08-30 07:42:26 +00:00
|
|
|
[ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Sourcing: $1" 1>&2
|
2010-10-04 12:13:26 +00:00
|
|
|
. $1
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
# Add in preset user or site preferences:
|
2015-08-05 11:57:56 +00:00
|
|
|
if [ "$WM_OSTYPE" == "MSWindows" ]
|
|
|
|
then
|
|
|
|
_foamSource $WM_PROJECT_DIR/etc/prefs.sh.mingw
|
|
|
|
elif [ -e $WM_PROJECT_DIR/etc/prefs.sh ]
|
2013-12-11 16:09:41 +00:00
|
|
|
then
|
|
|
|
_foamSource $WM_PROJECT_DIR/etc/prefs.sh
|
|
|
|
else
|
|
|
|
[ "$FOAM_VERBOSE" -a "$PS1" ] && echo "No prefs.sh found"
|
|
|
|
fi
|
|
|
|
|
2010-10-04 12:13:26 +00:00
|
|
|
|
|
|
|
# Evaluate command-line parameters
|
|
|
|
while [ $# -gt 0 ]
|
|
|
|
do
|
|
|
|
case "$1" in
|
|
|
|
*=)
|
|
|
|
# name= -> unset name
|
|
|
|
eval "unset ${1%=}"
|
|
|
|
;;
|
|
|
|
*=*)
|
|
|
|
# name=value -> export name=value
|
|
|
|
eval "export $1"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
# Operating System/Platform
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
# WM_OSTYPE = POSIX | ????
|
|
|
|
: ${WM_OSTYPE:=POSIX}; export WM_OSTYPE
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
|
2017-04-13 11:04:54 +00:00
|
|
|
# Compiler: set to Gcc, Icc (for Intel's icc) or Clang
|
2010-05-12 13:27:55 +00:00
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
: ${WM_COMPILER:=Gcc}; export WM_COMPILER
|
2013-11-29 17:21:10 +00:00
|
|
|
#: ${WM_COMPILER:=Icc}; export WM_COMPILER
|
2017-04-13 11:04:54 +00:00
|
|
|
#: ${WM_COMPILER:=Clang}; export WM_COMPILER
|
2018-03-20 10:54:16 +00:00
|
|
|
#: ${WM_COMPILER:=Arm}; export WM_COMPILER
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
export WM_COMPILER_ARCH=
|
|
|
|
export WM_COMPILER_LIB_ARCH=
|
|
|
|
|
|
|
|
|
|
|
|
# Compilation options (architecture, precision, optimised, debug or profiling)
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
# WM_ARCH_OPTION = 32 | 64
|
|
|
|
: ${WM_ARCH_OPTION:=64}; export WM_ARCH_OPTION
|
|
|
|
|
2015-05-01 12:21:04 +00:00
|
|
|
# WM_PRECISION_OPTION = LDP | DP | SP
|
2010-05-12 13:27:55 +00:00
|
|
|
: ${WM_PRECISION_OPTION:=DP}; export WM_PRECISION_OPTION
|
|
|
|
|
Vanilla backport
- in FOAM library
updated containers
backported PackedBoolList, hashedWordList, nullObject, wordRe,
backported functions to
backported int32 support
backported tableReaders
backported Function1, TimeFunction1
backported dynamicCode (for codedBCs, ...) -- needs to be mapped out
advanced error macros (FatalIOErrorInFunction, ...) -- needs to be mapped out
backported IOobject::MUST_READ_IF_MODIFIED and added IOobject::READ_IF_PRESENT_IF_MODIFIED (only in FO)
- in postProcessing
backported IO FOs (partialWrite, removeRegisteredObject, writeDictionary, writeRegisteredObject)
backported field FOs (fieldCoordinateSystemTransform, fieldValues, nearWallFields, processorField, readFields, regionSizeDistribution, streamLine, wallBoundedStreamLine)
backported fvTools FOs (calcFvcDiv, calcFvcGrad, calcMag)
backported jobControl FOs (abortCalculation)
backported utilities FOs (ourantNo, Lambda2, Peclet, Q, codedFunctionObject, pressureTools, residuals, scalarTransport, setTimeStep, timeActivatedFileUpdate, turbulenceFields, vorticity, wallShearStress)
2017-04-09 13:11:54 +00:00
|
|
|
# WM_LABEL_SIZE = 32 | 64
|
|
|
|
: ${WM_LABEL_SIZE:=32}; export WM_LABEL_SIZE
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
# WM_COMPILE_OPTION = Opt | Debug | Prof
|
|
|
|
: ${WM_COMPILE_OPTION:=Opt}; export WM_COMPILE_OPTION
|
|
|
|
|
2014-04-30 09:35:07 +00:00
|
|
|
# WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI | MVAPICH2
|
2021-07-05 16:26:05 +00:00
|
|
|
: ${WM_MPLIB:=SYSTEMOPENMPI}; export WM_MPLIB
|
2010-05-12 13:27:55 +00:00
|
|
|
|
2013-07-05 16:15:23 +00:00
|
|
|
# WM_NCOMPPROCS = <number of processes to use>
|
2013-07-11 17:47:31 +00:00
|
|
|
# Warning: Need to use a complete path for foamGetSystemInfo because the PATH
|
|
|
|
# environment variable is not properly initialized yet.
|
|
|
|
: ${WM_NCOMPPROCS:=`$WM_PROJECT_DIR/bin/foamGetSystemInfo -nbrCores`}; export WM_NCOMPPROCS
|
2013-07-05 16:15:23 +00:00
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
# Run options (floating-point signal handling and memory initialisation)
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
export FOAM_SIGFPE=
|
|
|
|
# export FOAM_SETNAN=
|
|
|
|
|
|
|
|
|
|
|
|
# Detect system type and set environment variables appropriately
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
export WM_ARCH=`uname -s`
|
|
|
|
|
|
|
|
case $WM_ARCH in
|
2015-08-04 12:39:06 +00:00
|
|
|
MINGW32_NT-6.1)
|
2015-08-27 16:01:16 +00:00
|
|
|
WM_ARCH=mingw
|
2015-08-04 12:39:06 +00:00
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2015-08-07 09:46:56 +00:00
|
|
|
MINGW32_NT-6.2)
|
2015-08-27 16:01:16 +00:00
|
|
|
WM_ARCH=mingw
|
2015-08-07 09:46:56 +00:00
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2015-10-20 16:06:06 +00:00
|
|
|
MINGW64_NT-6.1)
|
|
|
|
WM_ARCH=mingw
|
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2015-10-20 16:06:06 +00:00
|
|
|
MINGW64_NT-6.2)
|
|
|
|
WM_ARCH=mingw
|
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
|
|
|
MINGW64_NT-6.1)
|
|
|
|
WM_ARCH=mingw
|
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2015-10-20 16:06:06 +00:00
|
|
|
MINGW64_NT-6.2)
|
|
|
|
WM_ARCH=mingw
|
|
|
|
export WM_ARCH_BASE=mingw
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
Linux)
|
|
|
|
WM_ARCH=linux
|
|
|
|
|
|
|
|
# compiler specifics
|
|
|
|
case `uname -m` in
|
|
|
|
i686)
|
|
|
|
;;
|
|
|
|
|
|
|
|
x86_64)
|
|
|
|
case $WM_ARCH_OPTION in
|
|
|
|
32)
|
|
|
|
export WM_COMPILER_ARCH='-64'
|
|
|
|
export WM_CFLAGS='-m32 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m32 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m32'
|
|
|
|
;;
|
|
|
|
64)
|
|
|
|
WM_ARCH=linux64
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo Unknown WM_ARCH_OPTION $WM_ARCH_OPTION, should be 32 or 64
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
|
|
|
|
ia64)
|
|
|
|
WM_ARCH=linuxIA64
|
|
|
|
export WM_COMPILER=I64
|
|
|
|
;;
|
|
|
|
|
|
|
|
mips64)
|
|
|
|
WM_ARCH=SiCortex64
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-mabi=64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-mabi=64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-mabi=64 -G0'
|
|
|
|
export WM_MPLIB=MPI
|
|
|
|
;;
|
|
|
|
|
|
|
|
ppc64)
|
|
|
|
WM_ARCH=linuxPPC64
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
|
|
|
|
2015-12-05 14:40:50 +00:00
|
|
|
armv7l)
|
|
|
|
WM_ARCH=linuxARM7
|
|
|
|
export WM_COMPILER_LIB_ARCH=32
|
|
|
|
export WM_CC='gcc'
|
|
|
|
export WM_CXX='g++'
|
|
|
|
export WM_CFLAGS='-fPIC -mfloat-abi=hard'
|
|
|
|
export WM_CXXFLAGS='-fPIC -mfloat-abi=hard'
|
|
|
|
export WM_LDFLAGS='-mfloat-abi=hard'
|
|
|
|
;;
|
|
|
|
|
2017-04-08 20:23:50 +00:00
|
|
|
aarch64)
|
|
|
|
# https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
|
|
|
|
# This command will provide more details for your specific processor
|
|
|
|
# gcc -c -Q -march=native -mtune=native --help=target
|
|
|
|
WM_ARCH=linuxARM8
|
2018-03-20 10:54:16 +00:00
|
|
|
if [ "$WM_COMPILER" = "Gcc" ]
|
|
|
|
then
|
|
|
|
# https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
|
|
|
|
# This command will provide more details for your specific processor
|
|
|
|
# gcc -c -Q -march=native -mtune=native --help=target
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CC='gcc'
|
|
|
|
export WM_CXX='g++'
|
|
|
|
export WM_CFLAGS='-fPIC -march=native -mtune=native'
|
|
|
|
export WM_CXXFLAGS='-fPIC -march=native -mtune=native'
|
|
|
|
export WM_LDFLAGS=''
|
|
|
|
elif [ "$WM_COMPILER" = "Arm" ]
|
|
|
|
then
|
|
|
|
export WM_LDFLAGS=''
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CC='armclang'
|
|
|
|
export WM_CXX='armclang++'
|
|
|
|
export WM_CFLAGS='-fPIC'
|
|
|
|
export WM_CXXFLAGS='-fPIC'
|
|
|
|
else
|
|
|
|
echo "Unknown WM_COMPILER" $WM_COMPILER
|
|
|
|
fi
|
2017-04-08 20:23:50 +00:00
|
|
|
;;
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
*)
|
|
|
|
echo Unknown processor type `uname -m` for Linux
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
|
|
|
|
Darwin)
|
2010-10-02 20:30:55 +00:00
|
|
|
# this makes certain things easier
|
|
|
|
export WM_ARCH_BASE=darwin
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
case `uname -p` in
|
|
|
|
powerpc)
|
2013-07-18 01:43:15 +00:00
|
|
|
export WM_ARCH=darwinPpc
|
|
|
|
;;
|
2010-05-12 13:27:55 +00:00
|
|
|
i386)
|
2013-07-18 01:43:15 +00:00
|
|
|
export WM_ARCH=darwinIntel
|
|
|
|
;;
|
2010-05-12 13:27:55 +00:00
|
|
|
*)
|
2010-10-05 22:18:13 +00:00
|
|
|
echo "This seems to be neither an Intel-Mac nor a PPC-Mac please tell me the output of 'uname -p'. Bernhard."
|
2013-07-18 01:43:15 +00:00
|
|
|
export WM_ARCH=darwinUnknown
|
|
|
|
;;
|
2010-05-12 13:27:55 +00:00
|
|
|
esac
|
2013-07-05 15:15:35 +00:00
|
|
|
|
2010-10-02 20:30:55 +00:00
|
|
|
case $WM_ARCH_OPTION in
|
|
|
|
32)
|
2013-07-18 01:43:15 +00:00
|
|
|
export WM_CFLAGS='-m32 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m32 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m32'
|
|
|
|
;;
|
2010-10-02 20:30:55 +00:00
|
|
|
64)
|
|
|
|
export WM_ARCH=${WM_ARCH}64
|
2013-07-18 01:43:15 +00:00
|
|
|
export WM_CFLAGS='-m64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-m64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-m64'
|
|
|
|
;;
|
2010-10-02 20:30:55 +00:00
|
|
|
*)
|
2013-07-18 01:43:15 +00:00
|
|
|
echo Unknown WM_ARCH_OPTION $WM_ARCH_OPTION, should be 32 or 64
|
|
|
|
;;
|
2010-10-02 20:30:55 +00:00
|
|
|
esac
|
|
|
|
|
2015-05-17 00:39:14 +00:00
|
|
|
# Using MacPorts
|
|
|
|
: ${MACOSX_MACPORTS_ROOT:='/opt/local/etc/macports'}; export MACOSX_MACPORTS_ROOT
|
2013-07-11 22:58:42 +00:00
|
|
|
which -s port >/dev/null
|
2015-05-17 00:39:14 +00:00
|
|
|
if [ $? -eq "0" ] && [ -d "$MACOSX_MACPORTS_ROOT" ]
|
2011-05-22 20:43:46 +00:00
|
|
|
then
|
2015-05-15 18:07:49 +00:00
|
|
|
if [ "$FOAM_VERBOSE" -a "$PS1" ]
|
|
|
|
then
|
|
|
|
echo "Using Macports binaries"
|
|
|
|
fi
|
|
|
|
|
2017-04-13 11:04:54 +00:00
|
|
|
export WM_USE_MACPORT=0
|
2015-05-15 18:07:49 +00:00
|
|
|
export WM_BASE_COMPILER=`echo $WM_COMPILER | tr -d "[:digit:]"`
|
|
|
|
export WM_MACPORT_MPI_VERSION=`echo $WM_COMPILER | tr "[:upper:]" "[:lower:]"`
|
|
|
|
export WM_MACPORT_VERSION=`echo $WM_MACPORT_MPI_VERSION | tr -d "[:alpha:]" | sed -e "s/\(.\)\(.\)/\1\.\2/"`
|
|
|
|
|
|
|
|
if [ -z "$WM_CHOSEN_MAC_MPI" ]
|
|
|
|
then
|
|
|
|
if [ -e '/opt/local/bin/mpicc' ]
|
|
|
|
then
|
|
|
|
readlink /opt/local/bin/mpicc | grep openmpi >/dev/null
|
|
|
|
if [ $? -eq "0" ]
|
|
|
|
then
|
|
|
|
export WM_MPLIB=MACPORTOPENMPI
|
|
|
|
if [ "$FOAM_VERBOSE" -a "$PS1" ]
|
|
|
|
then
|
|
|
|
echo "Using OpenMPI from MacPorts"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
readlink /opt/local/bin/mpicc | grep mpich >/dev/null
|
|
|
|
if [ $? -eq "0" ]
|
|
|
|
then
|
|
|
|
export WM_MPLIB=MACPORTMPICH
|
|
|
|
if [ "$FOAM_VERBOSE" -a "$PS1" ]
|
|
|
|
then
|
|
|
|
echo "Using MPICH from MacPorts"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "/opt/local/bin/mpicc neither OpenMPI nor MPICH. Confused. Defaulting to OPENMPI"
|
|
|
|
export WM_MPLIB=OPENMPI
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
export WM_MPLIB=$WM_CHOSEN_MAC_MPI
|
|
|
|
if [ "$FOAM_VERBOSE" -a "$PS1" ]
|
|
|
|
then
|
|
|
|
echo "User chose WM_CHOSEN_MAC_MPI=$WM_CHOSEN_MAC_MPI"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$WM_MPLIB" == "MACPORTOPENMPI" ]
|
|
|
|
then
|
|
|
|
if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ]
|
|
|
|
then
|
|
|
|
export WM_MACPORT_MPI_VERSION=mp
|
|
|
|
if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ]
|
|
|
|
then
|
|
|
|
echo "Proper OpenMPI not installed. Either do 'port install openmpi-$WM_MACPORT_MPI_VERSION' or 'port install openmpi-default'"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
if [ "$WM_MPLIB" == "MACPORTMPICH" ]
|
|
|
|
then
|
|
|
|
if [ ! -e "/opt/local/lib/mpich-$WM_MACPORT_MPI_VERSION" ]
|
|
|
|
then
|
|
|
|
echo "MPICH wants the same version as the used compiler. Do 'port install mpich-$WM_MACPORT_MPI_VERSION'"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$WM_COMPILER" != "Gcc" ]
|
|
|
|
then
|
|
|
|
if [ "$WM_BASE_COMPILER" == "Gcc" ]
|
|
|
|
then
|
|
|
|
export WM_CC="gcc-mp-$WM_MACPORT_VERSION"
|
|
|
|
export WM_CXX="g++-mp-$WM_MACPORT_VERSION"
|
|
|
|
export WM_FC="gfortran-mp-$WM_MACPORT_VERSION"
|
|
|
|
elif [ "$WM_BASE_COMPILER" == "Clang" ]
|
|
|
|
then
|
2017-04-13 11:04:54 +00:00
|
|
|
if [ "$WM_USE_MACPORT" == "1" ]
|
|
|
|
then
|
|
|
|
export WM_CC="clang-mp-$WM_MACPORT_VERSION"
|
|
|
|
export WM_CXX="clang++-mp-$WM_MACPORT_VERSION"
|
|
|
|
else
|
|
|
|
export WM_CC="clang"
|
|
|
|
export WM_CXX="clang++"
|
|
|
|
fi
|
2015-05-15 18:07:49 +00:00
|
|
|
# Seems like there is no Fortran-frontend for LLVM at thistime
|
|
|
|
elif [ "$WM_BASE_COMPILER" == "Dragonegg" ]
|
|
|
|
then
|
|
|
|
export WM_CC="dragonegg-$WM_MACPORT_VERSION-gcc"
|
|
|
|
export WM_CXX="dragonegg-$WM_MACPORT_VERSION-g++"
|
|
|
|
export WM_CXX="dragonegg-$WM_MACPORT_VERSION-gfortran"
|
|
|
|
else
|
|
|
|
echo "Unknown base compiler $WM_BASE_COMPILER"
|
|
|
|
fi
|
|
|
|
|
|
|
|
ruleDirBase=$WM_PROJECT_DIR/wmake/rules/$WM_ARCH
|
|
|
|
ruleDirTarget=$ruleDirBase$WM_BASE_COMPILER
|
|
|
|
ruleDir=$ruleDirBase$WM_COMPILER
|
|
|
|
if [ ! -e $ruleDir ]
|
|
|
|
then
|
|
|
|
echo "Rule directory $ruleDir not existing. Linking to $ruleDirTarget"
|
|
|
|
ln -s $ruleDirTarget $ruleDir
|
|
|
|
fi
|
|
|
|
unset ruleDir ruleDirBase
|
|
|
|
fi
|
2014-02-20 18:23:16 +00:00
|
|
|
else
|
2015-05-17 00:39:14 +00:00
|
|
|
echo "Warning: You are not using MacPorts. Make sure your compilation and MPI environment is correctly initialized"
|
2013-07-11 22:58:42 +00:00
|
|
|
fi
|
2014-02-20 18:23:16 +00:00
|
|
|
|
|
|
|
# Make sure that binaries use the best features of the used OS-Version
|
|
|
|
# We need to get rid of the revision number from this string. eg turn "10.7.5" into "10.7"
|
|
|
|
# v=(`sw_vers -productVersion | sed 's/\./ /g'`)
|
|
|
|
# export MACOSX_DEPLOYMENT_TARGET="${v[1]}.${v[2]}"
|
|
|
|
export MACOSX_DEPLOYMENT_TARGET=`sw_vers -productVersion | sed -e "s/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\1.\2/g"`
|
2010-05-12 13:27:55 +00:00
|
|
|
;;
|
|
|
|
|
|
|
|
SunOS)
|
|
|
|
WM_ARCH=SunOS64
|
|
|
|
export WM_COMPILER_LIB_ARCH=64
|
|
|
|
export WM_CFLAGS='-mabi=64 -fPIC'
|
|
|
|
export WM_CXXFLAGS='-mabi=64 -fPIC'
|
|
|
|
export WM_LDFLAGS='-mabi=64 -G0'
|
|
|
|
export WM_MPLIB=FJMPI
|
|
|
|
;;
|
|
|
|
|
2013-07-18 01:43:15 +00:00
|
|
|
*) # an unsupported operating system
|
2010-05-12 13:27:55 +00:00
|
|
|
cat <<USAGE
|
|
|
|
|
|
|
|
Your "$WM_ARCH" operating system is not supported by this release
|
2015-04-23 12:51:07 +00:00
|
|
|
of foam-extend. For further assistance, please contact www.foam-extend.org
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
USAGE
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2010-05-12 13:27:55 +00:00
|
|
|
cleanProg=$WM_PROJECT_DIR/bin/foamCleanPath
|
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
#- Clean PATH
|
|
|
|
cleanEnv=`$cleanProg "$PATH" "$foamOldDirs"` && PATH="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
#- Clean LD_LIBRARY_PATH
|
2010-05-17 13:51:21 +00:00
|
|
|
cleanEnv=`$cleanProg "$LD_LIBRARY_PATH" "$foamOldDirs"` && LD_LIBRARY_PATH="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
2010-10-02 20:30:55 +00:00
|
|
|
#- Clean DYLD_LIBRARY_PATH
|
2013-07-05 02:08:36 +00:00
|
|
|
if [[ "$WM_ARCH_BASE" == "darwin" ]]
|
2010-10-02 20:30:55 +00:00
|
|
|
then
|
|
|
|
cleanEnv=`$cleanProg "$DYLD_LIBRARY_PATH" "$foamOldDirs"` && DYLD_LIBRARY_PATH="$cleanEnv"
|
|
|
|
fi
|
|
|
|
|
2010-05-12 13:27:55 +00:00
|
|
|
#- Clean MANPATH
|
2010-05-17 13:51:21 +00:00
|
|
|
cleanEnv=`$cleanProg "$MANPATH" "$foamCleanDirs"` && MANPATH="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
export PATH LD_LIBRARY_PATH MANPATH
|
|
|
|
|
|
|
|
# Source project setup files
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
_foamSource $WM_PROJECT_DIR/etc/settings.sh
|
2011-01-31 12:21:32 +00:00
|
|
|
_foamSource $WM_PROJECT_DIR/etc/aliases.sh
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Source user setup files for optional packages
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
# _foamSource $WM_PROJECT_DIR/etc/apps/paraview/bashrc
|
2010-11-24 05:49:05 +00:00
|
|
|
# _foamSource $WM_PROJECT_DIR/etc/apps/paraview3/bashrc
|
2010-11-29 16:14:51 +00:00
|
|
|
# _foamSource $WM_PROJECT_DIR/etc/apps/ensight/bashrc
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
|
2010-05-17 13:51:21 +00:00
|
|
|
# Clean environment paths again. Only remove duplicates
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
#- Clean PATH
|
|
|
|
cleanEnv=`$cleanProg "$PATH"` && PATH="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
#- Clean LD_LIBRARY_PATH
|
2010-05-17 13:51:21 +00:00
|
|
|
cleanEnv=`$cleanProg "$LD_LIBRARY_PATH"` && LD_LIBRARY_PATH="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
#- Clean MANPATH
|
2010-05-17 13:51:21 +00:00
|
|
|
cleanEnv=`$cleanProg "$MANPATH"` && MANPATH="$cleanEnv:"
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
export PATH LD_LIBRARY_PATH MANPATH
|
|
|
|
|
|
|
|
#- Clean LD_PRELOAD
|
2010-05-17 13:51:21 +00:00
|
|
|
if [ "$LD_PRELOAD" != "" ]
|
|
|
|
then
|
|
|
|
cleanEnv=`$cleanProg "$LD_PRELOAD"` && LD_PRELOAD="$cleanEnv"
|
2010-05-12 13:27:55 +00:00
|
|
|
export LD_PRELOAD
|
|
|
|
fi
|
|
|
|
|
2014-06-13 14:35:38 +00:00
|
|
|
# temporarily disabled. HJ, 13/Jun/2014
|
|
|
|
# if [[ `uname -s` == "Darwin" ]]
|
|
|
|
# then
|
|
|
|
# if [[ `ulimit -n` == "unlimited" || `ulimit -n` < 8192 ]]
|
|
|
|
# then
|
2015-05-15 18:07:49 +00:00
|
|
|
# # higher limit needed for wmkdeps
|
|
|
|
# ulimit -n 8192
|
2014-06-13 14:35:38 +00:00
|
|
|
# fi
|
|
|
|
# fi
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
# cleanup environment:
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~
|
2010-05-17 13:51:21 +00:00
|
|
|
unset cleanEnv cleanProg foamInstall foamOldDirs
|
2010-05-12 13:27:55 +00:00
|
|
|
unset _foamSource
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|