#----------------------------------*-sh-*-------------------------------------- # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright held by original author # \\/ M anipulation | #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. # # OpenFOAM is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # OpenFOAM 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. # # You should have received a copy of the GNU General Public License # along with OpenFOAM; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # Script # etc/bashrc # # Description # Startup file for OpenFOAM # Sourced from ~/.profile or ~/.bashrc # Should be usable by any POSIX-compliant shell (eg, ksh) # #------------------------------------------------------------------------------ export WM_PROJECT=OpenFOAM export WM_PROJECT_VERSION=1.6-ext # helps to easily write #ifdefs to detect a dev-version export FOAM_DEV=1 ############################################################################### # USER EDITABLE PART # # either set $FOAM_INST_DIR before sourcing this file or set # $foamInstall below to where OpenFOAM is installed # # Location of FOAM installation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foamInstall=$HOME/$WM_PROJECT # foamInstall=~$WM_PROJECT # foamInstall=/usr/local/$WM_PROJECT # foamInstall=/opt/$WM_PROJECT # # END OF (NORMAL) USER EDITABLE PART ################################################################################ # note the location for later use (eg, in job scripts) : ${FOAM_INST_DIR:=$foamInstall}; export FOAM_INST_DIR # 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 # Location of site/user files # ~~~~~~~~~~~~~~~~~~~~~~~~~~~ export WM_PROJECT_INST_DIR=$FOAM_INST_DIR export WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/$WM_PROJECT-$WM_PROJECT_VERSION export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION # Location of third-party software # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION # Source files, possibly with some verbosity _foamSource() { while [ $# -ge 1 ] do [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Sourcing: $1" . $1 shift done } # Add in preset user or site preferences: foamPrefs=`$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh` && _foamSource $foamPrefs unset foamPrefs # 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 # Operating System/Platform # ~~~~~~~~~~~~~~~~~~~~~~~~~ # WM_OSTYPE = POSIX | ???? : ${WM_OSTYPE:=POSIX}; export WM_OSTYPE # Compiler: set to Gcc, Gcc43 or Icc (for Intel's icc) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ${WM_COMPILER:=Gcc}; export WM_COMPILER export WM_COMPILER_ARCH= export WM_COMPILER_LIB_ARCH= # Compilation options (architecture, precision, optimised, debug or profiling) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export WM_NCOMPPROCS=2 # WM_ARCH_OPTION = 32 | 64 : ${WM_ARCH_OPTION:=64}; export WM_ARCH_OPTION # WM_PRECISION_OPTION = DP | SP : ${WM_PRECISION_OPTION:=DP}; export WM_PRECISION_OPTION # WM_COMPILE_OPTION = Opt | Debug | Prof : ${WM_COMPILE_OPTION:=Opt}; export WM_COMPILE_OPTION # WM_MPLIB = | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI : ${WM_MPLIB:=OPENMPI}; export WM_MPLIB # 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 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' ;; *) echo Unknown processor type `uname -m` for Linux ;; esac ;; Darwin) # this makes certain things easier export WM_ARCH_BASE=darwin case `uname -p` in powerpc) export WM_ARCH=darwinPpc ;; i386) export WM_ARCH=darwinIntel ;; *) echo "This seems to be an Intel-Mac please tell me the output of 'uname -p'. Bernhard." export WM_ARCH=darwinIntel ;; esac case $WM_ARCH_OPTION in 32) export WM_CFLAGS='-m32 -fPIC' export WM_CXXFLAGS='-m32 -fPIC' export WM_LDFLAGS='-m32' ;; 64) export WM_ARCH=${WM_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 # Make sure that binaries use the best features of the used OS-Version export MACOSX_DEPLOYMENT_TARGET=`sw_vers -productVersion` # Use Mac-Ports-Compiler instead of Apple-gcc-4.2 case $WM_COMPILER in Gcc43) export WM_CC='gcc-mp-4.3' export WM_CXX='g++-mp-4.3' ;; Gcc44) export WM_CC='gcc-mp-4.4' export WM_CXX='g++-mp-4.4' ;; Gcc45) export WM_CC='gcc-mp-4.5' export WM_CXX='g++-mp-4.5' ;; *) export WM_COMPILER= ;; esac ;; 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 ;; *) # an unsupported operating system cat <