From ea4936fd4ebda9eec0b3bfe82088f8f38273e1a1 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Tue, 15 Dec 2015 12:12:06 +0000 Subject: [PATCH] wcleanPlatform: Updated version of wcleanMachine and wcleanAll wcleanPlatform is a more general and cleaner version of wcleanMachine supporting the "-all" option to provide the equivalent of wcleanAll. Both wcleanMachine and wcleanAll are now deprecated and will be removed for the next major release. --- wmake/wcleanAll | 6 ++- wmake/wcleanMachine | 5 ++ wmake/wcleanPlatform | 125 +++++++++++++++++++++++++++++++++++++++++++ wmake/wmake | 4 +- 4 files changed, 137 insertions(+), 3 deletions(-) create mode 100755 wmake/wcleanPlatform diff --git a/wmake/wcleanAll b/wmake/wcleanAll index e26504b7e05..0a425b7e900 100755 --- a/wmake/wcleanAll +++ b/wmake/wcleanAll @@ -26,7 +26,9 @@ # wcleanAll # # Description -# search all the directories below the current for the object file +# Deprecated: replaced by wcleanPlatform -all +# +# Search all the directories below the current for the object file # directories of all machines and delete them. # #------------------------------------------------------------------------------ @@ -36,6 +38,8 @@ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<<USAGE +Deprecated: replaced by wcleanPlatform -all + Usage: $Script Remove all object and related files diff --git a/wmake/wcleanMachine b/wmake/wcleanMachine index 04bf7dd0ed0..1ae2561b45c 100755 --- a/wmake/wcleanMachine +++ b/wmake/wcleanMachine @@ -26,6 +26,9 @@ # wcleanMachine # # Description +# +# Deprecated: replaced by wcleanPlatform +# # Searches the directory tree starting at the current directory for the # object file directories of the specified machine type(s) and deletes them. # If a machine type is not provided the current machine type is assumed. @@ -40,6 +43,8 @@ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<<USAGE +Deprecated: replaced by wcleanPlatform + Usage: $Script machineType [... machineTypeN] [ -current ] Searches the directory tree starting at the current directory for the diff --git a/wmake/wcleanPlatform b/wmake/wcleanPlatform new file mode 100755 index 00000000000..6a60af1930d --- /dev/null +++ b/wmake/wcleanPlatform @@ -0,0 +1,125 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 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 +# wcleanPlatform +# +# Description +# Deletes the specified platforms object files directories from the +# the project top-level platforms directory $WM_PROJECT_DIR. +# +# You need to be in the project top-level directory to run this script. +# +# 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 +# +# Usage: wcleanPlatform [ -current | -all ] +# wcleanPlatform <platform> [ ... <platformN> ] +# +# -current: clean the current platform +# -all: clean all platforms +# +#------------------------------------------------------------------------------ +Script=${0##*/} + +usage() { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat<<USAGE +Usage: $Script [ -current | -all ] + $Script <platform> [ ... <platformN> ] + + Deletes the specified platforms object files directories from the + the project top-level platforms directory $WM_PROJECT_DIR. + + You need to be in the project top-level directory to run this script. + + 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. + +USAGE + exit 1 +} + +# Print help message +if [ "$1" = "-h" -o "$1" = "-help" ]; then + usage +fi + +# Check the script is executed from the project top-level directory +[ "$PWD" = "$WM_PROJECT_DIR" ] || \ + usage "Not in the project top-level directory " $WM_PROJECT_DIR + +# Get the platforms from the arguments +platforms="$@" + +# If no arguments are provided select the current platform +if [ "$#" -lt 1 ]; then + platforms="-current" +fi + +if [ "$platforms" = "-all" ]; then + echo "Removing all platforms/sub-directories" + rm -rf platforms/* + + echo "Removing lnInclude directories" + find . -depth -type d \( -name lnInclude \) | xargs rm -rf + + tutorials/Allclean +else + # Loop over the platforms specified and delete the object directories + for platform in $platforms + 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 + + +#------------------------------------------------------------------------------ +# Cleanup local variables and functions +#------------------------------------------------------------------------------ + +unset Script platforms + + +#------------------------------------------------------------------------------ diff --git a/wmake/wmake b/wmake/wmake index 9dfad12d9f0..2a3c9ed9c76 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -49,8 +49,8 @@ # wdep -h # # See also -# wmakeLnInclude, wmakeLnIncludeAll, wdep, wrmdep, wrmo and wrmdepold, -# wclean, wcleanMachine, wcleanAll, wcleanLnIncludeAll +# wmakeLnInclude, wmakeLnIncludeAll, wdep, wrmdep, wrmo, +# wclean, wcleanPlatform, wcleanLnIncludeAll # #------------------------------------------------------------------------------ Script=${0##*/} -- GitLab