The Makefiles are now in the makefiles sub-directory The "-f | -force" option in wmakeLnInclude is now "-u | -update" for consistency with the other scripts. The "Usage" entry in the headers is now consistently formatted in all scripts.
204 lines
5.7 KiB
Bash
Executable File
204 lines
5.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
|
# \\/ 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
|
|
# wclean
|
|
#
|
|
# Usage
|
|
# wclean [OPTION] [dir]
|
|
# wclean [OPTION] target [dir [MakeDir]]
|
|
#
|
|
# Description
|
|
# Clean up the wmake control directory Make/\$WM_OPTIONS and remove the
|
|
# lnInclude directories generated for libraries.
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
Script=${0##*/}
|
|
|
|
usage() {
|
|
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
cat<<USAGE
|
|
|
|
Usage: $Script [OPTION] [dir]
|
|
$Script [OPTION] target [dir [MakeDir]]
|
|
|
|
options:
|
|
-s | -silent Ignored - for compatibility with wmake
|
|
-help Print the usage
|
|
|
|
Clean up the wmake control directory Make/\$WM_OPTIONS and remove the
|
|
lnInclude directories generated for libraries.
|
|
|
|
The targets correspond to a subset of the 'wmake' special targets:
|
|
all All subdirectories, uses any Allwclean or Allclean
|
|
files if they exist
|
|
exe | lib | libo | libso
|
|
Clean Make, any *.dep files and lnInclude directories
|
|
empty Remove empty sub-directories for the requested dir
|
|
|
|
USAGE
|
|
exit 1
|
|
}
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Parse arguments and options
|
|
#------------------------------------------------------------------------------
|
|
|
|
while [ "$#" -gt 0 ]
|
|
do
|
|
case "$1" in
|
|
-h | -help)
|
|
usage
|
|
;;
|
|
-s | -silent) # Ignored - for compatibility with wmake
|
|
shift
|
|
;;
|
|
-*)
|
|
usage "unknown option: '$*'"
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Check arguments and change to the directory in which to run wclean
|
|
#------------------------------------------------------------------------------
|
|
|
|
unset dir targetType
|
|
MakeDir=Make
|
|
|
|
if [ $# -ge 1 ]
|
|
then
|
|
|
|
if [ -d "$1" ]
|
|
then
|
|
dir=$1
|
|
else
|
|
targetType=$1
|
|
fi
|
|
|
|
# Specified directory name:
|
|
[ $# -ge 2 ] && dir=$2
|
|
|
|
# Specified alternative name for the Make sub-directory:
|
|
[ $# -ge 3 ] && MakeDir=$3
|
|
|
|
if [ "$dir" ]
|
|
then
|
|
cd $dir 2>/dev/null || {
|
|
echo "$Script error: could not change to directory '$dir'" 1>&2
|
|
exit 1
|
|
}
|
|
fi
|
|
|
|
# Provide some feedback
|
|
echo "$Script ${dir:-./}"
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Remove empty sub-directories and exit
|
|
#------------------------------------------------------------------------------
|
|
|
|
if [ "$targetType" = empty ]
|
|
then
|
|
# Get sub-directories avoiding particular directories
|
|
for dir in $(find . -mindepth 1 -maxdepth 1 \
|
|
-type d \( -name .git -prune -o -print \) )
|
|
do
|
|
echo "check dir: $dir"
|
|
find $dir -depth -type d -empty -exec rmdir {} \; -print
|
|
done
|
|
|
|
exit 0
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Recurse the directories tree
|
|
#------------------------------------------------------------------------------
|
|
|
|
if [ "$targetType" = all ]
|
|
then
|
|
if [ -e Allwclean ] # Consistent with Allwmake
|
|
then
|
|
./Allwclean
|
|
exit $?
|
|
elif [ -e Allclean ] # Often used for tutorial cases
|
|
then
|
|
./Allclean
|
|
exit $?
|
|
else
|
|
# For all the sub-directories containing a 'Make' directory
|
|
for dir in `find . \( -type d -a -name Make \)`
|
|
do
|
|
echo $dir
|
|
$0 ${dir%/Make} # Parent directory - trim /Make from the end
|
|
done
|
|
fi
|
|
fi
|
|
|
|
# targetType is not needed beyond this point
|
|
unset targetType
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Clean the 'Make' directory if present
|
|
#------------------------------------------------------------------------------
|
|
|
|
if [ -d $MakeDir ]
|
|
then
|
|
objectsDir=$MakeDir/$WM_OPTIONS
|
|
if echo $PWD | grep "$WM_PROJECT_DIR"
|
|
then
|
|
platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS}
|
|
objectsDir=$platformPath$(echo $PWD | sed s%$WM_PROJECT_DIR%% )
|
|
fi
|
|
rm -rf $objectsDir 2>/dev/null
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Remove the lnInclude directory if present
|
|
#------------------------------------------------------------------------------
|
|
|
|
if [ -d lnInclude ]
|
|
then
|
|
rm -rf lnInclude 2>/dev/null
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup local variables and functions
|
|
#------------------------------------------------------------------------------
|
|
|
|
unset Script usage
|
|
|
|
|
|
#------------------------------------------------------------------------------
|