Merge branch 'build' into 'develop'

Improvements, adjustments for build scripts and infrastructure

See merge request !94
This commit is contained in:
Sergio Ferraris
2017-02-24 18:31:57 +00:00
99 changed files with 1191 additions and 963 deletions

View File

@ -22,7 +22,7 @@ VTK
--- ---
If using the runTimePostProcessing to create on-the-fly images, you If using the runTimePostProcessing to create on-the-fly images, you
can either simply just compile ParaView-5.0.1 and these libraries will can simply just compile ParaView-5.0.1 and these libraries will
be used. be used.
If you elect to use a separate VTK compilation (for example for If you elect to use a separate VTK compilation (for example for

View File

@ -1,7 +1,8 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd ${0%/*} || exit 1
wclean libso DPMTurbulenceModels wclean libso DPMTurbulenceModels
wclean wclean
wclean MPPICFoam wclean MPPICFoam
#------------------------------------------------------------------------------

View File

@ -8,3 +8,5 @@ wmake $targetType DPMTurbulenceModels
wmake $targetType wmake $targetType
wmake $targetType MPPICFoam wmake $targetType MPPICFoam
#------------------------------------------------------------------------------

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # Run from this directory
wclean libso CompressibleTwoPhaseMixtureTurbulenceModels wclean libso CompressibleTwoPhaseMixtureTurbulenceModels
wclean wclean

View File

@ -1,24 +1,33 @@
#!/bin/sh #!/bin/sh
#
# Build optional components (eg, may depend on third-party libraries)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
# Optional component: continue-on-error
# - may not have third-party installed
export WM_CONTINUE_ON_ERROR=true
# Parse arguments for compilation (at least for error catching) # Parse arguments for compilation (at least for error catching)
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
# Get version info and arch-path warning="==> skip ccmio"
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
then
. $settings
else
echo "$warning (no config.sh/ccmio settings)"
exit
fi
# Build libccmio (.a|.so) # Build libccmio (.a|.so) - use static linkage for fewer issues
$WM_THIRD_PARTY_DIR/makeCCMIO lib # libso $WM_THIRD_PARTY_DIR/makeCCMIO lib
if [ -e $CCMIO_ARCH_PATH/include/libccmio/ccmio.h \ if [ -e $CCMIO_ARCH_PATH/include/libccmio/ccmio.h \
-a \( -e $CCMIO_ARCH_PATH/lib/libccmio.a -o $FOAM_EXT_LIBBIN/libccmio.so \) ] -a \( -e $CCMIO_ARCH_PATH/lib/libccmio.a -o $FOAM_EXT_LIBBIN/libccmio.so \) ]
then then
wmake $targetType ccm26ToFoam wmake $targetType ccm26ToFoam
else
echo $warning
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,19 +4,18 @@ cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for compilation (at least for error catching) # Parse arguments for compilation (at least for error catching)
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
export COMPILE_FLAGS='' unset COMP_FLAGS LINK_FLAGS
export LINK_FLAGS=''
if [ -f "${FOAM_LIBBIN}/libSloanRenumber.so" ] if [ -f "${FOAM_LIBBIN}/libSloanRenumber.so" ]
then then
echo "Found libSloanRenumber.so -- enabling Sloan renumbering support." echo " found libSloanRenumber -- enabling sloan renumbering support."
export LINK_FLAGS="${LINK_FLAGS} -lSloanRenumber" export LINK_FLAGS="${LINK_FLAGS} -lSloanRenumber"
fi fi
if [ -f "${ZOLTAN_ARCH_PATH}/lib/libzoltan.a" -a -f "${FOAM_LIBBIN}/libzoltanRenumber.so" ] if [ -f "${ZOLTAN_ARCH_PATH}/lib/libzoltan.a" -a -f "${FOAM_LIBBIN}/libzoltanRenumber.so" ]
then then
echo "Found libzoltanRenumber.so -- enabling zoltan renumbering support." echo " found libzoltanRenumber -- enabling sloan renumbering support."
export COMPILE_FLAGS="-DFOAM_USE_ZOLTAN" export COMP_FLAGS="-DFOAM_USE_ZOLTAN"
export LINK_FLAGS="${LINK_FLAGS} -lzoltanRenumber -L${ZOLTAN_ARCH_PATH}/lib -lzoltan" export LINK_FLAGS="${LINK_FLAGS} -lzoltanRenumber -L${ZOLTAN_ARCH_PATH}/lib -lzoltan"
fi fi

View File

@ -1,6 +1,6 @@
EXE_INC = \ EXE_INC = \
/* -DFULLDEBUG -g -O0 */ \ /* -DFULLDEBUG -g -O0 */ \
${COMPILE_FLAGS} \ ${COMP_FLAGS} \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \

View File

@ -4,5 +4,4 @@ cd ${0%/*} || exit 1 # Run from this directory
wclean libso helpTypes wclean libso helpTypes
wclean wclean
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -5,7 +5,4 @@ wclean libso foamPv
PVblockMeshReader/Allwclean PVblockMeshReader/Allwclean
PVFoamReader/Allwclean PVFoamReader/Allwclean
# remove dummy directory (see Allwmake)
rmdir Make 2>/dev/null
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -24,10 +24,6 @@ case "$major" in
wmakeLibPv foamPv wmakeLibPv foamPv
PVblockMeshReader/Allwmake $targetType $* PVblockMeshReader/Allwmake $targetType $*
PVFoamReader/Allwmake $targetType $* PVFoamReader/Allwmake $targetType $*
# Dummy directory to trigger proper 'wclean all' behaviour
# - the Allwclean will otherwise not be used
mkdir -p Make
) )
fi fi
;; ;;

View File

@ -10,8 +10,7 @@ rm -f $FOAM_LIBBIN/libPVFoamReader* 2>/dev/null
rm -rf PVFoamReader/Make # safety: old build location rm -rf PVFoamReader/Make # safety: old build location
wclean libso vtkPVFoam wclean libso vtkPVFoam
# Cleanup generated files # Cleanup generated files - remove entire top-level
findObjectDir $PWD # remove entire top-level removeObjectDir $PWD
rm -rf "$objectsDir" > /dev/null 2>&1
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -10,8 +10,7 @@ rm -f $FOAM_LIBBIN/libPVblockMeshReader* 2>/dev/null
rm -rf PVblockMeshReader/Make # safety: old build location rm -rf PVblockMeshReader/Make # safety: old build location
wclean libso vtkPVblockMesh wclean libso vtkPVblockMesh
# Cleanup generated files # Cleanup generated files - remove entire top-level
findObjectDir $PWD # remove entire top-level removeObjectDir $PWD
rm -rf "$objectsDir" > /dev/null 2>&1
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -1,5 +1,7 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
wclean libso tabulatedWallFunction wclean libso tabulatedWallFunction
wclean wclean
#------------------------------------------------------------------------------

View File

@ -1,16 +1,16 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
unset COMPILE_FLAGS LINK_FLAGS unset COMP_FLAGS LINK_FLAGS
if [ -f "$CGAL_ARCH_PATH/include/CGAL/version.h" ] || \ if [ -f "$CGAL_ARCH_PATH/include/CGAL/version.h" ] || \
[ "${CGAL_ARCH_PATH##*-}" = system -a -f /usr/include/CGAL/version.h ] [ "${CGAL_ARCH_PATH##*-}" = system -a -f /usr/include/CGAL/version.h ]
then then
wmake PolyhedronReader wmake PolyhedronReader
export COMPILE_FLAGS='-IPolyhedronReader' export COMP_FLAGS='-IPolyhedronReader'
export LINK_FLAGS='${CGAL_LIBS} -lPolyhedronReader' export LINK_FLAGS='${CGAL_LIBS} -lPolyhedronReader'
else else
export COMPILE_FLAGS="-DNO_CGAL" export COMP_FLAGS="-DNO_CGAL"
fi fi
wmake wmake

View File

@ -14,7 +14,7 @@ EXE_INC = \
${EXE_NDEBUG} \ ${EXE_NDEBUG} \
${CGAL_INC} \ ${CGAL_INC} \
${c++CGALWARN} \ ${c++CGALWARN} \
$(COMPILE_FLAGS) \ $(COMP_FLAGS) \
-I$(FOAM_SRC)/surfMesh/lnInclude \ -I$(FOAM_SRC)/surfMesh/lnInclude \
-I$(FOAM_SRC)/triSurface/lnInclude \ -I$(FOAM_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/edgeMesh/lnInclude \ -I$(LIB_SRC)/edgeMesh/lnInclude \

View File

@ -32,7 +32,7 @@
if [ "$#" -gt 0 ] if [ "$#" -gt 0 ]
then then
find . -name "*.[CHL]" -exec $1 {} \; -print find . -name "*.[CHL]" -type f -exec $1 {} \; -print
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -34,8 +34,7 @@
# #
# For example, within the user ~/.OpenFOAM/<VER>/prefs.sh: # For example, within the user ~/.OpenFOAM/<VER>/prefs.sh:
# \code # \code
# foamPrefs=`$WM_PROJECT_DIR/bin/foamEtcFile -m go prefs.sh` \ # foamFile=$(foamEtcFile -mode go prefs.sh) && . $foamFile
# && _foamSource $foamPrefs
# \endcode # \endcode
# #
# Note # Note
@ -43,6 +42,7 @@
# or $FOAM_INST_DIR/openfoam<VERSION>/bin/ (for the debian version) # or $FOAM_INST_DIR/openfoam<VERSION>/bin/ (for the debian version)
# #
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
unset optQuiet optSilent
usage() { usage() {
[ "${optQuiet:-$optSilent}" = true ] && exit 1 [ "${optQuiet:-$optSilent}" = true ] && exit 1
@ -53,21 +53,23 @@ usage() {
Usage: ${0##*/} [OPTION] fileName Usage: ${0##*/} [OPTION] fileName
${0##*/} [OPTION] -list ${0##*/} [OPTION] -list
options: options:
-all return all files (otherwise stop after the first match) -a, -all return all files (otherwise stop after the first match)
-list list the directories to be searched -l, -list list the directories to be searched
-mode <mode> any combination of u(user), g(group), o(other) -m, -mode MODE any combination of u(user), g(group), o(other)
-prefix <dir> specify an alternative installation prefix -p, -prefix DIR specify an alternative installation prefix
-quiet suppress all normal output -q, -quiet suppress all normal output
-silent suppress all stderr output -s, -silent suppress stderr output, except for things that are emitted
-version <ver> specify an alternative OpenFOAM version by -csh-verbose, -sh-verbose.
in the form Maj.Min.Rev (eg, 1.7.0) -v, -version VER specify alternative OpenFOAM version (eg, 3.0, 1612, ...)
-csh | -sh produce output suitable for a csh or sh 'eval'
-csh-verbose,
-sh-verbose with additional verbosity
-help print the usage -help print the usage
Locate user/group/shipped file with semantics similar to the Locate user/group/shipped file with semantics similar to the
~OpenFOAM/fileName expansion. ~OpenFOAM/fileName expansion.
The options can also be specified as a single character Many options can be specified as a single character, but must not be grouped.
(eg, '-q' instead of '-quiet'), but must not be grouped.
Exit status Exit status
0 when the file is found. Print resolved path to stdout. 0 when the file is found. Print resolved path to stdout.
@ -77,60 +79,56 @@ options:
USAGE USAGE
exit 1 exit 1
} }
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# the bin dir: # The bin dir:
binDir="${0%/*}" binDir="${0%/*}"
# the project dir: # The project dir:
projectDir="${binDir%/bin}" projectDir="${binDir%/bin}"
# the prefix dir (same as $FOAM_INST_DIR): # The prefix dir (same as $FOAM_INST_DIR):
prefixDir="${projectDir%/*}" prefixDir="${projectDir%/*}"
# the name used for the project directory # The name used for the project directory
projectDirName="${projectDir##*/}" projectDirName="${projectDir##*/}"
# version number used for debian packaging # versionNum used for debian packaging
unset versionNum unset version versionNum
# #
# handle standard and debian naming convention # Handle standard and debian naming conventions
# - set version (always) and versionNum (debian only)
# #
case "$projectDirName" in case "$projectDirName" in
OpenFOAM-*) # standard naming convention OpenFOAM-<VERSION> OpenFOAM-*) # standard naming: OpenFOAM-<VERSION>
version="${projectDirName##OpenFOAM-}" version="${projectDirName##OpenFOAM-}"
;; ;;
openfoam[0-9]* | openfoam-dev) # debian naming convention 'openfoam<VERSION>' openfoam[0-9]* | openfoam-dev) # debian naming: openfoam<VERSION>
versionNum="${projectDirName##openfoam}" versionNum="${projectDirName##openfoam}"
case "$versionNum" in case "${#versionNum}" in
??) # convert 2 digit version number to decimal delineated (2|3|4) # Convert digits version number to decimal delineated
version=$(echo "$versionNum" | sed -e 's@\(.\)\(.\)@\1.\2@') version=$(echo "$versionNum" | sed -e 's@\([0-9]\)@\1.@g')
version="${version%.}"
;; ;;
???) # convert 3 digit version number to decimal delineated
version=$(echo "$versionNum" | sed -e 's@\(.\)\(.\)\(.\)@\1.\2.\3@') (*) # Fallback - use current environment setting
;;
????) # convert 4 digit version number to decimal delineated
version=$(echo "$versionNum" | sed -e 's@\(.\)\(.\)\(.\)\(.\)@\1.\2.\3.\4@')
;;
*) # failback - use current environment setting
version="$WM_PROJECT_VERSION" version="$WM_PROJECT_VERSION"
;; ;;
esac esac
;; ;;
*) *)
echo "Error : unknown/unsupported naming convention" echo "${0##*/} Error : unknown/unsupported naming convention" 1>&2
exit 1 exit 1
;; ;;
esac esac
# default mode is 'ugo' # Default mode is always 'ugo'
mode=ugo mode=ugo
unset optAll optList optQuiet optSilent unset optAll optList optShell
# parse options # parse options
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
@ -141,27 +139,46 @@ do
;; ;;
-a | -all) -a | -all)
optAll=true optAll=true
unset optShell
;; ;;
-l | -list) -l | -list)
optList=true optList=true
unset optShell
;;
-csh | -sh | -csh-verbose | -sh-verbose)
optShell="${1#-}"
unset optAll
;;
-mode=[ugo]*)
mode="${1#-mode=}"
;;
-prefix=/*)
prefixDir="${1#-prefix=}"
prefixDir="${prefixDir%/}"
;;
-version=*)
version="${1#-version=}"
# convert x.y.z -> xyz version (if installation looked like debian)
if [ -n "$versionNum" ]
then
versionNum=$(echo "$version" | sed -e 's@\.@@g')
fi
;; ;;
-m | -mode) -m | -mode)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
mode="$2" mode="$2"
# Sanity check. Handles missing argument too.
# sanity check:
case "$mode" in case "$mode" in
*u* | *g* | *o* ) [ugo]*)
;; ;;
*) *)
usage "'$1' option with invalid mode '$mode'" usage "invalid mode '$mode'"
;; ;;
esac esac
shift shift
;; ;;
-p | -prefix) -p | -prefix)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument" [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
prefixDir="$2" prefixDir="${2%/}"
shift shift
;; ;;
-q | -quiet) -q | -quiet)
@ -185,7 +202,7 @@ do
break break
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -194,6 +211,13 @@ do
shift shift
done done
# Update projectDir accordingly
if [ -n "$versionNum" ]
then
projectDir="$prefixDir/openfoam$versionNum" # debian
else
projectDir="$prefixDir/${WM_PROJECT:-OpenFOAM}-$version" # standard
fi
# debugging: # debugging:
# echo "Installed locations:" # echo "Installed locations:"
@ -210,30 +234,20 @@ fileName="${1#~OpenFOAM/}"
# Define the various places to be searched: # Define the various places to be searched:
unset dirList unset dirList
case "$mode" in case "$mode" in (*u*) # user
*u*) # user dir="$HOME/.${WM_PROJECT:-OpenFOAM}"
userDir="$HOME/.${WM_PROJECT:-OpenFOAM}" dirList="$dirList $dir/$version $dir"
dirList="$dirList $userDir/$version $userDir"
;; ;;
esac esac
case "$mode" in case "$mode" in (*g*) # group (site)
*g*) # group (site) dir="${WM_PROJECT_SITE:-$prefixDir/site}"
siteDir="${WM_PROJECT_SITE:-$prefixDir/site}" dirList="$dirList $dir/$version $dir"
dirList="$dirList $siteDir/$version $siteDir"
;; ;;
esac esac
case "$mode" in case "$mode" in (*o*) # other (shipped)
*o*) # other (shipped) dirList="$dirList $projectDir/etc"
if [ -n "$versionNum" ]
then
# debian packaging
dirList="$dirList $prefixDir/openfoam$versionNum/etc"
else
# standard packaging
dirList="$dirList $prefixDir/${WM_PROJECT:-OpenFOAM}-$version/etc"
fi
;; ;;
esac esac
set -- $dirList set -- $dirList
@ -251,7 +265,7 @@ then
[ "$nArgs" -le 1 ] || usage [ "$nArgs" -le 1 ] || usage
# a silly combination, but -quiet does have precedence # a silly combination, but -quiet does have precedence
[ "$optQuiet" = true ] && exit 0 [ -n "$optQuiet" ] && exit 0
for dir for dir
do do
@ -275,13 +289,28 @@ else
if [ -f "$dir/$fileName" ] if [ -f "$dir/$fileName" ]
then then
exitCode=0 exitCode=0
if [ "$optQuiet" = true ] [ -n "$optQuiet" ] && break
then
case "$optShell" in
(*verbose)
echo "Using: $dir/$fileName" 1>&2
;;
esac
case "$optShell" in
csh*)
echo "source $dir/$fileName"
break break
else ;;
sh*)
echo ". $dir/$fileName"
break
;;
*)
echo "$dir/$fileName" echo "$dir/$fileName"
[ "$optAll" = true ] || break [ -n "$optAll" ] || break
fi ;;
esac
fi fi
done done

View File

@ -119,7 +119,7 @@ else
( cd $packDir && git archive --format=tar --prefix=$packDir/ HEAD) > $packBase.tar && ( cd $packDir && git archive --format=tar --prefix=$packDir/ HEAD) > $packBase.tar &&
echo "add in time-stamp and lnInclude directories" 1>&2 && echo "add in time-stamp and lnInclude directories" 1>&2 &&
tar cf $packBase.tar2 $packDir/.timeStamp $packDir/.build `find -H $packDir -type d -name lnInclude` && tar cf $packBase.tar2 $packDir/.timeStamp $packDir/.build $(find -H $packDir -name lnInclude -type d) &&
tar Af $packBase.tar $packBase.tar2 && tar Af $packBase.tar $packBase.tar2 &&
echo "gzip tar file" 1>&2 && echo "gzip tar file" 1>&2 &&

View File

@ -71,8 +71,8 @@ then
elif [ -d system ] elif [ -d system ]
then then
# Run normal case. # Run normal case.
parentDir=`dirname $PWD` parentDir=$(dirname $PWD)
application=`getApplication` application=$(getApplication)
runApplication blockMesh runApplication blockMesh
runApplication $application runApplication $application
else else

View File

@ -93,7 +93,7 @@ if [ ! -d $DIR ]; then
exit 0 exit 0
fi fi
FILES=$(find $DIR -type f -name *vtk) FILES=$(find $DIR -name '*.vtk' -type f)
NAMES=$(for f in $FILES; do basename $f .vtk; done | sort -u) NAMES=$(for f in $FILES; do basename $f .vtk; done | sort -u)
if [ -d $OUT ]; then if [ -d $OUT ]; then

View File

@ -28,8 +28,8 @@
# Description # Description
# Updates the header of application files. # Updates the header of application files.
# By default, writes current version in the header. # By default, writes current version in the header.
# Alternatively version can be specified with -v option. # The version can alternatively be specified with the -v option.
# Also removes consecutive blank lines from file. # Also removes consecutive blank lines from the file.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
usage() { usage() {
@ -66,7 +66,7 @@ do
shift 2 shift 2
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -118,7 +118,7 @@ FoamFileAttribute()
tmpFile=FoamFile.tmp$$ tmpFile=FoamFile.tmp$$
for caseFile for caseFile
do do
if grep FoamFile $caseFile >/dev/null 2>&1 if grep -q FoamFile $caseFile 2>/dev/null
then then
echo "Updating case file: $caseFile" echo "Updating case file: $caseFile"
sed -n '/FoamFile/,/}/p' $caseFile > $tmpFile sed -n '/FoamFile/,/}/p' $caseFile > $tmpFile
@ -137,7 +137,7 @@ do
[ -s $tmpFile ] && cat $tmpFile >| $caseFile [ -s $tmpFile ] && cat $tmpFile >| $caseFile
rm -f $tmpFile 2>/dev/null rm -f $tmpFile 2>/dev/null
else else
echo " Invalid case file: $caseFile" 1>&2 echo "Invalid case file: $caseFile" 1>&2
fi fi
done done

View File

@ -35,6 +35,7 @@ then
set -- . set -- .
elif [ "$1" = "-h" -o "$1" = "-help" ] elif [ "$1" = "-h" -o "$1" = "-help" ]
then then
exec 1>&2
echo "Usage: ${0##*/} [dir1] .. [dirN]" echo "Usage: ${0##*/} [dir1] .. [dirN]"
echo " remove all core files" echo " remove all core files"
exit 1 exit 1
@ -45,8 +46,8 @@ for i
do do
if [ -d "$i" ] if [ -d "$i" ]
then then
echo "removing all core files: $i" echo "removing all core files: $i" 1>&2
find $i \( -type f -name 'core' -o -name 'core.[1-9]*' -o -name 'vgcore.*' \) -print | xargs -t rm 2>/dev/null find $i \( -name core -o -name 'core.[1-9]*' -o -name 'vgcore.*' \) -type f -delete
else else
echo "no directory: $i" 1>&2 echo "no directory: $i" 1>&2
fi fi

View File

@ -35,6 +35,7 @@ then
set -- . set -- .
elif [ "$1" = "-h" -o "$1" = "-help" ] elif [ "$1" = "-h" -o "$1" = "-help" ]
then then
exec 1>&2
echo "Usage: ${0##*/} [dir1] .. [dirN]" echo "Usage: ${0##*/} [dir1] .. [dirN]"
echo " remove all *~ files" echo " remove all *~ files"
exit 1 exit 1
@ -45,8 +46,8 @@ for i
do do
if [ -d "$i" ] if [ -d "$i" ]
then then
echo "removing all *~ files: $i" echo "removing all *~ files: $i" 1>&2
find $i \( -name '*~' -o -name '.*~' \) -print | xargs -t rm 2>/dev/null find $i \( -name '*~' -o -name '.*~' \) -type f -delete -print
else else
echo "no directory: $i" 1>&2 echo "no directory: $i" 1>&2
fi fi

View File

@ -78,6 +78,7 @@ find -H $packDir \
| sed \ | sed \
-e '\@/\.git/@d' \ -e '\@/\.git/@d' \
-e '\@/\.tags/@d' \ -e '\@/\.tags/@d' \
-e '\@/build/@d' \
-e '\@/platforms/@d' \ -e '\@/platforms/@d' \
-e '\@/t/@d' \ -e '\@/t/@d' \
-e '\@/Make[.A-Za-z]*/[^/]*/@d' \ -e '\@/Make[.A-Za-z]*/[^/]*/@d' \

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -61,7 +61,7 @@ export FOAM_INST_DIR
export WM_COMPILER_TYPE=system export WM_COMPILER_TYPE=system
#- Compiler: #- Compiler:
# WM_COMPILER = Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-2] | Clang | Icc # WM_COMPILER= Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-3] | Clang | Icc | IccKNL
export WM_COMPILER=Gcc export WM_COMPILER=Gcc
unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH
@ -136,10 +136,10 @@ export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
. $WM_PROJECT_DIR/etc/config.sh/functions . $WM_PROJECT_DIR/etc/config.sh/functions
# Add in preset user or site preferences: # Add in preset user or site preferences:
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh` _foamSourceEtc prefs.sh
# Evaluate command-line parameters and record settings for later # Evaluate command-line parameters and record settings for later.
# these can be used to set/unset values, or specify alternative pref files # These can be used to set/unset values, or specify alternative pref files.
export FOAM_SETTINGS="$@" export FOAM_SETTINGS="$@"
_foamEval $@ _foamEval $@
@ -148,55 +148,55 @@ _foamEval $@
foamClean=$WM_PROJECT_DIR/bin/foamCleanPath foamClean=$WM_PROJECT_DIR/bin/foamCleanPath
#- Clean PATH #- Clean PATH
cleaned=`$foamClean "$PATH" "$foamOldDirs"` && PATH="$cleaned" cleaned=$($foamClean "$PATH" "$foamOldDirs") && PATH="$cleaned"
#- Clean LD_LIBRARY_PATH #- Clean LD_LIBRARY_PATH
cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"` \ cleaned=$($foamClean "$LD_LIBRARY_PATH" "$foamOldDirs") \
&& LD_LIBRARY_PATH="$cleaned" && LD_LIBRARY_PATH="$cleaned"
#- Clean MANPATH #- Clean MANPATH
cleaned=`$foamClean "$MANPATH" "$foamOldDirs"` && MANPATH="$cleaned" cleaned=$($foamClean "$MANPATH" "$foamOldDirs") && MANPATH="$cleaned"
export PATH LD_LIBRARY_PATH MANPATH export PATH LD_LIBRARY_PATH MANPATH
# Source project setup files # Source project setup files
# ~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource $WM_PROJECT_DIR/etc/config.sh/settings _foamSourceEtc config.sh/settings
_foamSource $WM_PROJECT_DIR/etc/config.sh/aliases _foamSourceEtc config.sh/aliases
# Source user setup files for optional packages # Source user setup files for optional packages
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi` _foamSourceEtc config.sh/mpi
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview` _foamSourceEtc config.sh/paraview
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/vtk` _foamSourceEtc config.sh/vtk
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ensight` _foamSourceEtc config.sh/ensight
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools` _foamSourceEtc config.sh/gperftools
##_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ADIOS` #_foamSourceEtc config.sh/ADIOS
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL` _foamSourceEtc config.sh/CGAL
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch` _foamSourceEtc config.sh/scotch
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/FFTW` _foamSourceEtc config.sh/FFTW
# Clean environment paths again. Only remove duplicates # Clean environment paths again. Only remove duplicates
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#- Clean PATH #- Clean PATH
cleaned=`$foamClean "$PATH"` && PATH="$cleaned" cleaned=$($foamClean "$PATH") && PATH="$cleaned"
#- Clean LD_LIBRARY_PATH #- Clean LD_LIBRARY_PATH
cleaned=`$foamClean "$LD_LIBRARY_PATH"` && LD_LIBRARY_PATH="$cleaned" cleaned=$($foamClean "$LD_LIBRARY_PATH") && LD_LIBRARY_PATH="$cleaned"
#- Clean MANPATH (trailing ':' to find system pages) #- Clean MANPATH (trailing ':' to find system pages)
cleaned=`$foamClean "$MANPATH"`: && MANPATH="$cleaned" cleaned=$($foamClean "$MANPATH") && MANPATH="${cleaned}:"
export PATH LD_LIBRARY_PATH MANPATH export PATH LD_LIBRARY_PATH MANPATH
#- Clean LD_PRELOAD #- Clean LD_PRELOAD
if [ -n "$LD_PRELOAD" ] if [ -n "$LD_PRELOAD" ]
then then
cleaned=`$foamClean "$LD_PRELOAD"` && LD_PRELOAD="$cleaned" cleaned=$($foamClean "$LD_PRELOAD") && LD_PRELOAD="$cleaned"
export LD_PRELOAD export LD_PRELOAD
fi fi

View File

@ -2,7 +2,7 @@
# ========= | # ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. # \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
@ -47,10 +47,12 @@
# be used during the build process. See further notes there. # be used during the build process. See further notes there.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
set adios_version=ADIOS-1.11.0 set adios_version=ADIOS-1.11.1
setenv ADIOS_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version setenv ADIOS_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if ($?FOAM_VERBOSE && $?prompt) then if ($?FOAM_VERBOSE && $?prompt) then
echo "Using adios ($adios_version) -> $ADIOS_ARCH_PATH" echo "Using adios ($adios_version) -> $ADIOS_ARCH_PATH"

View File

@ -49,6 +49,7 @@
# be used during the build process. # be used during the build process.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
set boost_version=boost_1_62_0 set boost_version=boost_1_62_0
set cgal_version=CGAL-4.9 set cgal_version=CGAL-4.9
@ -56,6 +57,7 @@ set cgal_version=CGAL-4.9
setenv BOOST_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version setenv BOOST_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
setenv CGAL_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version setenv CGAL_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if ($?FOAM_VERBOSE && $?prompt) then if ($?FOAM_VERBOSE && $?prompt) then
echo "Using boost ($boost_version) -> $BOOST_ARCH_PATH" echo "Using boost ($boost_version) -> $BOOST_ARCH_PATH"

View File

@ -47,11 +47,12 @@
# be used during the build process. # be used during the build process.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
set fftw_version=fftw-3.3.5 set fftw_version=fftw-3.3.5
setenv FFTW_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version setenv FFTW_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if ($?FOAM_VERBOSE && $?prompt) then if ($?FOAM_VERBOSE && $?prompt) then
echo "Using fftw ($fftw_version) -> $FFTW_ARCH_PATH" echo "Using fftw ($fftw_version) -> $FFTW_ARCH_PATH"

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -63,6 +63,9 @@ case ThirdParty:
case Gcc62: case Gcc62:
set gcc_version=gcc-6.2.0 set gcc_version=gcc-6.2.0
breaksw breaksw
case Gcc63:
set gcc_version=gcc-6.3.0
breaksw
case Clang: case Clang:
set clang_version=llvm-3.7.0 set clang_version=llvm-3.7.0
# set clang_version=llvm-3.8.0 # set clang_version=llvm-3.8.0
@ -84,7 +87,7 @@ case Clang:
setenv WM_CC 'clang' setenv WM_CC 'clang'
setenv WM_CXX 'clang++' setenv WM_CXX 'clang++'
breaksw breaksw
case Icc: case Icc*:
setenv WM_CC 'icc' setenv WM_CC 'icc'
setenv WM_CXX 'icpc' setenv WM_CXX 'icpc'
breaksw breaksw

View File

@ -38,9 +38,7 @@ endif
if ( -r $CEI_HOME ) then if ( -r $CEI_HOME ) then
# Special treatment for 32bit OpenFOAM and 64bit Ensight # Special treatment for 32bit OpenFOAM and 64bit Ensight
if ($WM_ARCH == linux && `uname -m` == x86_64) then if ($WM_ARCH-`uname -m` == linux-x86_64) setenv CEI_ARCH linux_2.6_32
setenv CEI_ARCH linux_2.6_32
endif
# Add to path # Add to path
setenv PATH ${CEI_HOME}/bin:${PATH} setenv PATH ${CEI_HOME}/bin:${PATH}

View File

@ -53,7 +53,7 @@ case SYSTEMOPENMPI:
case OPENMPI: case OPENMPI:
setenv FOAM_MPI openmpi-1.10.4 setenv FOAM_MPI openmpi-1.10.4
# Optional configuration tweaks: # Optional configuration tweaks:
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/openmpi` _foamSourceEtc config.csh/openmpi
setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI setenv MPI_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI

View File

@ -50,12 +50,13 @@
# unsetenv ParaView_VERSION # avoid using ThirdParty settings # unsetenv ParaView_VERSION # avoid using ThirdParty settings
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
setenv ParaView_VERSION 5.0.1 setenv ParaView_VERSION 5.0.1
setenv ParaView_MAJOR detect # Automatically determine major version setenv ParaView_MAJOR detect # Automatically determine major version
set cmake_version=cmake-system set cmake_version=cmake-system
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if ( ! $?ParaView_DIR ) setenv ParaView_DIR if ( ! $?ParaView_DIR ) setenv ParaView_DIR

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -75,7 +75,7 @@ case Linux:
breaksw breaksw
default: default:
echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64" echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32|64"
breaksw breaksw
endsw endsw
@ -124,11 +124,13 @@ case SunOS:
setenv WM_LDFLAGS '-mabi=64 -G0' setenv WM_LDFLAGS '-mabi=64 -G0'
breaksw breaksw
default: default: # An unsupported operating system
echo /bin/cat <<USAGE
echo "Your '$WM_ARCH' operating system is not supported by this release"
echo "of OpenFOAM. For further assistance, please contact www.OpenFOAM.com" Your "$WM_ARCH" operating system is unsupported by this OpenFOAM release.
echo For further assistance, please contact www.OpenFOAM.com
USAGE
breaksw breaksw
endsw endsw
@ -210,7 +212,7 @@ if ( ! $?WM_COMPILER_TYPE ) setenv WM_COMPILER_TYPE system
# Load configured compiler versions, regardless of the compiler type # Load configured compiler versions, regardless of the compiler type
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/compiler` _foamSourceEtc config.csh/compiler
switch ("$WM_COMPILER_TYPE") switch ("$WM_COMPILER_TYPE")
case system: case system:
@ -230,7 +232,7 @@ case ThirdParty:
# Check that the compiler directory can be found # Check that the compiler directory can be found
if ( ! -d "$gccDir" ) then if ( ! -d "$gccDir" ) then
cat << GCC_NOT_FOUND /bin/cat << GCC_NOT_FOUND
=============================================================================== ===============================================================================
Warning in $WM_PROJECT_DIR/etc/config.csh/settings: Warning in $WM_PROJECT_DIR/etc/config.csh/settings:
Cannot find '$WM_COMPILER' compiler installation Cannot find '$WM_COMPILER' compiler installation
@ -272,7 +274,7 @@ GCC_NOT_FOUND
# Check that the compiler directory can be found # Check that the compiler directory can be found
if ( ! -d "$clangDir" ) then if ( ! -d "$clangDir" ) then
cat << CLANG_NOT_FOUND /bin/cat << CLANG_NOT_FOUND
=============================================================================== ===============================================================================
Warning in $WM_PROJECT_DIR/etc/config.csh/settings: Warning in $WM_PROJECT_DIR/etc/config.csh/settings:
Cannot find '$WM_COMPILER' compiler installation Cannot find '$WM_COMPILER' compiler installation

View File

@ -41,6 +41,7 @@
# See the BuildIssues.txt about problems that can be encountered when using # See the BuildIssues.txt about problems that can be encountered when using
# the 'plain' VTK sources. # the 'plain' VTK sources.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
set vtk_version=VTK-7.1.0 set vtk_version=VTK-7.1.0
set mesa_version=mesa-13.0.1 set mesa_version=mesa-13.0.1
@ -48,6 +49,7 @@ set mesa_version=mesa-13.0.1
setenv VTK_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version setenv VTK_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version
setenv MESA_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version setenv MESA_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if ($?FOAM_VERBOSE && $?prompt) then if ($?FOAM_VERBOSE && $?prompt) then
echo "Using vtk ($vtk_version) -> $VTK_DIR" echo "Using vtk ($vtk_version) -> $VTK_DIR"

View File

@ -2,7 +2,7 @@
# ========= | # ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. # \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
@ -46,10 +46,12 @@
# for the appropriate MPI. Eg, libadios_openmpi-system # for the appropriate MPI. Eg, libadios_openmpi-system
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
adios_version=ADIOS-1.11.0 adios_version=ADIOS-1.11.1
export ADIOS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version export ADIOS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then

View File

@ -48,6 +48,7 @@
# - boost_version / cgal_version variables are retained. # - boost_version / cgal_version variables are retained.
# - the LD_LIBRARY_PATH is not adjusted. # - the LD_LIBRARY_PATH is not adjusted.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
boost_version=boost_1_62_0 boost_version=boost_1_62_0
cgal_version=CGAL-4.9 cgal_version=CGAL-4.9
@ -55,6 +56,7 @@ cgal_version=CGAL-4.9
export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then

View File

@ -46,11 +46,12 @@
# - fftw_version variable is retained. # - fftw_version variable is retained.
# - the LD_LIBRARY_PATH is not adjusted. # - the LD_LIBRARY_PATH is not adjusted.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
fftw_version=fftw-3.3.5 fftw_version=fftw-3.3.5
export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then

View File

@ -35,8 +35,10 @@
# A csh version is not needed, since the values here are only sourced # A csh version is not needed, since the values here are only sourced
# during the wmake process # during the wmake process
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
ccmio_version=libccmio-2.6.1 ccmio_version=libccmio-2.6.1
export CCMIO_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$ccmio_version export CCMIO_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$ccmio_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -62,6 +62,9 @@ ThirdParty)
Gcc62) Gcc62)
gcc_version=gcc-6.2.0 gcc_version=gcc-6.2.0
;; ;;
Gcc63)
gcc_version=gcc-6.3.0
;;
Clang) Clang)
clang_version=llvm-3.7.0 clang_version=llvm-3.7.0
# clang_version=llvm-3.8.0 # clang_version=llvm-3.8.0
@ -84,7 +87,7 @@ Clang)
export WM_CC='clang' export WM_CC='clang'
export WM_CXX='clang++' export WM_CXX='clang++'
;; ;;
Icc) Icc*)
export WM_CC='icc' export WM_CC='icc'
export WM_CXX='icpc' export WM_CXX='icpc'
;; ;;

View File

@ -31,22 +31,16 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Fallback value # Fallback value
if [ ! -d "$CEI_HOME" ] [ -d "$CEI_HOME" ] || export CEI_HOME=/usr/local/ensight/CEI
then
export CEI_HOME=/usr/local/ensight/CEI
fi
if [ -r $CEI_HOME ] if [ -r $CEI_HOME ]
then then
# Special treatment for 32bit OpenFOAM and 64bit Ensight # Special treatment for 32bit OpenFOAM and 64bit Ensight
if [ "$WM_ARCH" = linux -a `uname -m` = x86_64 ] [ "$WM_ARCH-$(uname -m)" = linux-x86_64 ] && export CEI_ARCH=linux_2.6_32
then
export CEI_ARCH=linux_2.6_32
fi
# Add to path if required # Add to path if required
if [ "$CEI_HOME/bin/ensight" != "`which ensight 2>/dev/null`" ] if [ "$CEI_HOME/bin/ensight" != "$(command -v ensight)" ]
then then
export PATH=$CEI_HOME/bin:$PATH export PATH=$CEI_HOME/bin:$PATH
fi fi

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -31,9 +31,10 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# First load the standard versions, if necessary # First load the standard versions, if necessary
foamFile=$($WM_PROJECT_DIR/bin/foamEtcFile -mode o config.sh/compiler \ if foamFile=$($WM_PROJECT_DIR/bin/foamEtcFile -mode o config.sh/compiler)
2>/dev/null) then
[ $? -eq 0 ] && _foamSource $foamFile . $foamFile
fi
unset foamFile unset foamFile
@ -57,7 +58,7 @@ Gcc48u)
export WM_CC='gcc-4.8' export WM_CC='gcc-4.8'
export WM_CXX='g++-4.8' export WM_CXX='g++-4.8'
;; ;;
Icc) Icc*)
# Example for ensuring that 3rd software uses the Icc compilers # Example for ensuring that 3rd software uses the Icc compilers
export WM_CC='icc' export WM_CC='icc'
export WM_CXX='icpc' export WM_CXX='icpc'

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -36,20 +36,31 @@ then
# Temporary environment variable for automatically (un)loading functions # Temporary environment variable for automatically (un)loading functions
WM_BASH_FUNCTIONS=loaded WM_BASH_FUNCTIONS=loaded
# Source files, possibly with some verbosity # Source a file, possibly with some verbosity
_foamSource() _foamSource()
{ {
while [ $# -ge 1 ] if [ $# -gt 0 -a -f "$1" ]
do then
[ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Sourcing: $1" 1>&2 [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Using: $1" 1>&2
. $1 . $1
shift fi
done }
# Source an etc file, possibly with some verbosity
_foamSourceEtc()
{
local file
if [ $# -gt 0 ] && file=$($WM_PROJECT_DIR/bin/foamEtcFile "$@")
then
[ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Using: $file" 1>&2
. $file
fi
} }
# Evaluate command-line parameters # Evaluate command-line parameters
_foamEval() _foamEval()
{ {
local file
while [ $# -gt 0 ] while [ $# -gt 0 ]
do do
case "$1" in case "$1" in
@ -71,9 +82,10 @@ then
# Filename: source it # Filename: source it
if [ -f "$1" ] if [ -f "$1" ]
then then
_foamSource "$1" [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Using: $1" 1>&2
. "$1"
else else
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile -silent "$1"` _foamSourceEtc -silent "$1"
fi fi
;; ;;
esac esac
@ -84,31 +96,19 @@ then
# Prefix to PATH # Prefix to PATH
_foamAddPath() _foamAddPath()
{ {
while [ $# -ge 1 ] [ $# -gt 0 ] && export PATH=$1:$PATH;
do
export PATH=$1:$PATH
shift
done
} }
# Prefix to LD_LIBRARY_PATH # Prefix to LD_LIBRARY_PATH
_foamAddLib() _foamAddLib()
{ {
while [ $# -ge 1 ] [ $# -gt 0 ] && export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
do
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
shift
done
} }
# Prefix to MANPATH # Prefix to MANPATH
_foamAddMan() _foamAddMan()
{ {
while [ $# -ge 1 ] [ $# -gt 0 ] && export MANPATH=$1:$MANPATH
do
export MANPATH=$1:$MANPATH
shift
done
} }
else else
@ -117,6 +117,9 @@ else
# ~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~
unset WM_BASH_FUNCTIONS unset WM_BASH_FUNCTIONS
unset -f _foamAddPath _foamAddLib _foamAddMan unset -f _foamAddPath _foamAddLib _foamAddMan
unset -f _foamSource _foamEval unset -f _foamSourceEtc _foamEval
unset -f _foamSource
fi fi
#------------------------------------------------------------------------------

View File

@ -46,11 +46,12 @@
# - gperftools_version variable are retained. # - gperftools_version variable are retained.
# - the LD_LIBRARY_PATH and PATH are not adjusted. # - the LD_LIBRARY_PATH and PATH are not adjusted.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
gperftools_version=gperftools-2.5 gperftools_version=gperftools-2.5
GPERFTOOLS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$gperftools_version GPERFTOOLS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$gperftools_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then

View File

@ -52,9 +52,10 @@
# by creating an empty one with the same name at a user or site location. # by creating an empty one with the same name at a user or site location.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
METIS_VERSION=metis-5.1.0 METIS_VERSION=metis-5.1.0
export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -43,7 +43,7 @@ SYSTEMOPENMPI)
unset OPAL_PREFIX unset OPAL_PREFIX
fi fi
libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` libDir=$(mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/')
# Bit of a hack: strip off 'lib' and hope this is the path to openmpi # Bit of a hack: strip off 'lib' and hope this is the path to openmpi
# include files and libraries. # include files and libraries.
@ -56,7 +56,7 @@ SYSTEMOPENMPI)
OPENMPI) OPENMPI)
export FOAM_MPI=openmpi-1.10.4 export FOAM_MPI=openmpi-1.10.4
# Optional configuration tweaks: # Optional configuration tweaks:
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/openmpi` _foamSourceEtc config.sh/openmpi
export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI export MPI_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
@ -159,7 +159,7 @@ HPMPI)
_foamAddPath $MPI_ARCH_PATH/bin _foamAddPath $MPI_ARCH_PATH/bin
case `uname -m` in case $(uname -m) in
i686) i686)
_foamAddLib $MPI_ARCH_PATH/lib/linux_ia32 _foamAddLib $MPI_ARCH_PATH/lib/linux_ia32
;; ;;
@ -171,7 +171,7 @@ HPMPI)
_foamAddLib $MPI_ARCH_PATH/lib/linux_ia64 _foamAddLib $MPI_ARCH_PATH/lib/linux_ia64
;; ;;
*) *)
echo Unknown processor type `uname -m` 1>&2 echo Unknown processor type $(uname -m) 1>&2
;; ;;
esac esac
;; ;;

View File

@ -53,12 +53,13 @@
# When _foamAddLib is unset (eg, called from makeParaView or from foamPV): # When _foamAddLib is unset (eg, called from makeParaView or from foamPV):
# - the ParaView_VERSION variable is retained. # - the ParaView_VERSION variable is retained.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
ParaView_VERSION=5.0.1 ParaView_VERSION=5.0.1
ParaView_MAJOR=detect # Automatically determine major version ParaView_MAJOR=detect # Automatically determine major version
cmake_version=cmake-system cmake_version=cmake-system
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Clean PATH and LD_LIBRARY_PATH # Clean PATH and LD_LIBRARY_PATH

View File

@ -52,9 +52,10 @@
# by creating an empty one with the same name at a user or site location. # by creating an empty one with the same name at a user or site location.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
SCOTCH_VERSION=scotch_6.0.3 SCOTCH_VERSION=scotch_6.0.3
export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -31,21 +31,21 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Set environment variables according to system type # Set environment variables according to system type
export WM_ARCH=`uname -s` export WM_ARCH=$(uname -s)
case "$WM_ARCH" in case "$WM_ARCH" in
Linux) Linux)
WM_ARCH=linux WM_ARCH=linux
# Compiler specifics # Compiler specifics
case `uname -m` in case $(uname -m) in
i686) i686)
export WM_ARCH_OPTION=32 export WM_ARCH_OPTION=32
export WM_CC='gcc' export WM_CC='gcc'
export WM_CXX='g++' export WM_CXX='g++'
export WM_CFLAGS='-fPIC' export WM_CFLAGS='-fPIC'
export WM_CXXFLAGS='-fPIC -std=c++0x' export WM_CXXFLAGS='-fPIC -std=c++0x'
export WM_LDFLAGS= export WM_LDFLAGS=
;; ;;
x86_64) x86_64)
@ -68,8 +68,7 @@ Linux)
export WM_LDFLAGS='-m64' export WM_LDFLAGS='-m64'
;; ;;
*) *)
echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64"\ echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32|64" 1>&2
1>&2
;; ;;
esac esac
;; ;;
@ -111,7 +110,7 @@ Linux)
;; ;;
*) *)
echo Unknown processor type `uname -m` for Linux 1>&2 echo Unknown processor type $(uname -m) for Linux 1>&2
;; ;;
esac esac
;; ;;
@ -127,11 +126,11 @@ SunOS)
export WM_LDFLAGS='-mabi=64 -G0' export WM_LDFLAGS='-mabi=64 -G0'
;; ;;
*) # An unsupported operating system *) # An unsupported operating system
/bin/cat <<USAGE 1>&2 /bin/cat <<USAGE 1>&2
Your "$WM_ARCH" operating system is not supported by this release Your "$WM_ARCH" operating system is unsupported by this OpenFOAM release.
of OpenFOAM. For further assistance, please contact www.OpenFOAM.com For further assistance, please contact www.OpenFOAM.com
USAGE USAGE
;; ;;
@ -212,7 +211,7 @@ unset GMP_ARCH_PATH MPFR_ARCH_PATH
# Load configured compiler versions, regardless of the compiler type # Load configured compiler versions, regardless of the compiler type
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler` _foamSourceEtc config.sh/compiler
case "$WM_COMPILER_TYPE" in case "$WM_COMPILER_TYPE" in
system) system)
@ -227,7 +226,7 @@ OpenFOAM | ThirdParty)
mpcDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/${mpc_version:-mpc-system} mpcDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/${mpc_version:-mpc-system}
# Check that the compiler directory can be found # Check that the compiler directory can be found
[ -d "$gccDir" ] || cat << GCC_NOT_FOUND 1>&2 [ -d "$gccDir" ] || /bin/cat << GCC_NOT_FOUND 1>&2
=============================================================================== ===============================================================================
Warning in $WM_PROJECT_DIR/etc/config.sh/settings: Warning in $WM_PROJECT_DIR/etc/config.sh/settings:
Cannot find '$WM_COMPILER' compiler installation Cannot find '$WM_COMPILER' compiler installation
@ -272,7 +271,7 @@ GCC_NOT_FOUND
clangDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$clang_version clangDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$clang_version
# Check that the compiler directory can be found # Check that the compiler directory can be found
[ -d "$clangDir" ] || cat << CLANG_NOT_FOUND 1>&2 [ -d "$clangDir" ] || /bin/cat << CLANG_NOT_FOUND 1>&2
=============================================================================== ===============================================================================
Warning in $WM_PROJECT_DIR/etc/config.sh/settings: Warning in $WM_PROJECT_DIR/etc/config.sh/settings:
Cannot find '$WM_COMPILER' compiler installation Cannot find '$WM_COMPILER' compiler installation

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -143,9 +143,9 @@ unset SCOTCH_ARCH_PATH
if [ -n "$foamClean" ] if [ -n "$foamClean" ]
then then
cleaned=`$foamClean "$PATH" "$foamOldDirs"` && PATH="$cleaned" cleaned=$($foamClean "$PATH" "$foamOldDirs") && PATH="$cleaned"
cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"` && LD_LIBRARY_PATH="$cleaned" cleaned=$($foamClean "$LD_LIBRARY_PATH" "$foamOldDirs") && LD_LIBRARY_PATH="$cleaned"
cleaned=`$foamClean "$MANPATH" "$foamOldDirs"` && MANPATH="$cleaned" cleaned=$($foamClean "$MANPATH" "$foamOldDirs") && MANPATH="$cleaned"
fi fi
@ -153,7 +153,6 @@ fi
[ -n "$MANPATH" ] || unset MANPATH [ -n "$MANPATH" ] || unset MANPATH
[ -n "$LD_PRELOAD" ] || unset LD_PRELOAD [ -n "$LD_PRELOAD" ] || unset LD_PRELOAD
unset cleaned foamClean foamOldDirs unset cleaned foamClean foamOldDirs

View File

@ -41,6 +41,7 @@
# See the BuildIssues.txt about problems that can be encountered when using # See the BuildIssues.txt about problems that can be encountered when using
# the 'plain' VTK sources. # the 'plain' VTK sources.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
vtk_version=VTK-7.1.0 vtk_version=VTK-7.1.0
mesa_version=mesa-13.0.1 mesa_version=mesa-13.0.1
@ -48,6 +49,7 @@ mesa_version=mesa-13.0.1
export VTK_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version export VTK_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version
export MESA_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version export MESA_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then

View File

@ -3,7 +3,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -60,7 +60,7 @@ setenv FOAM_INST_DIR `lsof +p $$ |& grep -oE '/.*'$WM_PROJECT'[^/]*/etc/cshrc' |
setenv WM_COMPILER_TYPE system setenv WM_COMPILER_TYPE system
#- Compiler: #- Compiler:
# WM_COMPILER = Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-2] | Clang | Icc # WM_COMPILER= Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-3] | Clang | Icc | IccKNL
setenv WM_COMPILER Gcc setenv WM_COMPILER Gcc
setenv WM_COMPILER_ARCH # defined but empty setenv WM_COMPILER_ARCH # defined but empty
unsetenv WM_COMPILER_LIB_ARCH unsetenv WM_COMPILER_LIB_ARCH
@ -144,20 +144,23 @@ endif
# ~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~
setenv WM_PROJECT_USER_DIR $HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION setenv WM_PROJECT_USER_DIR $HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION
# Source etc files, possibly with some verbosity
# Source files, possibly with some verbosity if ($?FOAM_VERBOSE && $?prompt) then
alias _foamSource 'if ($?FOAM_VERBOSE && $?prompt) echo "Sourcing: \!*"; if (\!* != "") source \!*' alias _foamSourceEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh-verbose \!*`'
else
alias _foamSourceEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh \!*`'
endif
# Add in preset user or site preferences: # Add in preset user or site preferences:
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.csh` _foamSourceEtc prefs.csh
# Evaluate command-line parameters and record settings for later # Evaluate command-line parameters and record settings for later.
# these can be used to set/unset values, or specify alternative pref files # These can be used to set/unset values, or specify alternative pref files.
setenv FOAM_SETTINGS "${*}" setenv FOAM_SETTINGS "${*}"
while ( $#argv > 0 ) while ( $#argv > 0 )
switch ($argv[1]) switch ($argv[1])
case -*: case -*:
# stray option (not meant for us here) -> get out # Stray option (not meant for us here) -> get out
break break
breaksw breaksw
case *=: case *=:
@ -171,11 +174,12 @@ while ( $#argv > 0 )
eval "setenv $argv[1]:s/=/ /" eval "setenv $argv[1]:s/=/ /"
breaksw breaksw
default: default:
# filename: source it # Filename: source it
if ( -f "$1" ) then if ( -f "$1" ) then
_foamSource "$1" if ($?FOAM_VERBOSE && $?prompt) echo "Using: $1"
source "$1"
else else
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile -silent "$1"` _foamSourceEtc -silent "$1"
endif endif
breaksw breaksw
endsw endsw
@ -208,19 +212,19 @@ if ( $status == 0 ) setenv MANPATH $cleaned
# Source project setup files # Source project setup files
# ~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource $WM_PROJECT_DIR/etc/config.csh/settings _foamSourceEtc config.csh/settings
_foamSource $WM_PROJECT_DIR/etc/config.csh/aliases _foamSourceEtc config.csh/aliases
# Source user setup files for optional packages # Source user setup files for optional packages
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/mpi` _foamSourceEtc config.csh/mpi
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/paraview` _foamSourceEtc config.csh/paraview
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/vtk` _foamSourceEtc config.csh/vtk
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ensight` _foamSourceEtc config.csh/ensight
##_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ADIOS` #_foamSourceEtc config.csh/ADIOS
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/CGAL` _foamSourceEtc config.csh/CGAL
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/FFTW` _foamSourceEtc config.csh/FFTW
# Clean environment paths again. Only remove duplicates # Clean environment paths again. Only remove duplicates
@ -234,8 +238,8 @@ set cleaned=`$foamClean "$LD_LIBRARY_PATH"`
if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned
#- Clean MANPATH (trailing ':' to find system pages) #- Clean MANPATH (trailing ':' to find system pages)
set cleaned=`$foamClean "$MANPATH"`: set cleaned=`$foamClean "$MANPATH"`
if ( $status == 0 ) setenv MANPATH "$cleaned" if ( $status == 0 ) setenv MANPATH "${cleaned}:"
#- Clean LD_PRELOAD #- Clean LD_PRELOAD
if ( $?LD_PRELOAD ) then if ( $?LD_PRELOAD ) then
@ -247,6 +251,6 @@ endif
# Cleanup environment: # Cleanup environment:
# ~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~
unset cleaned foamClean foamOldDirs unset cleaned foamClean foamOldDirs
unalias _foamSource unalias _foamSourceEtc
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,11 +4,9 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $WM_PROJECT_DIR/bin/tools/RunFunctions
application=`getApplication`
runApplication blockMesh runApplication blockMesh
runApplication extrudeMesh runApplication extrudeMesh
runApplication $application runApplication $(getApplication)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -14,8 +14,6 @@ if [ -f /usr/include/sys/inotify.h ]
then then
echo " found <sys/inotify.h> -- enabling inotify for file monitoring." echo " found <sys/inotify.h> -- enabling inotify for file monitoring."
export COMP_FLAGS="-DFOAM_USE_INOTIFY" export COMP_FLAGS="-DFOAM_USE_INOTIFY"
else
unset COMP_FLAGS
fi fi
# make (non-shared by default) object # make (non-shared by default) object

View File

@ -100,7 +100,7 @@ Foam::Ostream& Foam::FixedList<T, Size>::writeList
else if else if
( (
Size <= 1 || !shortListLen Size <= 1 || !shortListLen
|| (Size <= shortListLen && contiguous<T>()) || (Size <= unsigned(shortListLen) && contiguous<T>())
) )
{ {
// Write start delimiter // Write start delimiter

View File

@ -26,7 +26,6 @@ License
#include "dictionary.H" #include "dictionary.H"
#include "IFstream.H" #include "IFstream.H"
#include "inputModeEntry.H" #include "inputModeEntry.H"
#include "regExp.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2009-2016 Bernhard Gschaider \\ / A nd | Copyright (C) 2009-2016 Bernhard Gschaider
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2016-2107 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -225,6 +225,10 @@ public:
}; };
// Forward declaration of friend functions and operators
Ostream& operator<<(Ostream& os, const profiling::Information& info);
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class profiling::Information Declaration Class profiling::Information Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -385,7 +389,7 @@ public:
// IOstream Operators // IOstream Operators
friend Ostream& operator<<(Ostream&, const Information&); friend Ostream& operator<<(Ostream& os, const Information& info);
}; };

View File

@ -1,26 +1,23 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
# Define how an mpi-versioned library is created # Clean an mpi-versioned library
# clean the qualified directory
wcleanMpiLib() wcleanMpiLib()
{ {
for libName case "$WM_MPLIB" in (*MPI*)
do
( (
WM_OPTIONS="$WM_OPTIONS$WM_MPLIB" WM_OPTIONS="$WM_OPTIONS$WM_MPLIB"
wclean $libName for libName
do
wclean $libName
done
) )
done ;;
esac
} }
wclean dummy wclean dummy
wcleanMpiLib mpi
case "$WM_MPLIB" in
*MPI*)
wcleanMpiLib mpi
;;
esac
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -10,16 +10,17 @@ cd ${0%/*} || exit 1 # Run from this directory
# use sentinel file to handle version changes # use sentinel file to handle version changes
wmakeMpiLib() wmakeMpiLib()
{ {
local objectsDir
for libName for libName
do do
( (
WM_OPTIONS="$WM_OPTIONS$WM_MPLIB" WM_OPTIONS="$WM_OPTIONS$WM_MPLIB"
libDir="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/Pstream/$libName" objectsDir="$WM_PROJECT_DIR/build/$WM_OPTIONS/src/Pstream/$libName"
whichmpi="$libDir/using:$FOAM_MPI" whichmpi="$objectsDir/using:$FOAM_MPI"
[ -e "$whichmpi" ] || wclean $libName [ -e "$whichmpi" ] || wclean $libName
echo "wmake $targetType $libName" echo "wmake $targetType $libName"
wmake $targetType $libName wmake $targetType $libName
mkdir -p "$libDir" mkdir -p "$objectsDir"
touch "$whichmpi" touch "$whichmpi"
) )
done done

View File

@ -1,18 +1,23 @@
#!/bin/sh #!/bin/sh
# Build optional components (eg, may depend on third-party libraries)
#------------------------------------------------------------------------------
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
# Optional component: (eg, may depend on third-party libraries)
# Parse arguments for compilation (at least for error catching) # Parse arguments for compilation (at least for error catching)
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. $WM_PROJECT_DIR/etc/config.sh/functions
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
# Link with static libccmio only (possibly fewer issues)
warning="==> skip optional libccm adapter" warning="==> skip optional libccm adapter"
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
then
. $settings
else
echo "$warning (no config.sh/ccmio settings)"
exit
fi
# Link with static libccmio only (possibly fewer issues)
if [ -e $CCMIO_ARCH_PATH/include/libccmio/ccmio.h \ if [ -e $CCMIO_ARCH_PATH/include/libccmio/ccmio.h \
-a -e $CCMIO_ARCH_PATH/lib/libccmio.a ] -a -e $CCMIO_ARCH_PATH/lib/libccmio.a ]
then then

View File

@ -49,6 +49,18 @@ SourceFiles
namespace Foam namespace Foam
{ {
// Forward declaration of classes
class Istream;
class Ostream;
// Forward declaration of friend functions and operators
class eddy;
bool operator==(const eddy& a, const eddy& b);
bool operator!=(const eddy& a, const eddy& b);
Istream& operator>>(Istream& is, eddy& e);
Ostream& operator<<(Ostream& os, const eddy& e);
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class eddy Declaration Class eddy Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/

View File

@ -7,8 +7,7 @@ cd ${0%/*} || exit 1 # Run from this directory
# Cleanup library # Cleanup library
rm -f $FOAM_LIBBIN/librunTimePostProcessing* 2>/dev/null rm -f $FOAM_LIBBIN/librunTimePostProcessing* 2>/dev/null
# Cleanup generated files # Cleanup generated files - remove entire top-level
findObjectDir $PWD # remove entire top-level removeObjectDir $PWD
rm -rf "$objectsDir" > /dev/null 2>&1
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -1,46 +1,26 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
# get SCOTCH_VERSION, SCOTCH_ARCH_PATH # Clean an mpi-versioned library
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch`
then
. $settings
echo " using SCOTCH_ARCH_PATH=$SCOTCH_ARCH_PATH"
else
echo
echo " Error: no config.sh/scotch settings"
echo
fi
# Define how to clean an mpi-versioned library
wcleanMpiLib() wcleanMpiLib()
{ {
for libName case "$WM_MPLIB" in (*MPI*)
do
( (
WM_OPTIONS="$WM_OPTIONS$WM_MPLIB" WM_OPTIONS="$WM_OPTIONS$WM_MPLIB"
whichmpi="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/parallel/decompose/$libName/using:$FOAM_MPI" for libName
whichscotch="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/parallel/decompose/$libName/using:$SCOTCH_VERSION" do
wclean $libName wclean $libName
done
) )
done ;;
esac
} }
if [ -n "$SCOTCH_ARCH_PATH" ]
then
wclean scotchDecomp
if [ -d "$FOAM_LIBBIN/$FOAM_MPI" ]
then
wcleanMpiLib ptscotchDecomp
fi
else
echo " skipping scotchDecomp (ptscotchDecomp)"
fi
wclean scotchDecomp
wclean metisDecomp wclean metisDecomp
wclean decompositionMethods wclean decompositionMethods
wclean decompose wclean decompose
wcleanMpiLib ptscotchDecomp
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -126,18 +126,19 @@ hasScotch()
wmakeMpiLib() wmakeMpiLib()
{ {
local decompName="$1" local decompName="$1"
local objectsDir
shift shift
for libName for libName
do do
( (
WM_OPTIONS="$WM_OPTIONS$WM_MPLIB" WM_OPTIONS="$WM_OPTIONS$WM_MPLIB"
libDir="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/parallel/decompose/$libName" objectsDir="$WM_PROJECT_DIR/build/$WM_OPTIONS/src/parallel/decompose/$libName"
whichmpi="$libDir/using:$FOAM_MPI" whichmpi="$objectsDir/using:$FOAM_MPI"
whichdecomp="$libDir/using:$decompName" whichdecomp="$objectsDir/using:$decompName"
[ -e "$whichmpi" -a -e "$whichdecomp" ] || wclean $libName [ -e "$whichmpi" -a -e "$whichdecomp" ] || wclean $libName
echo "wmake $targetType $libName" echo "wmake $targetType $libName"
wmake $targetType $libName wmake $targetType $libName
mkdir -p "$libDir" mkdir -p "$objectsDir"
touch "$whichdecomp" "$whichmpi" touch "$whichdecomp" "$whichmpi"
) )
done done

View File

@ -1,11 +1,10 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory cd ${0%/*} || exit 1 # Run from this directory
makeType=${1:-libso}
wclean $makeType regionModel wclean libso regionModel
wclean $makeType pyrolysisModels wclean libso pyrolysisModels
wclean $makeType surfaceFilmModels wclean libso surfaceFilmModels
wclean $makeType thermalBaffleModels wclean libso thermalBaffleModels
wclean $makeType regionCoupling wclean libso regionCoupling
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -31,7 +31,6 @@ License
#include "ensightSerialOutput.H" #include "ensightSerialOutput.H"
#include "ensightPTraits.H" #include "ensightPTraits.H"
#include "OStringStream.H" #include "OStringStream.H"
#include "regExp.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //

View File

@ -55,7 +55,7 @@ class surfZone;
// Forward declaration of friend functions and operators // Forward declaration of friend functions and operators
class triSurface; class triSurface;
Istream& operator>>(Istream&, triSurface&);
Ostream& operator<<(Ostream&, const triSurface&); Ostream& operator<<(Ostream&, const triSurface&);

View File

@ -4,10 +4,14 @@ cd ${0%/*} || exit 1 # Run from this directory
echo "--------" echo "--------"
echo "Cleaning tutorials ..." echo "Cleaning tutorials ..."
echo "Removing backup files" echo "Removing backup files"
find . -type f \( -name "*~" -o -name "*.bak" \) -exec rm {} \;
find . \( -name core -o -name 'core.[1-9]*' \) -exec rm {} \; find . \( \
find . \( -name '*.pvs' -o -name '*.OpenFOAM' \) -exec rm {} \; -name '*~' -o -name '*.bak' \
rm logs testLoopReport > /dev/null 2>&1 -name core -o -name 'core.[1-9]*' \
-name '*.pvs' -o -name '*.OpenFOAM' \
\) -type f -delete
rm -f logs testLoopReport > /dev/null 2>&1
foamCleanTutorials cases foamCleanTutorials cases

View File

@ -138,7 +138,7 @@ do
[ -d $appDir ] || continue [ -d $appDir ] || continue
echo -n " $appDir..." 1>&2 echo -n " $appDir..." 1>&2
logs=$(find -L $appDir -type f -name 'log.*') logs=$(find -L $appDir -name 'log.*' -type f)
if [ -n "$logs" ] if [ -n "$logs" ]
then then
echo 1>&2 echo 1>&2

View File

@ -211,7 +211,7 @@ fi
echo "Modifying the controlDicts to run only one time step" 1>&2 echo "Modifying the controlDicts to run only one time step" 1>&2
cd ${TEST_RUN_DIR} || exit 1 cd ${TEST_RUN_DIR} || exit 1
for CD in $(find . -type f -name "controlDict*") for CD in $(find . -name "controlDict*" -type f)
do do
mv ${CD} ${CD}.orig mv ${CD} ${CD}.orig
sed \ sed \
@ -225,7 +225,7 @@ done
if [ "$DEFAULT_SCHEMES" = true ] if [ "$DEFAULT_SCHEMES" = true ]
then then
echo "Modifying the fvSchemes to contain only default schemes" 1>&2 echo "Modifying the fvSchemes to contain only default schemes" 1>&2
for FV_SC in $(find . -type f -name fvSchemes) for FV_SC in $(find . -name fvSchemes -type f)
do do
for S in $FV_SCHEMES for S in $FV_SCHEMES
do do
@ -253,7 +253,7 @@ do
do do
rm $SCHEMES_TEMP $SOLVERS_TEMP > /dev/null 2>&1 rm $SCHEMES_TEMP $SOLVERS_TEMP > /dev/null 2>&1
echo " ${ST}" >> $SCHEMES_FILE echo " ${ST}" >> $SCHEMES_FILE
for LOG in $(find ${APP} -type f -name "log.${APP}") for LOG in $(find ${APP} -name "log.${APP}" -type f)
do do
for S in $(grep ${ST} ${LOG} | cut -d" " -f4) for S in $(grep ${ST} ${LOG} | cut -d" " -f4)
do do

View File

@ -44,9 +44,9 @@ done
sample $timeOpt sample $timeOpt
SDIR=sets SDIR=sets
LSDIR=`ls $SDIR | head -1` LSDIR=$(ls $SDIR | head -1)
EXAMPLE_FILE=`ls -1 $SDIR/${LSDIR}/* | head -1` EXAMPLE_FILE=$(ls -1 $SDIR/${LSDIR}/* | head -1)
FS=`basename $EXAMPLE_FILE | cut -d_ -f2-` FS=$(basename $EXAMPLE_FILE | cut -d_ -f2-)
for d in $SDIR/* for d in $SDIR/*
do do

View File

@ -95,7 +95,7 @@ then
fi fi
# paths to data # paths to data
LATESTTIME=`ls $SETSDIR` LATESTTIME=$(ls $SETSDIR)
OFDATAROOT=$SETSDIR/$LATESTTIME OFDATAROOT=$SETSDIR/$LATESTTIME
EXPTDATAROOT=./exptData EXPTDATAROOT=./exptData

View File

@ -82,7 +82,7 @@ do
break break
elif [ -s $lockFile ] elif [ -s $lockFile ]
then then
log "found lock file ${lockFile} containing '$(cat $lockFile)' - waiting" log "found lock file ${lockFile} containing '$(< $lockFile)' - waiting"
else else
log "found lock file ${lockFile} - waiting" log "found lock file ${lockFile} - waiting"
fi fi

View File

@ -25,8 +25,8 @@ do
if [ -e logs/yPlus_0 ] if [ -e logs/yPlus_0 ]
then then
yPlus=`awk < logs/yPlus_0 'END{print $2}'` yPlus=$(awk < logs/yPlus_0 'END{print $2}')
uPlus=`awk < logs/uPlus_0 'END{print $2}'` uPlus=$(awk < logs/uPlus_0 'END{print $2}')
echo "$yPlus $uPlus" >> yPlus_vs_uPlus echo "$yPlus $uPlus" >> yPlus_vs_uPlus
fi fi

View File

@ -17,7 +17,7 @@ runApplication decomposePar -decomposeParDict system/decomposeParDict.hierarchic
# \cp system/decomposeParDict.ptscotch system/decomposeParDict # \cp system/decomposeParDict.ptscotch system/decomposeParDict
runParallel snappyHexMesh -decomposeParDict system/decomposeParDict.ptscotch -profiling -overwrite runParallel snappyHexMesh -decomposeParDict system/decomposeParDict.ptscotch -profiling -overwrite
find . -type f -iname "*level*" -exec rm {} \; find . -iname '*level*' -type f -delete
#- Set the initial fields #- Set the initial fields
restore0Dir -processor restore0Dir -processor

View File

@ -14,7 +14,7 @@ runApplication decomposePar
\cp system/decomposeParDict.ptscotch system/decomposeParDict \cp system/decomposeParDict.ptscotch system/decomposeParDict
runParallel snappyHexMesh -overwrite runParallel snappyHexMesh -overwrite
find . -type f -iname "*level*" -exec rm {} \; find . -iname '*level*' -type f -delete
# - Set the initial fields # - Set the initial fields
restore0Dir -processor restore0Dir -processor

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
#--------------------------------*- C++ -*------------------------------------# #-----------------------------------------------------------------------------#
# ========= | # # ========= | #
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox #
# \\ / O peration | Version: plus # # \\ / O peration | Version: plus #
@ -77,80 +77,80 @@ for xi in $(seq 1 1 $nx); do
# side 1 # side 1
side=1 side=1
x1=`echo $x $tol | awk '{print $1 - $2}'` x1=$(echo $x $tol | awk '{print $1 - $2}')
x2=`echo $x $l $tol | awk '{print $1 + $2 + $3}'` x2=$(echo $x $l $tol | awk '{print $1 + $2 + $3}')
y1=`echo $y $tol | awk '{print $1 - $2}'` y1=$(echo $y $tol | awk '{print $1 - $2}')
y2=`echo $y $l $tol | awk '{print $1 + $2 + $3}'` y2=$(echo $y $l $tol | awk '{print $1 + $2 + $3}')
z1=`echo $z $l $tol | awk '{print $1 + $2 - $3}'` z1=$(echo $z $l $tol | awk '{print $1 + $2 - $3}')
z2=`echo $z $l $tol | awk '{print $1 + $2 + $3}'` z2=$(echo $z $l $tol | awk '{print $1 + $2 + $3}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
# side 2 # side 2
side=2 side=2
x1=`echo $x $l $tol | awk '{print $1 + $2 - $3}'` x1=$(echo $x $l $tol | awk '{print $1 + $2 - $3}')
x2=`echo $x $l $tol | awk '{print $1 + $2 + $3}'` x2=$(echo $x $l $tol | awk '{print $1 + $2 + $3}')
y1=`echo $y $tol | awk '{print $1 - $2}'` y1=$(echo $y $tol | awk '{print $1 - $2}')
y2=`echo $y $l $tol | awk '{print $1 + $2 + $3}'` y2=$(echo $y $l $tol | awk '{print $1 + $2 + $3}')
z1=`echo $z $tol | awk '{print $1 - $2}'` z1=$(echo $z $tol | awk '{print $1 - $2}')
z2=`echo $z $l $tol | awk '{print $1 + $2 + $3}'` z2=$(echo $z $l $tol | awk '{print $1 + $2 + $3}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
# side 3 # side 3
side=3 side=3
x1=`echo $x $tol | awk '{print $1 - $2}'` x1=$(echo $x $tol | awk '{print $1 - $2}')
x2=`echo $x $l $tol | awk '{print $1 + $2 + $3}'` x2=$(echo $x $l $tol | awk '{print $1 + $2 + $3}')
y1=`echo $y $tol | awk '{print $1 - $2}'` y1=$(echo $y $tol | awk '{print $1 - $2}')
y2=`echo $y $l $tol | awk '{print $1 + $2 + $3}'` y2=$(echo $y $l $tol | awk '{print $1 + $2 + $3}')
z1=`echo $z $tol | awk '{print $1 - $2}'` z1=$(echo $z $tol | awk '{print $1 - $2}')
z2=`echo $z $tol | awk '{print $1 + $2}'` z2=$(echo $z $tol | awk '{print $1 + $2}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
# side 4 # side 4
side=4 side=4
x1=`echo $x $tol | awk '{print $1 - $2}'` x1=$(echo $x $tol | awk '{print $1 - $2}')
x2=`echo $x $tol | awk '{print $1 + $2}'` x2=$(echo $x $tol | awk '{print $1 + $2}')
y1=`echo $y $tol | awk '{print $1 - $2}'` y1=$(echo $y $tol | awk '{print $1 - $2}')
y2=`echo $y $l $tol | awk '{print $1 + $2 + $3}'` y2=$(echo $y $l $tol | awk '{print $1 + $2 + $3}')
z1=`echo $z $tol | awk '{print $1 - $2}'` z1=$(echo $z $tol | awk '{print $1 - $2}')
z2=`echo $z $l $tol | awk '{print $1 + $2 + $3}'` z2=$(echo $z $l $tol | awk '{print $1 + $2 + $3}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
# side 5 # side 5
side=5 side=5
x1=`echo $x $tol | awk '{print $1 - $2}'` x1=$(echo $x $tol | awk '{print $1 - $2}')
x2=`echo $x $l $tol | awk '{print $1 + $2 + $3}'` x2=$(echo $x $l $tol | awk '{print $1 + $2 + $3}')
y1=`echo $y $l $tol | awk '{print $1 + $2 - $3}'` y1=$(echo $y $l $tol | awk '{print $1 + $2 - $3}')
y2=`echo $y $l $tol | awk '{print $1 + $2 + $3}'` y2=$(echo $y $l $tol | awk '{print $1 + $2 + $3}')
z1=`echo $z $tol | awk '{print $1 - $2}'` z1=$(echo $z $tol | awk '{print $1 - $2}')
z2=`echo $z $l $tol | awk '{print $1 + $2 + $3}'` z2=$(echo $z $l $tol | awk '{print $1 + $2 + $3}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
# side 6 # side 6
side=6 side=6
x1=`echo $x $tol | awk '{print $1 - $2}'` x1=$(echo $x $tol | awk '{print $1 - $2}')
x2=`echo $x $l $tol | awk '{print $1 + $2 + $3}'` x2=$(echo $x $l $tol | awk '{print $1 + $2 + $3}')
y1=`echo $y $tol | awk '{print $1 - $2}'` y1=$(echo $y $tol | awk '{print $1 - $2}')
y2=`echo $y $tol | awk '{print $1 + $2}'` y2=$(echo $y $tol | awk '{print $1 + $2}')
z1=`echo $z $tol | awk '{print $1 - $2}'` z1=$(echo $z $tol | awk '{print $1 - $2}')
z2=`echo $z $l $tol | awk '{print $1 + $2 + $3}'` z2=$(echo $z $l $tol | awk '{print $1 + $2 + $3}')
addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2 addToFaceSet cube${pad}${n}_side${side} $x1 $x2 $y1 $y2 $z1 $z2
n=$((n+1)) n=$((n+1))
z=`echo $z $offset | awk '{print $1 + $2}'` z=$(echo $z $offset | awk '{print $1 + $2}')
done done
y=`echo $y $offset | awk '{print $1 + $2}'` y=$(echo $y $offset | awk '{print $1 + $2}')
done done
x=`echo $x $offset | awk '{print $1 + $2}'` x=$(echo $x $offset | awk '{print $1 + $2}')
done done
echo "cellSet cubeFacesCells new faceToCell cubeFaceSet owner" >> $tmpSetSet echo "cellSet cubeFacesCells new faceToCell cubeFaceSet owner" >> $tmpSetSet
echo "faceZoneSet cubeFaces new setsToFaceZone cubeFaceSet cubeFacesCells" >> $tmpSetSet echo "faceZoneSet cubeFaces new setsToFaceZone cubeFaceSet cubeFacesCells" >> $tmpSetSet
echo "processing floor" echo "processing floor"
floorMax=`echo 1 $tol | awk '{print $1 + $2}'` floorMax=$(echo 1 $tol | awk '{print $1 + $2}')
createSetsAndZone Floor -$tol $floorMax -$tol $floorMax -$tol $tol createSetsAndZone Floor -$tol $floorMax -$tol $floorMax -$tol $tol
echo "cellSet floorCells new faceToCell FloorFaces owner" >> $tmpSetSet echo "cellSet floorCells new faceToCell FloorFaces owner" >> $tmpSetSet
echo "faceZoneSet floorFaces new setsToFaceZone FloorFaces floorCells" >> $tmpSetSet echo "faceZoneSet floorFaces new setsToFaceZone FloorFaces floorCells" >> $tmpSetSet

View File

@ -4,17 +4,14 @@ cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $WM_PROJECT_DIR/bin/tools/RunFunctions
application=$(getApplication)
runApplication blockMesh runApplication blockMesh
echo "Creating channel" echo "Creating channel"
i=1 for i in 1 2
while [ "$i" -lt 3 ] ; do do
cp system/extrudeMeshDict.${i} system/extrudeMeshDict cp system/extrudeMeshDict.${i} system/extrudeMeshDict
echo "Running extrudeMesh, instance" ${i} echo "Running extrudeMesh, instance" ${i}
extrudeMesh > log.extrudeMesh.${i} extrudeMesh > log.extrudeMesh.${i}
i=`expr $i + 1`
done done
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -44,12 +44,15 @@
sameDependency() sameDependency()
{ {
local depend="$1" local depend="$1"
findObjectDir "$2" # Where generated files are stored local sourceDir="$2"
local sentinel="$objectsDir/ThirdParty" local objectsDir sentinel prev
# Where generated files are stored
objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal
sentinel="$objectsDir/ThirdParty"
echo $sentinel echo $sentinel
local prev
if read -r prev 2>/dev/null < $sentinel if read -r prev 2>/dev/null < $sentinel
then then
if [ "$prev" = "$depend" ] if [ "$prev" = "$depend" ]
@ -70,35 +73,24 @@ sameDependency()
# CMake into objectsDir with external dependency # CMake into objectsDir with external dependency
# - use sentinel file(s) to handle paraview/vtk version changes
cmakeVersioned() cmakeVersioned()
{ {
local depend="$1" local depend="$1"
local sourceDir="$2" local sourceDir="$2"
findObjectDir $sourceDir # Where are generated files stored? local objectsDir sentinel
local sentinel # Where generated files are stored
objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal
# version changed # Version changed
sentinel=$(sameDependency "$depend" "$sourceDir") \ sentinel=$(sameDependency "$depend" "$sourceDir") || \
|| rm -rf "$objectsDir" > /dev/null 2>&1 rm -rf "$objectsDir" > /dev/null 2>&1
test -f "$objectsDir/CMakeCache.txt"
retry=$? # Additional attempt if sources moved
mkdir -p $objectsDir && \ mkdir -p $objectsDir && \
( (
cd $objectsDir || exit 1 cd $objectsDir && cmake $sourceDir && make \
&& echo "$depend" > ${sentinel:-/dev/null}
cmake $sourceDir || {
if [ $retry -eq 0 ]
then
echo "Removing CMakeCache.txt and attempt again" 1>&2
rm -f CMakeCache.txt
cmake $sourceDir
else
exit 1
fi
} && make && { echo "$depend" > $sentinel; }
) )
} }
@ -127,9 +119,11 @@ wmakeLibPv()
for libName for libName
do do
# version changed sentinel=$(sameDependency "$depend" $libName) || \
sentinel=$(sameDependency "$depend" $libName) || wclean $libName wclean $libName
wmake $targetType $libName && { echo "$depend" > $sentinel; }
wmake $targetType $libName \
&& echo "$depend" > ${sentinel:-/dev/null}
done done
} }

View File

@ -34,7 +34,7 @@
if [ -r Make/files ] if [ -r Make/files ]
then then
echo "Error: Make/files already exists - exiting" echo "Error: Make/files already exists - exiting" 1>&2
exit 1 exit 1
fi fi
@ -43,38 +43,32 @@ dirToString=$WM_DIR/platforms/$WM_ARCH$WM_COMPILER/dirToString
[ -d Make ] || mkdir Make [ -d Make ] || mkdir Make
rm -f Make/files rm -f Make/files
for dir in `find . -type d -print` for dir in $(find . -mindepth 1 -type d -print)
do do
case "$dir" in case "$dir" in
. | ./Make | ./lnInclude ) . | ./Make | ./lnInclude )
# Skip special directories # Skip special directories
;; ;;
*) *)
baseDir=`echo $dir | sed 's%^\./%%'` echo "$(echo $dir | $dirToString -strip) = ${dir#./}"
baseDirName=`echo $baseDir | $dirToString`
echo $baseDirName " = " $baseDir >> Make/files
;; ;;
esac esac
done done >> Make/files
[ -s Make/files ] && echo >> Make/files
echo >> Make/files for file in $(find . -name "*.[cCylLfF]" -type f -print)
for file in `find . -name "*.[cCylLfF]" -type f -print`
do do
fileName=${file##*/} pathName=$(echo ${file%/*} | $dirToString -strip)
pathName=`echo ${file%/*} | sed -e 's%^\.%%' -e 's%^/%%' | $dirToString`
if [ -n "$pathName" ] if [ -n "$pathName" ]
then then
echo '$('$pathName')/'$fileName >> Make/files echo '$('$pathName')/'"${file##*/}"
else else
echo $fileName >> Make/files echo "${file##*/}"
fi fi
done done >> Make/files
echo >> Make/files echo >> Make/files
echo 'EXE = $(FOAM_APPBIN)/'"${PWD##*/}" >> Make/files
echo 'EXE = $(FOAM_APPBIN)/'${PWD##*/} >> Make/files
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -34,7 +34,7 @@
if [ -r Make/options ] if [ -r Make/options ]
then then
echo "Error: Make/options already exists - exiting" echo "Error: Make/options already exists - exiting" 1>&2
exit 1 exit 1
fi fi

View File

@ -28,6 +28,11 @@
# Functions to check wmake environment and find .dep and .o files # Functions to check wmake environment and find .dep and .o files
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Ensure these variables are always defined
MakeDir=Make
: ${Script:=wmakeFunctions}
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Check environment variables # Check environment variables
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -48,102 +53,178 @@ checkEnv()
# Search up directories tree for the Make sub-directory # Search up directories tree for the Make sub-directory
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Return the absolute path for a directory or a file's parent directory
# expandPath dirName
# expandPath fileName
#
# Output:
# - the expanded path name
expandPath() expandPath()
{ {
if [ -d "$1" ] if [ -d "$1" ]
then then
exPath=$(cd "$1" && pwd -P) (cd "$1" && pwd -P)
elif [ -n "$1" ]
then
(cd $(dirname "$1") && pwd -P)
else else
exPath=$(cd $(dirname "$1") && pwd -P) pwd -P
fi fi
} }
# Find the target directory, which contains a Make/ directory
# search upwards in its parent directories, but stopping
# when it hits the project root, home, or the file-system root
#
# findTarget dirName
#
# Output:
# - the relative target directory
#
# Global variables used:
# - WM_PROJECT_DIR, HOME
findTarget() findTarget()
{ {
expandPath $WM_PROJECT_DIR local wmpdir=$(expandPath $WM_PROJECT_DIR)
wmpdir=$exPath local home=$(expandPath $HOME)
expandPath $1 local reldir="${1:-.}"
local absdir=$(expandPath $reldir)
if [ "$exPath" = "$wmpdir" \ while [ -n "$absdir" ]
-o "$exPath" = "$HOME" \ do
-o "$exPath" = "/" \ case "$absdir" in
] ($wmpdir | $home | /)
then break
echo "$Script error: could not find Make directory" 1>&2 ;;
exit 1 esac
elif [ -d "$1/Make" ]; then
dir=$1 if [ -d "$reldir/Make" ]
else then
findTarget "$1/.." echo "$reldir"
fi return 0
else
# Check parent directory
absdir="${absdir%/*}"
reldir="$reldir/.."
fi
done
echo "Error: no Make directory for $(expandPath $1)" 1>&2
echo 1>&2
return 1
} }
# Change to 'MakeDir' parent
# - uses 'MakeDir' for its input
#
# Side-effects:
# - unsets targetType
cdSource() cdSource()
{ {
if [ ! -d $MakeDir ] local dir
if [ ! -d "$MakeDir" ]
then then
echo "$Script: '$MakeDir' directory does not exist in $PWD" 1>&2 echo "$Script: '$MakeDir' directory does not exist in $PWD" 1>&2
echo " Searching up directories tree for Make directory" echo " Searching up directories tree for Make directory" 1>&2
findTarget . dir=$(findTarget .) || exit 1 # Fatal
targetType= cd $dir 2>/dev/null || {
echo "$Script error: could not change to directory '$dir'" 1>&2
if [ "$dir" ] exit 1
then }
cd $dir 2>/dev/null || { unset targetType
echo "$Script error: could not change to directory '$dir'" 1>&2
exit 1
}
fi
fi fi
[ -r $MakeDir/files ] || { [ -r $MakeDir/files ] || {
echo "$Script error: file '$MakeDir/files' does not exist in $PWD" 1>&2 echo "$Script error: file '$MakeDir/files' does not exist in $PWD" 1>&2
exit 1 exit 1
} }
} }
# Find the object directory
# findObjectDir dirName
# findObjectDir fileName
#
# Output:
# - the objectsDir
#
# Global variables used:
# - WM_PROJECT_DIR, WM_OPTIONS
findObjectDir() findObjectDir()
{ {
expandPath $WM_PROJECT_DIR local wmpdir=$(expandPath $WM_PROJECT_DIR)
wmpdir=$exPath local exPath=$(expandPath ${1:-.})
expandPath $1 local objectsDir
if echo $exPath | grep "$wmpdir" > /dev/null case "$exPath" in
then ("$wmpdir"/*)
platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS} local buildPath=$WM_PROJECT_DIR/build/${WM_OPTIONS}
objectsDir=$platformPath$(echo $exPath | sed s%$wmpdir%% ) objectsDir=$buildPath$(echo $exPath | sed s%$wmpdir%% )
else ;;
path=$exPath (*)
dir=. local path=$exPath
if [ ! -d Make ] local appDir=.
then [ -d Make ] || appDir=$(findTarget .) || exit 1 # Fatal
findTarget . exPath=$(expandPath $appDir/.)
fi
appDir=$dir
expandPath $appDir/.
objectsDir=$appDir/Make/${WM_OPTIONS}$(echo $path | sed s%$exPath%% ) objectsDir=$appDir/Make/${WM_OPTIONS}$(echo $path | sed s%$exPath%% )
;;
esac
echo "$objectsDir"
}
# Find the object directory and remove it
# removeObjectDir dirName
# removeObjectDir fileName
#
# Output:
# - NONE
#
# Global variables used:
# - WM_PROJECT_DIR, WM_OPTIONS
removeObjectDir()
{
local objectsDir=$(findObjectDir ${1:-.})
if [ -d "$objectsDir" ]
then
rm -rf "$objectsDir" > /dev/null 2>&1
fi fi
} }
if [ -n "$BASH_VERSION" ]; then
# depToSource depFile
#
# Output:
# - the sourceFile corresponding to depFile
#
# Global variables used:
# - WM_OPTIONS
# - WM_MPLIB
if [ -n "$BASH_VERSION" ]
then
depToSource() depToSource()
{ {
sourceFile=${depFile%.dep} local sourceFile=${1%.dep}
sourceFile="${sourceFile/platforms\/${WM_OPTIONS}\//}" sourceFile="${sourceFile/build\/${WM_OPTIONS}\//}"
sourceFile="${sourceFile/build\/${WM_OPTIONS}${WM_MPLIB}\//}"
sourceFile="${sourceFile/Make\/${WM_OPTIONS}\//}" sourceFile="${sourceFile/Make\/${WM_OPTIONS}\//}"
sourceFile="${sourceFile/platforms\/${WM_OPTIONS}${WM_MPLIB}\//}"
sourceFile="${sourceFile/Make\/${WM_OPTIONS}${WM_MPLIB}\//}" sourceFile="${sourceFile/Make\/${WM_OPTIONS}${WM_MPLIB}\//}"
echo "$sourceFile"
} }
else else
depToSource() depToSource()
{ {
sourceFile=$(echo ${depFile%.dep} | \ local sourceFile=$(echo ${1%.dep} | \
sed -e s%platforms/${WM_OPTIONS}/%% \ sed -e s%build/${WM_OPTIONS}/%% \
-e s%Make/${WM_OPTIONS}/%% \ -e s%build/${WM_OPTIONS}${WM_MPLIB}/%% \
-e s%platforms/${WM_OPTIONS}${WM_MPLIB}/%% \ -e s%Make/${WM_OPTIONS}/%% \
-e s%Make/${WM_OPTIONS}${WM_MPLIB}/%% ) -e s%Make/${WM_OPTIONS}${WM_MPLIB}/%% )
echo "$sourceFile"
} }
fi fi

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -33,22 +33,61 @@ Usage
e.g. e.g.
using sh using sh
baseDirName=`echo $dir | sed 's%^\./%%' | $bin/dirToString` baseDirName=$(echo $dir | $bin/dirToString -strip)
using csh using csh
set baseDirName=`echo $dir | sed 's%^\./%%' | $bin/dirToString` set baseDirName=`echo $dir | $bin/dirToString -strip`
\*----------------------------------------------------------------------------*/ \*----------------------------------------------------------------------------*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include <ctype.h> #include <ctype.h>
int main() int main(int argc, char* argv[])
{ {
int c; int c;
int nextupper = 0; int nextupper = 0;
if (argc > 1)
{
if (!strncmp(argv[1], "-h", 2)) /* -h, -help */
{
fprintf
(
stderr,
"\nUsage: %s [-strip]\n\n",
"dirToString"
);
fprintf
(
stderr,
" -strip ignore leading [./] characters.\n\n"
"Transform dir1/dir2 to camel-case dir1Dir2\n\n"
);
return 0;
}
if (!strcmp(argv[1], "-s") || !strcmp(argv[1], "-strip")) /* -s, -strip */
{
while ((c=getchar()) != EOF && (c == '.' || c == '/'))
{
/* nop */
}
if (c == EOF)
{
return 0;
}
putchar(c);
}
}
while ((c=getchar()) != EOF) while ((c=getchar()) != EOF)
{ {
if (c == '/') if (c == '/')
@ -60,13 +99,12 @@ int main()
if (nextupper) if (nextupper)
{ {
putchar(toupper(c)); putchar(toupper(c));
nextupper = 0;
} }
else else
{ {
putchar(c); putchar(c);
} }
nextupper = 0;
} }
} }

View File

@ -4,7 +4,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -147,10 +147,29 @@ int main(int argc, char* argv[])
char *basePos, *dotPos; char *basePos, *dotPos;
int i, silent; int i, silent;
if (argc == 1) if (argc < 2)
{ {
fprintf(stderr, "input file not supplied\n"); fprintf(stderr, "input file not supplied\n");
exit(1); return 1;
}
else if (!strncmp(argv[1], "-h", 2)) /* -h, -help */
{
fprintf
(
stderr,
"\nUsage: %s [-Idir ... -Idir] [-iheader .. -iheader] filename\n\n",
"wmkdep"
);
fprintf
(
stderr,
" -Idir Directories to be searched for headers.\n"
" -iheader Headers to be ignored.\n\n"
"Dependency list generator, similar to 'cpp -M'\n\n"
);
return 0;
} }
sourceFile = strdup(argv[argc-1]); sourceFile = strdup(argv[argc-1]);
@ -161,7 +180,7 @@ int main(int argc, char* argv[])
} }
else else
{ {
basePos++; ++basePos;
} }
if if
@ -176,18 +195,18 @@ int main(int argc, char* argv[])
"cannot find extension in source file name %s\n", "cannot find extension in source file name %s\n",
sourceFile sourceFile
); );
exit(1); return 1;
} }
/* count number of -I directories */ /* count number of -I directories */
nDirectories = 0; nDirectories = 0;
for (i = 1; i < argc; i++) for (i = 1; i < argc; ++i)
{ {
if (strncmp(argv[i], "-I", 2) == 0) if (strncmp(argv[i], "-I", 2) == 0)
{ {
if (strlen(argv[i]) > 2) if (strlen(argv[i]) > 2)
{ {
nDirectories++; ++nDirectories;
} }
} }
} }
@ -196,7 +215,7 @@ int main(int argc, char* argv[])
/* build list of -I directories and add -i ignores */ /* build list of -I directories and add -i ignores */
nDirectories = 0; nDirectories = 0;
for (i = 1; i < argc; i++) for (i = 1; i < argc; ++i)
{ {
if (strncmp(argv[i], "-I", 2) == 0) if (strncmp(argv[i], "-I", 2) == 0)
{ {
@ -240,7 +259,7 @@ int main(int argc, char* argv[])
puts("\n"); puts("\n");
for (i = 0; i < nDirectories; i++) for (i = 0; i < nDirectories; ++i)
{ {
free(directories[i]); free(directories[i]);
} }

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -34,7 +34,7 @@
# lnInclude directories generated for libraries. # lnInclude directories generated for libraries.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/} # Note: need 'Script' for some functions in wmakeFunctions
# Source the wmake functions # Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions . ${0%/*}/scripts/wmakeFunctions
@ -47,6 +47,7 @@ Usage: $Script [OPTION] [dir]
$Script [OPTION] target [dir [MakeDir]] $Script [OPTION] target [dir [MakeDir]]
options: options:
-a | -all Same as the 'all' target
-s | -silent Ignored - for compatibility with wmake -s | -silent Ignored - for compatibility with wmake
-help Print the usage -help Print the usage
@ -67,43 +68,48 @@ USAGE
exit 1 exit 1
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Parse arguments and options # Parse arguments and options
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset dir targetType
MakeDir=Make
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
case "$1" in case "$1" in
-h | -help) -h | -help)
usage usage
;; ;;
-a | -all | all)
targetType=all
;;
-s | -silent) # Ignored - for compatibility with wmake -s | -silent) # Ignored - for compatibility with wmake
shift
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
;; ;;
esac esac
shift
done done
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Check arguments and change to the directory in which to run wclean # Check arguments and change to the directory in which to run wclean.
# The variables 'targetType' and 'MakeDir' are considered global
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset dir targetType
MakeDir=Make
if [ $# -ge 1 ] if [ $# -ge 1 ]
then then
if [ -d "$1" ] if [ -d "$1" ]
then then
dir=$1 dir=$1
elif [ -f "$1" ]
then
dir="${1%/*}"
: ${dir:=.}
else else
targetType=$1 targetType=$1
fi fi
@ -114,7 +120,7 @@ then
# Specified alternative name for the Make sub-directory: # Specified alternative name for the Make sub-directory:
[ $# -ge 3 ] && MakeDir=$3 [ $# -ge 3 ] && MakeDir=$3
if [ "$dir" ] if [ -n "$dir" ]
then then
cd $dir 2>/dev/null || { cd $dir 2>/dev/null || {
echo "$Script error: could not change to directory '$dir'" 1>&2 echo "$Script error: could not change to directory '$dir'" 1>&2
@ -122,15 +128,14 @@ then
} }
fi fi
# Print command # Print command, trim off leading './' for readability
[ -z "$targetType" ] || targetSpace=" " echo "$Script $targetType${targetType:+ }${dir#./}"
echo "$Script $targetType$targetSpace${dir:-.}"
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# If target not specified search up the directory tree for the Make # If target not specified search up the directory tree for the Make
# sub-directory, check the existance of the 'files' file and clean there if # sub-directory, check the existence of the 'files' file and clean there if
# present # present
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@ -144,26 +149,23 @@ fi
if [ "$targetType" = empty ] if [ "$targetType" = empty ]
then then
# First pass: clean up empty source code directories # First pass: clean up empty source code directories
echo "Removing empty directories..." echo "Removing empty directories..."
# Get sub-directories avoiding particular directories # Get sub-directories avoiding particular directories
for dir in $(find . -mindepth 1 -maxdepth 1 \ for d in $(find . -mindepth 1 -maxdepth 1 \
-type d \( -name .git -prune -o -print \) ) -name .git -prune -o -type d -print)
do do
echo " searching: $dir" echo " searching: ${d#./}"
find $dir -depth -type d -empty -exec rmdir {} \; -print find $d -depth -empty -type d -delete -print
done done
# Second pass: clean up object directories with WM_PROJECT_DIR that don't # Second pass: clean up object directories with WM_PROJECT_DIR that don't
# have respective source code folders, along with the respective binaries # have respective source code folders, along with the respective binaries
if [ "$(expandPath $PWD)" = "$WM_PROJECT_DIR" ]
expandPath $PWD
if [ "$exPath" = "$WM_PROJECT_DIR" ]
then then
findObjectDir $PWD objectsDir=$(findObjectDir $PWD 2>/dev/null) || exit 1 # Fatal
if [ -d $objectsDir ] if [ -d "$objectsDir" ]
then then
echo " Removing redundant object directories in $objectsDir" echo " Removing redundant object directories in $objectsDir"
@ -172,7 +174,7 @@ then
do do
# Hack'ish way of getting the original source code path # Hack'ish way of getting the original source code path
depFile=$(dirname $variablesFile) depFile=$(dirname $variablesFile)
depToSource $depFile sourceFile=$(depToSource $depFile)
# Check if the original source code directory exists # Check if the original source code directory exists
if [ ! -r "$sourceFile" ] if [ ! -r "$sourceFile" ]
@ -226,58 +228,48 @@ then
then then
./Allclean ./Allclean
exit $? exit $?
else
# For all the sub-directories containing a 'Make' directory
for dir in `find . \( -type d -a -name Make \)`
do
dir=${dir%/Make} # Parent directory - trim /Make from the end
# If Allwclean exists execute otherwise wclean
if [ -e "$dir/Allwclean" ]
then
$dir/Allwclean
else
$0 $dir
fi
done
fi fi
fi
# targetType is not needed beyond this point # For all directories containing a 'Make' directory, or an 'Allwclean' file
unset targetType for dir in $(find . -name Allwclean -o -name Make)
do
echo ${dir%/*}
done | sort | uniq | while read dir
do
# Use Allwclean if it exists, otherwise wclean
if [ -e "$dir/Allwclean" ]
then
$dir/Allwclean
elif [ -d "$dir/Make" ]
then
$0 $dir
fi
done
fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Clean the 'Make' directory if present # Clean the 'Make' directory if present
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ -d $MakeDir ] if [ -d "$MakeDir" ]
then then
objectsDir=$MakeDir/$WM_OPTIONS objectsDir=$MakeDir/$WM_OPTIONS
if [ $(echo $PWD | grep "$WM_PROJECT_DIR") ] case "$PWD" in
then ("$WM_PROJECT_DIR"/*)
platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS} buildPath=$WM_PROJECT_DIR/build/${WM_OPTIONS}
objectsDir=$platformPath$(echo $PWD | sed s%$WM_PROJECT_DIR%% ) objectsDir=$buildPath$(echo $PWD | sed s%$WM_PROJECT_DIR%% )
fi ;;
esac
rm -rf $objectsDir 2>/dev/null rm -rf $objectsDir 2>/dev/null
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Remove the lnInclude directory if present # Remove the lnInclude directory if present
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ -d lnInclude ] [ -d lnInclude ] && rm -rf lnInclude 2>/dev/null
then
rm -rf lnInclude 2>/dev/null
fi
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage MakeDir
exit 0 # clean exit
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

135
wmake/wcleanBuild Executable file
View File

@ -0,0 +1,135 @@
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
# \\/ 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 3 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, see <http://www.gnu.org/licenses/>.
#
# Script
# wcleanBuild
#
# Usage
# wcleanBuild <platform> [.. <platformN>]
#
# Description
# Deletes the specified 'build/' object files directories from the
# the project top-level 'build/' directory $WM_PROJECT_DIR.
#
# special platforms
# - 'all' removes all platforms.
# - 'compiler' corresponds to $WM_ARCH$WM_COMPILER.
# - 'current' corresponds to $WM_OPTIONS.
#
# You must be in the project or the third-party top-level directory
# to run this script.
#
#------------------------------------------------------------------------------
Script=${0##*/}
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
Usage: $Script <platform> [.. <platformN>]
$Script -all | -compiler | -current [<platform> [.. <platformN>]]
options:
-a, -all Same as 'all'
-comp, -compiler Same as 'compiler'
-c, -current Same as 'current'
-h, -help Print the usage
Deletes the specified build/ object file directories from the project
top-level build/ directory $WM_PROJECT_DIR.
special platforms:
all Remove all platforms
compiler $WM_ARCH$WM_COMPILER (ie, \$WM_ARCH\$WM_COMPILER)
current $WM_OPTIONS (ie, \$WM_OPTIONS)
You must be in the project or the third-party top-level directory
to run this script.
USAGE
exit 1
}
# Find -help anywhere
for i
do
case "$i" in (-h | -help) usage ;; esac
done
#------------------------------------------------------------------------------
# Run from OPENFOAM or THIRDPARTY top-level directory only
wmakeCheckPwd -q "$WM_PROJECT_DIR" 2>/dev/null || \
wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || \
{
cat<<ERROR
${0##*/}: Error incorrect top-level directory
Not in Project: $WM_PROJECT_DIR
Nor in ThirdParty: $WM_THIRD_PARTY_DIR
ERROR
exit 1
}
if [ "$#" -eq 0 ]
then
usage "No platform specified"
else
echo "$# platform(s) to clean"
echo
fi
for name
do
case "$name" in
-comp | -compiler | compiler)
name="$WM_ARCH$WM_COMPILER"
;;
-c | -current | current)
name="$WM_OPTIONS"
;;
-a | -all | all)
echo "all build/ ..."
rm -rf build
echo
break # Can stop now
;;
esac
if [ -n "$name" -d "build/$name" ]
then
echo " '$name'"
rm -rf "build/$name"*
echo
else
echo " '$name' - not built"
echo
fi
done
exit 0 # clean exit
#------------------------------------------------------------------------------

View File

@ -26,67 +26,49 @@
# wcleanLnIncludeAll # wcleanLnIncludeAll
# #
# Usage # Usage
# wcleanLnIncludeAll [dir1] .. [dirN] # wcleanLnIncludeAll [dir1 [..dirN]]
# #
# Description # Description
# Delete all the lnInclude directories in the tree. # Delete all the lnInclude directories in the tree.
# #
##------------------------------------------------------------------------------
Script=${0##*/}
# Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions
#------------------------------------------------------------------------------
# Parse arguments and options
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
# Default to the CWD Usage: ${0##*/} [dir1 [..dirN]]
if [ "$#" -eq 0 ]
then options:
# Add the CWD to the arguments -h, -help Print the usage
set -- .
elif [ "$1" = "-h" -o "$1" = "-help" ] Remove all lnInclude directories found in the tree
then
echo "Usage: $Script [dir1] .. [dirN]" USAGE
echo
echo " Delete all the lnInclude directories in the tree"
echo
exit 1 exit 1
}
# Simple help
if [ "$1" = "-h" -o "$1" = "-help" ]
then
usage
fi fi
#------------------------------------------------------------------------------
# Search up the directory tree for the Make sub-directory,
# check the existance of the 'files' file and clean there if present
#------------------------------------------------------------------------------
# Need to add an option or special logic to control cdSource
# MakeDir=Make
# cdSource
#------------------------------------------------------------------------------
# Search for all lnInclude directories and delete them
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Default is the current directory
[ "$#" -gt 0 ] || set -- .
for dir for dir
do do
if [ -d "$dir" ] if [ -d "$dir" ]
then then
echo "removing lnInclude directories: $dir" echo "removing lnInclude directories: $dir"
find $dir -depth -type d -name lnInclude -exec rm -rf {} \; find $dir -depth -name lnInclude -type d -exec rm -rf {} \;
else else
echo "no directory: $dir" 1>&2 echo "no directory: $dir" 1>&2
fi fi
done done
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script MakeDir
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -26,24 +26,19 @@
# wcleanPlatform # wcleanPlatform
# #
# Usage # Usage
# wcleanPlatform [ -current | -all ] # wcleanPlatform <platform> [.. <platformN>]
# wcleanPlatform <platform> [ ... <platformN> ]
# #
# Description # Description
# Deletes the specified platforms object files directories from the # Deletes the specified 'platforms/' object files directories from the
# the project top-level platforms directory $WM_PROJECT_DIR. # the project top-level 'platforms/' directory $WM_PROJECT_DIR.
# #
# You need to be in the project top-level directory to run this script. # special platforms
# - 'all' removes all platforms, lnInclude directories and cleans tutorials.
# - 'compiler' corresponds to $WM_ARCH$WM_COMPILER.
# - 'current' corresponds to $WM_OPTIONS.
# #
# Options # You must be in the project or the third-party top-level directory
# -current: clean the current platform # to run this script.
# -all: clean all platforms
#
# If either -current or no platform is specified then the current platform
# $WM_OPTIONS is deleted.
#
# If the -all option is specified all platforms and lnInclude directories
# are deleted
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/}
@ -52,76 +47,91 @@ usage() {
exec 1>&2 exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE cat<<USAGE
Usage: $Script [ -current | -all ]
$Script <platform> [ ... <platformN> ]
Deletes the specified platforms object files directories from the Usage: $Script <platform> [.. <platformN>]
the project top-level platforms directory $WM_PROJECT_DIR. $Script -all | -compiler | -current [<platform> [.. <platformN>]]
You need to be in the project top-level directory to run this script. options:
-a, -all Same as 'all'
-comp, -compiler Same as 'compiler'
-c, -current Same as 'current'
-h, -help Print the usage
If either -current or no platform is specified then the current platform
$WM_OPTIONS is deleted.
If the -all option is specified all platforms and lnInclude directories Deletes the specified platforms/ object file directories from the project
are deleted. top-level platforms/ directory $WM_PROJECT_DIR.
special platforms:
all Remove all platforms, lnInclude and clean tutorials
compiler $WM_ARCH$WM_COMPILER (ie, \$WM_ARCH\$WM_COMPILER)
current $WM_OPTIONS (ie, \$WM_OPTIONS)
You must be in the project or the third-party top-level directory
to run this script.
USAGE USAGE
exit 1 exit 1
} }
# Print help message # Find -help anywhere
if [ "$1" = "-h" -o "$1" = "-help" ]; then for i
usage do
fi case "$i" in (-h | -help) usage ;; esac
done
# Check the script is executed from the project top-level directory #------------------------------------------------------------------------------
[ "$PWD" = "$WM_PROJECT_DIR" ] || \ # Run from OPENFOAM or THIRDPARTY top-level directory only
usage "Not in the project top-level directory " $WM_PROJECT_DIR wmakeCheckPwd -q "$WM_PROJECT_DIR" 2>/dev/null || \
wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || \
{
cat<<ERROR
${0##*/}: Error incorrect top-level directory
# Get the platforms from the arguments Not in Project: $WM_PROJECT_DIR
platforms="$@" Nor in ThirdParty: $WM_THIRD_PARTY_DIR
# If no arguments are provided select the current platform ERROR
if [ "$#" -lt 1 ]; then exit 1
platforms="-current" }
fi
if [ "$platforms" = "-all" ]; then if [ "$#" -eq 0 ]
echo "Removing all platforms/sub-directories" then
rm -rf platforms/* usage "No platform specified"
echo "Removing lnInclude directories"
find . -depth -type d \( -name lnInclude \) | xargs rm -rf
tutorials/Allclean
else else
# Loop over the platforms specified and delete the object directories echo "$# platform(s) to clean"
for platform in $platforms echo
do
if [ "$platform" = "-current" ]
then
platform="$WM_OPTIONS"
echo "Current platform $platform"
[ -n "$platform" ] || continue
fi
if [ -d platforms/${platform} ]
then
echo "Cleaning platform $platform"
rm -rf platforms/${platform}*
else
echo "Platform $platform not built"
fi
done
fi fi
for name
#------------------------------------------------------------------------------ do
# Cleanup local variables and functions case "$name" in
#------------------------------------------------------------------------------ -comp | -compiler | compiler)
name="$WM_ARCH$WM_COMPILER"
unset Script platforms ;;
-c | -current | current)
name="$WM_OPTIONS"
;;
-a | -all | all)
echo "all platforms/ ..."
rm -rf platforms
wcleanLnIncludeAll .
[ -x tutorials/Allclean ] && tutorials/Allclean
echo
break # Can stop now
;;
esac
if [ -n "$name" -d "build/$name" ]
then
echo " '$name'"
rm -rf "platforms/$name"*
echo
else
echo " '$name' - not built"
echo
fi
done
exit 0 # clean exit
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -74,18 +74,23 @@ do
esac esac
done done
if [ $# -eq 0 ]
then
echo "$Script: no source file specified" 1>&2
exit 1
fi
# Check environment variables # Check environment variables
checkEnv checkEnv
sourceFile=$1
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Check <file> is is the current directory, # Check <file> is in the current directory,
# otherwise search tree for first occurrance # otherwise search tree for first occurrance
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sourceFile=$1 if [ ! -e "$sourceFile" ]
if [ ! -e $1 ]
then then
sourceFile=$(find . -name $sourceFile -print -quit) sourceFile=$(find . -name $sourceFile -print -quit)
if [ -z "$sourceFile" ] if [ -z "$sourceFile" ]
@ -95,24 +100,13 @@ then
fi fi
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Search up directories tree for the Make sub-directory containing dep files # Search up directories tree for the Make sub-directory containing dep files
# and echo path for the dep file corresponding to the specified source file # and echo path for the dep file corresponding to the specified source file
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
findObjectDir $sourceFile echo "$(findObjectDir $sourceFile)/${sourceFile##*/}.dep"
fileName=${1##*/}
echo $objectsDir/$fileName.dep
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
exit 0 # clean exit
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -53,7 +53,7 @@
# wclean, wcleanPlatform, wcleanLnIncludeAll # wclean, wcleanPlatform, wcleanLnIncludeAll
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/} # Note: need 'Script' for some functions in wmakeFunctions
# Source the wmake functions # Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions . ${0%/*}/scripts/wmakeFunctions
@ -127,8 +127,7 @@ useAllCores()
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Default to compiling the local target only # Default to compiling the local target only
all= unset all update
update=
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
@ -141,10 +140,10 @@ do
export WM_QUIET=1 export WM_QUIET=1
;; ;;
-a | -all | all) -a | -all | all)
all="all" all=all
;; ;;
-q | -queue | queue) -q | -queue | queue)
all="queue" all=queue
;; ;;
# Parallel compilation on all cores of local machine # Parallel compilation on all cores of local machine
-j) -j)
@ -154,13 +153,13 @@ do
echo "Compiling enabled on $WM_NCOMPPROCS cores" echo "Compiling enabled on $WM_NCOMPPROCS cores"
;; ;;
# Parallel compilation on specified number of cores # Parallel compilation on specified number of cores
-j*) -j[1-9]*)
export WM_NCOMPPROCS=${1#-j} export WM_NCOMPPROCS=${1#-j}
echo "Compiling enabled on $WM_NCOMPPROCS cores" echo "Compiling enabled on $WM_NCOMPPROCS cores"
;; ;;
# Non-stop compilation, ignoring errors # Non-stop compilation, ignoring errors
-k | -non-stop) -k | -non-stop)
export WM_CONTINUE_ON_ERROR=1 export WM_CONTINUE_ON_ERROR=true
;; ;;
# Disable scheduled parallel compilation # Disable scheduled parallel compilation
-no-scheduler) -no-scheduler)
@ -173,15 +172,15 @@ do
# - remove empty directories, along with deprecated object directories # - remove empty directories, along with deprecated object directories
# and respective binaries. # and respective binaries.
-update) -update)
update="true" update=true
[ -z "$all" ] && all="all" : ${all:=all} # implies 'all', unless previous set to 'queue' etc.
;; ;;
--) --)
shift shift
break break
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -200,10 +199,10 @@ checkEnv
# When compiling anything but a standalone exe WM_PROJECT and WM_PROJECT_DIR # When compiling anything but a standalone exe WM_PROJECT and WM_PROJECT_DIR
# must be set # must be set
[ "$1" = exe -o \( "$WM_PROJECT" -a "$WM_PROJECT_DIR" \) ] || { [ "$1" = exe -o \( "$WM_PROJECT" -a "$WM_PROJECT_DIR" \) ] || {
echo "$Script error:" 1>&2 exec 1>&2
echo " environment variable \$WM_PROJECT or " \ echo "$Script error:"
"\$WM_PROJECT_DIR not set" 1>&2 echo " environment variable \$WM_PROJECT or \$WM_PROJECT_DIR not set"
echo " while building project library" 1>&2 echo " while building project library"
exit 1 exit 1
} }
@ -219,11 +218,11 @@ then
[ $? -eq 0 ] || unset WM_NCOMPPROCS [ $? -eq 0 ] || unset WM_NCOMPPROCS
fi fi
if [ "$WM_NCOMPPROCS" ] if [ -n "$WM_NCOMPPROCS" ]
then then
parOpt="-j $WM_NCOMPPROCS" parOpt="-j $WM_NCOMPPROCS"
if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ] if [ "$WM_NCOMPPROCS" -gt 1 -a -z "$MAKEFLAGS" ]
then then
lockDir=$HOME/.$WM_PROJECT/.wmake lockDir=$HOME/.$WM_PROJECT/.wmake
@ -240,7 +239,8 @@ fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Check arguments and change to the directory in which to run wmake # Check arguments and change to the directory in which to run wmake.
# The variables 'targetType' and 'MakeDir' are considered global
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset dir targetType unset dir targetType
@ -250,7 +250,11 @@ if [ $# -ge 1 ]
then then
if [ -d "$1" ] if [ -d "$1" ]
then then
dir=$1 dir="$1"
elif [ -f "$1" ]
then
dir="${1%/*}"
: ${dir:=.}
else else
targetType=$1 targetType=$1
fi fi
@ -261,7 +265,7 @@ then
# Specified alternative name for the Make sub-directory: # Specified alternative name for the Make sub-directory:
[ $# -ge 3 ] && MakeDir=$3 [ $# -ge 3 ] && MakeDir=$3
if [ "$dir" ] if [ -n "$dir" ]
then then
cd $dir 2>/dev/null || { cd $dir 2>/dev/null || {
echo "$Script error: could not change to directory '$dir'" 1>&2 echo "$Script error: could not change to directory '$dir'" 1>&2
@ -270,16 +274,15 @@ then
fi fi
# Print command # Print command
[ -z "$targetType" ] || targetSpace=" " echo "$Script $targetType${targetType:+ }${dir:-.}"
echo "$Script $targetType$targetSpace${dir:-.}"
fi fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Recurse the source tree to compile "all" targets # Recurse the source tree to update all
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ -n "$update" ] if [ "$update" = true ]
then then
wrmdep -update wrmdep -update
wrmdep -old wrmdep -old
@ -293,40 +296,37 @@ fi
# Recurse the source tree to compile "all" targets # Recurse the source tree to compile "all" targets
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$all" = "all" ] if [ "$all" = all ]
then then
if [ -e Allwmake ] if [ -e Allwmake ]
then then
./Allwmake -fromWmake $targetType ./Allwmake -fromWmake $targetType
exit $? exit $?
fi
# Find all the sub-directories containing a 'Make' directory
# (xargs is just used to flatten the list)
FOAM_APPS=$(
for d in *
do [ -d "$d" -a "$d" != Optional -a "$d" != Make ] && echo "$d"
done | xargs)
if [ -n "$FOAM_APPS" ]
then
# Compile all applications in sub-directories
$make ${WM_CONTINUE_ON_ERROR:+-k} \
-f $WM_DIR/makefiles/apps \
TARGET="$targetType" FOAM_APPS="$FOAM_APPS"
makeExitCode=$?
else else
# Have to keep track of the main exit code for the call to "make" makeExitCode=0 # For fall-through
makeExitCode=0 fi
# Find all the sub-directories containing a 'Make' directory # Exit if current directory does not contains a 'Make' directory or
FOAM_APPS=$(\ # an error was previously encountered
for d in *; \ if [ ! -d "$MakeDir" -o $makeExitCode -ne 0 ]
do [ -d "$d" -a "$d" != Optional -a "$d" != Make ] \ then
&& echo "$d"; \ exit $makeExitCode
done | xargs \
)
if [ ! "$FOAM_APPS" = "" ]
then
# Compile all applications in sub-directories
$make ${WM_CONTINUE_ON_ERROR:+-k} \
-f $WM_DIR/makefiles/apps \
TARGET="$targetType" FOAM_APPS="$FOAM_APPS"
makeExitCode=$?
fi
# If the current directory contains a 'Make' directory continue
# otherwise exit, or always exit in case of error
if [ ! -d $MakeDir -o $makeExitCode -ne 0 ]
then
exit $makeExitCode
fi
# Clean up tracking variable
unset makeExitCode
fi fi
fi fi
@ -335,12 +335,12 @@ fi
# Recurse the source tree to compile "all" targets using wmakeQueue # Recurse the source tree to compile "all" targets using wmakeQueue
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
if [ "$all" = "queue" ] if [ "$all" = queue ]
then then
[ -n "$update" ] || wmakeLnIncludeAll $parOpt [ "$update" = true ] || wmakeLnIncludeAll $parOpt
( (
export WM_COLLECT_DIR=$WM_PROJECT_DIR/platforms/${WM_OPTIONS}/${PWD////_} export WM_COLLECT_DIR=$WM_PROJECT_DIR/build/${WM_OPTIONS}/${PWD////_}
export WM_SCHEDULER=wmakeCollect export WM_SCHEDULER=wmakeCollect
trap '$WM_SCHEDULER -kill' TERM INT trap '$WM_SCHEDULER -kill' TERM INT
$WM_SCHEDULER -clean \ $WM_SCHEDULER -clean \
@ -353,7 +353,7 @@ fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Search up the directory tree for the Make sub-directory, # Search up the directory tree for the Make sub-directory,
# check the existance of the 'files' file and build there if present # check the existence of the 'files' file and build there if present
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
cdSource cdSource
@ -365,20 +365,18 @@ cdSource
# Transform no option to "libso" if that looks appropriate or remove it # Transform no option to "libso" if that looks appropriate or remove it
# so that the call to make builds the application # so that the call to make builds the application
if [ "$targetType" = "" ] if [ -z "$targetType" ]
then then
unset targetType if grep -qe '^ *LIB *=' "$MakeDir/files" 2>/dev/null
if grep -e '^ *LIB *=' "$MakeDir/files" >/dev/null 2>&1
then then
targetType=libso targetType=libso
fi fi
elif grep -e '^ *EXE *=' "$MakeDir/files" >/dev/null 2>&1 elif grep -qe '^ *EXE *=' "$MakeDir/files" 2>/dev/null
then then
# Application. Remove any nonsense targetType # Application. Remove any nonsense targetType
case "$targetType" in case "$targetType" in
lib*) lib*)
unset targetType unset targetType
break
;; ;;
esac esac
fi fi
@ -390,11 +388,12 @@ fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
objectsDir=$MakeDir/$WM_OPTIONS objectsDir=$MakeDir/$WM_OPTIONS
if [ $(echo $PWD | grep "$WM_PROJECT_DIR") ] case "$PWD" in
then ("$WM_PROJECT_DIR"/*)
platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS} buildPath=$WM_PROJECT_DIR/build/${WM_OPTIONS}
objectsDir=$platformPath$(echo $PWD | sed s%$WM_PROJECT_DIR%% ) objectsDir=$buildPath$(echo $PWD | sed s%$WM_PROJECT_DIR%% )
fi ;;
esac
( (
unset MAKEFLAGS unset MAKEFLAGS
@ -425,16 +424,15 @@ fi
# Make the dependency files # Make the dependency files
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# For libraries create lnInclude ... # For libraries create lnInclude, but only if 'LIB' is declared in 'Make/files'
case "$targetType" in case "$targetType" in
lib | libo | libso | dep ) (lib | libo | libso | dep)
# ... but only if 'LIB' is declared in 'Make/files' if grep -qe '^ *LIB *=' "$MakeDir/files" 2>/dev/null
if grep -e '^ *LIB *=' "$MakeDir/files" >/dev/null 2>&1 then
then $make -s -f $WM_DIR/makefiles/general MAKE_DIR=$MakeDir \
$make -s -f $WM_DIR/makefiles/general MAKE_DIR=$MakeDir \ OBJECTS_DIR=$objectsDir lnInclude
OBJECTS_DIR=$objectsDir lnInclude fi
fi ;;
;;
esac esac
@ -449,12 +447,7 @@ then
OBJECTS_DIR=$objectsDir updatedep OBJECTS_DIR=$objectsDir updatedep
makeExitCode=$? makeExitCode=$?
if [ $makeExitCode -ne 0 ] [ $makeExitCode -eq 0 ] || exit $makeExitCode
then
exit $makeExitCode
fi
unset makeExitCode
fi fi
@ -465,12 +458,6 @@ fi
exec $make -f $WM_DIR/makefiles/general MAKE_DIR=$MakeDir \ exec $make -f $WM_DIR/makefiles/general MAKE_DIR=$MakeDir \
OBJECTS_DIR=$objectsDir $targetType OBJECTS_DIR=$objectsDir $targetType
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage useAllCores update expandPath findTarget
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -89,7 +89,7 @@ dirName="$1"
# Simple check against $PWD # Simple check against $PWD
[ "$PWD" = "$dirName" ] && exit 0 [ "$PWD" = "$dirName" ] && exit 0
# Check existance of <dir> # Check existence of <dir>
[ -d "$dirName" ] || { [ -d "$dirName" ] || {
[ "$quietOpt" = true ] || { [ "$quietOpt" = true ] || {
echo "$Script error: Directory does not exist $dirName" echo "$Script error: Directory does not exist $dirName"
@ -108,14 +108,7 @@ target=$(cd $dirName 2>/dev/null && /bin/pwd)
[ "$quietOpt" = true ] || { [ "$quietOpt" = true ] || {
echo "$Script error: Current directory is not $dirName" echo "$Script error: Current directory is not $dirName"
} }
exit 1 exit 1
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -68,8 +68,8 @@ USAGE
exit 1 exit 1
} }
# Set true to clean-up file if interupted # Set true to clean-up file if interrupted
cleanup= unset cleanup
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
@ -78,7 +78,7 @@ do
usage usage
;; ;;
-kill | -clean) -kill | -clean)
cleanup="true" cleanup=true
shift shift
;; ;;
-*) -*)
@ -110,7 +110,7 @@ makefile="$WM_COLLECT_DIR.Makefile"
# Clean-up files and exit # Clean-up files and exit
if [ -n "$cleanup" ] if [ "$cleanup" = true ]
then then
rm -rf $WM_COLLECT_DIR rm -rf $WM_COLLECT_DIR
rm -f $makefile rm -f $makefile
@ -142,31 +142,23 @@ then
echo -e "\t$E cd $PWD && \\" >> $file echo -e "\t$E cd $PWD && \\" >> $file
echo -e "\t${@:1:($#-1)} $object" >> $file echo -e "\t${@:1:($#-1)} $object" >> $file
echo >> $file echo >> $file
else elif [ -d $WM_COLLECT_DIR ]
if [ -d $WM_COLLECT_DIR ] then
then # Collect all the makefiles into a single makefiles for this build
# Collect all the makefiles into a single makefiles for this build (cd $WM_COLLECT_DIR && ls -1rt | xargs cat > $makefile)
(cd $WM_COLLECT_DIR && ls -1rt | xargs cat > $makefile)
# Add a build rule for all of the targets # Add a build rule for all of the targets
echo 'all: $(OBJECTS)' >> $makefile echo 'all: $(OBJECTS)' >> $makefile
# Clear out all of the target makefiles # Clear out all of the target makefiles
rm -rf $WM_COLLECT_DIR rm -rf $WM_COLLECT_DIR
# Run make on the collected makefile # Run make on the collected makefile
make -j $WM_NCOMPPROCS -f $makefile all make -j $WM_NCOMPPROCS -f $makefile all
rm -f $makefile rm -f $makefile
fi
fi fi
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -60,7 +60,7 @@ do
usage usage
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -102,11 +102,6 @@ fi
} }
#------------------------------------------------------------------------------ exit 0 # clean exit
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -91,7 +91,7 @@ do
shift shift
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -149,7 +149,7 @@ fi
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Remove any broken links first (this helps when file locations have moved) # Remove any broken links first (this helps when file locations have moved)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
find -L . -type l | xargs rm -f find -L . -type l -delete
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -167,12 +167,6 @@ find .. $findOpt \
\) \ \) \
-exec ln $lnOpt {} . \; -exec ln $lnOpt {} . \;
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -62,12 +62,12 @@ findName=lnInclude
nCores=0 nCores=0
# Default 'wmakeLnInclude' option # Default 'wmakeLnInclude' option
wmLnOpt= unset wmLnOpt
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
case "$1" in case "$1" in
-h | -help) # Provide immediate help -h | -help)
usage usage
;; ;;
-u | -update) -u | -update)
@ -75,16 +75,16 @@ do
;; ;;
# Parallel execution on WM_NCOMPPROCS cores # Parallel execution on WM_NCOMPPROCS cores
-j) -j)
nCores=$WM_NCOMPPROCS nCores=${WM_NCOMPPROCS:-0}
test $# -ge 2 && expr $2 + 1 > /dev/null 2>&1 \ test $# -ge 2 && expr $2 + 1 > /dev/null 2>&1 \
&& shift && nCores=$1 && shift && nCores=$1
;; ;;
# Parallel compilation on specified number of cores # Parallel compilation on specified number of cores
-j*) -j[1-9]*)
nCores=${1#-j} nCores=${1#-j}
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
@ -93,9 +93,6 @@ do
shift shift
done done
FAIL=0
if [ "$nCores" -gt 0 ] if [ "$nCores" -gt 0 ]
then then
echo "$Script: starting wmakeLnInclude processes on $nCores cores" echo "$Script: starting wmakeLnInclude processes on $nCores cores"
@ -122,7 +119,7 @@ do
topDir=${MakeDir%/Make} # trim /Make from the end topDir=${MakeDir%/Make} # trim /Make from the end
if [ -d "$topDir" ] if [ -d "$topDir" ]
then then
if grep -e '^ *LIB *=' "$MakeDir/files" >/dev/null 2>&1 if grep -qe '^ *LIB *=' "$MakeDir/files" 2>/dev/null
then then
# If running in parallel start wmakeLnInclude on nCores # If running in parallel start wmakeLnInclude on nCores
# and more as the cores become free # and more as the cores become free
@ -159,12 +156,6 @@ then
sleep 2 sleep 2
fi fi
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -161,7 +161,7 @@ then
# Retrieve OPENFOAM_PLUS=<digits> from $WM_DIR/rules/General/general # Retrieve OPENFOAM_PLUS=<digits> from $WM_DIR/rules/General/general
version=$( version=$(
sed -ne 's@^.*OPENFOAM_PLUS=\([0-9][0-9]*\).*@\1@p' \ sed -ne 's@^.*OPENFOAM_PLUS=\([0-9][0-9]*\).*@\1@p' \
$WM_DIR/rules/General/general 2>/dev/null | tail -1 $WM_DIR/rules/General/general 2>/dev/null
) )
if [ -n "$version" ] if [ -n "$version" ]

View File

@ -237,12 +237,6 @@ then
setterm -foreground default setterm -foreground default
fi fi
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -252,12 +252,6 @@ do
sleep 1 sleep 1
done done
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -25,21 +25,21 @@
# Script wrmdep # Script wrmdep
# #
# Usage # Usage
# wrmdep [-a | -all | all] [file] # wrmdep [-a | -all | all] [file1 [..fileN]]
# wrmdep [-o | -old] [dir1 .. dirN] # wrmdep [-o | -old] [[dir1 [..dirN]]
# wrmdep -update # wrmdep -update
# #
# Description # Description
# This is a catch-all script for pruning .dep files, depending on the # This is a catch-all script for pruning .dep files, depending on the
# provided arguments. # provided arguments.
# #
# [-a | -all | all] [file]: # [-a | -all | all] [file1 [.. fileN]]:
# Remove all .dep files from the object directory tree corresponding to the # Remove all .dep files from the object directory tree corresponding to the
# current source derectory or remove only the .dep files referring to the # current source directory or remove only the .dep files referring to the
# optionally specified [file]. With the -a/-all/all option the .dep files # optionally specified file(s). With the -a/-all/all option the .dep files
# are removed for all platforms rather than just the current platform. # are removed for all platforms rather than just the current platform.
# #
# [-o | -old] [dir1 .. dirN]: # [-o | -old] [dir1 [.. dirN]]:
# Remove *.dep files that are without a corresponding .C or .L source file. # Remove *.dep files that are without a corresponding .C or .L source file.
# This occurs when a directory has been moved. # This occurs when a directory has been moved.
# - prints the questionable directory and *.dep file # - prints the questionable directory and *.dep file
@ -48,10 +48,11 @@
# Search all the "src" and "application" directories of the project for # Search all the "src" and "application" directories of the project for
# broken symbolic links for source code files and then remove all .dep # broken symbolic links for source code files and then remove all .dep
# files that relate to files that no longer exist. # files that relate to files that no longer exist.
# Must be executed in the project top-level directory: $WM_PROJECT_DIR. # Must be executed in the project top-level directory:
# $WM_PROJECT_DIR.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/} # Note: need 'Script' for some functions in wmakeFunctions
# Source the wmake functions # Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions . ${0%/*}/scripts/wmakeFunctions
@ -62,26 +63,27 @@ usage() {
cat<<USAGE cat<<USAGE
Usage: Usage:
$Script [-a | -all | all] [file] $Script [-a | -all | all] [file1 [..fileN]]
Remove all .dep files or remove .dep files referring to <file> Remove all .dep files or remove .dep files referring to <file>
With the -a/-all/all option the .dep files are removed for all With the -a/-all/all option the .dep files are removed for all
platform rather than just the current platform. platforms rather than just the current platform ($WM_OPTIONS).
$Script [-o | -old] [dir1 .. dirN] $Script [-o | -old] [dir1 [..dirN]]
Remove *.dep files that are without a corresponding .C or .L file. Remove *.dep files that are without a corresponding .C or .L file.
This occurs when a directory has been moved. This occurs when a directory has been moved.
- prints the questionable directory and *.dep file - prints the questionable directory and *.dep file
Note: to remove empty directories, run: wclean empty Note: to remove empty directories, run: wclean empty
$Script -update $Script -update
Search all the "src" and "application" directories of the project for Search all the "src" and "application" directories of the project for
broken symbolic links for source code files and then remove all .dep broken symbolic links for source code files and then remove all .dep
files that relate to files that no longer exist. files that relate to files that no longer exist.
Must be executed in the project top-level directory: $WM_PROJECT_DIR Must be executed in the project top-level directory:
$WM_PROJECT_DIR
USAGE USAGE
exit 1 exit 1
@ -93,10 +95,10 @@ USAGE
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Default is for removing all .dep files in the current directory # Default is for removing all .dep files in the current directory
rmdepMode="files" rmdepMode=files
# Default to processing only the current platform # Default to processing only the current platform
all= unset all
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
@ -105,27 +107,28 @@ do
-h | -help) -h | -help)
usage usage
;; ;;
# Non-stop compilation, ignoring errors # All platforms
-a | -all | all) -a | -all | all)
all="all" all=all
shift shift
;; ;;
-o | -old) -o | -old)
rmdepMode="oldFolders" rmdepMode=oldFolders
shift shift
;; ;;
-update) -update)
rmdepMode="updateMode" rmdepMode=updateMode
shift shift
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
;; ;;
esac esac
done done
#------------------------------------------------------------------------------
# Check environment variables # Check environment variables
checkEnv checkEnv
@ -138,10 +141,10 @@ files)
# Remove the selected .dep files from the object tree # Remove the selected .dep files from the object tree
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
findObjectDir . objectsDir=$(findObjectDir .) || exit 1 # Fatal
# With the -a/-all option replace the current platform with a wildcard # With the -a/-all option replace the current platform with a wildcard
if [ "$all" = "all" ] if [ "$all" = all ]
then then
objectsDir=$(echo $objectsDir | sed s%$WM_OPTIONS%*% ) objectsDir=$(echo $objectsDir | sed s%$WM_OPTIONS%*% )
fi fi
@ -149,27 +152,29 @@ files)
if [ "$#" -eq 0 ] if [ "$#" -eq 0 ]
then then
echo "removing all .dep files ..." echo "removing all .dep files ..."
find $objectsDir -name '*.dep' -print | xargs -t rm 2>/dev/null find $objectsDir -name '*.dep' -type f -delete -print
else else
echo "removing .dep files referring to $1 ..." echo "removing .o files corresponding to"
find $objectsDir -name '*.dep' -exec grep -q "$1" '{}' \; \ echo " $@ ..."
-exec rm '{}' \; -print for file
do
find $objectsDir -name '*.dep' -type f \
-exec grep -q "$file" {} \; -delete -print
done
fi fi
;; ;;
oldFolders) oldFolders)
# Default is the current directory # Default is the current directory
[ "$#" -gt 0 ] || set -- . [ "$#" -gt 0 ] || set -- .
echo "Removing dep files that refer to sources files that no longer exist..." echo "Removing dep files that refer to source files that no longer exist..."
for checkDir for checkDir
do do
findObjectDir $checkDir objectsDir=$(findObjectDir $checkDir)
if [ -d $objectsDir ] if [ -d "$objectsDir" ]
then then
echo " searching: $objectsDir" echo " searching: $objectsDir"
else else
@ -177,26 +182,24 @@ oldFolders)
continue continue
fi fi
find $objectsDir -name '*.dep' -print | while read depFile find $objectsDir -name '*.dep' -type f -print | while read depFile
do do
depToSource $depFile sourceFile=$(depToSource $depFile)
# Check C++ or Flex source file exists # Check C++ or Flex source file exists
if [ ! -r "$sourceFile" ]; if [ ! -r "$sourceFile" ]
then then
echo " rm $depFile" echo " rm $depFile"
rm -f $depFile 2>/dev/null rm -f $depFile 2>/dev/null
fi fi
done done
done done
;; ;;
updateMode) updateMode)
if [ "$PWD" != "$WM_PROJECT_DIR" ] if [ "$PWD" != "$WM_PROJECT_DIR" ]
then then
echo "Cannot 'update', not in the project top-level directory" echo "Cannot 'update', not in the project top-level directory" 1>&2
exit 1 exit 1
fi fi
@ -206,30 +209,19 @@ updateMode)
for filePathAndName in $fileNameList for filePathAndName in $fileNameList
do do
fileName=$(basename $filePathAndName) fileName=$(basename $filePathAndName)
echo " 'src': $fileName" for subdir in src applications
cd src do
$Script -a $fileName echo " '$subdir': $fileName"
(cd $subdir && $Script -a $fileName)
echo " 'applications': $fileName" done
cd ../applications
$Script -a $fileName
cd ..
# Just in case, remove the symbolic link as the last step # Just in case, remove the symbolic link as the last step
unlink $filePathAndName unlink $filePathAndName
done done
;; ;;
esac esac
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage rmdepMode all
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -26,7 +26,7 @@
# wrmo # wrmo
# #
# Usage # Usage
# wrmo [-a | -all | all] [file] # wrmo [-a | -all | all] [file1 [... fileN]]
# #
# Description # Description
# Remove all .o files from the object directory tree corresponding to the # Remove all .o files from the object directory tree corresponding to the
@ -35,7 +35,7 @@
# are removed for all platforms rather than just the current platform. # are removed for all platforms rather than just the current platform.
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/} # Note: need 'Script' for some functions in wmakeFunctions
# Source the wmake functions # Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions . ${0%/*}/scripts/wmakeFunctions
@ -44,7 +44,11 @@ usage() {
exec 1>&2 exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE cat<<USAGE
Usage: $Script [file] Usage: $Script [OPTION] [file1 [... fileN]]
options:
-a | -all All platforms (current: $WM_OPTIONS)
-h | -help Print the usage
Remove all .o files or remove .o file corresponding to <file> Remove all .o files or remove .o file corresponding to <file>
@ -58,7 +62,7 @@ USAGE
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Default to processing only the current platform # Default to processing only the current platform
all= unset platform
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
do do
@ -66,17 +70,17 @@ do
-h | -help) -h | -help)
usage usage
;; ;;
# Non-stop compilation, ignoring errors # All platforms
-a | -all | all) -a | -all | all)
all="all" platform=all
shift shift
;; ;;
-*) -*)
usage "unknown option: '$*'" usage "unknown option: '$1'"
;; ;;
*) *)
break break
;; ;;
esac esac
done done
@ -88,10 +92,10 @@ checkEnv
# Remove the selected .o files from the object tree # Remove the selected .o files from the object tree
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
findObjectDir . objectsDir=$(findObjectDir .) || exit 1 # Fatal
# With the -a/-all option replace the current platform with a wildcard # With the -a/-all option replace the current platform with a wildcard
if [ "$all" = "all" ] if [ "$platform" = all ]
then then
objectsDir=$(echo $objectsDir | sed s%$WM_OPTIONS%*% ) objectsDir=$(echo $objectsDir | sed s%$WM_OPTIONS%*% )
fi fi
@ -99,18 +103,16 @@ fi
if [ "$#" -eq 0 ] if [ "$#" -eq 0 ]
then then
echo "removing all .o files ..." echo "removing all .o files ..."
find $objectsDir -name '*.o' -print | xargs -t rm 2>/dev/null find $objectsDir -name '*.o' -type f -delete
else else
echo "removing .o files corresponding to $1 ..." echo "removing .o files corresponding to"
rm $objectsDir/${1%%.*}.o echo " $@ ..."
for file
do
rm $objectsDir/${file%%.*}.o
done
fi fi
exit 0 # clean exit
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script usage
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------