diff --git a/Allclean b/Allclean
index de5c650..22792c1 100755
--- a/Allclean
+++ b/Allclean
@@ -4,7 +4,7 @@
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
-# \\/ M anipulation |
+# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
@@ -23,7 +23,7 @@
# along with OpenFOAM. If not, see .
#
# Script
-# AllClean
+# Allclean
#
# Description
# Clean script for third-party applications and libraries
@@ -39,24 +39,115 @@ wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
}
# . etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
+Script=${0##*/}
+usage() {
+ exec 1>&2
+ while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+ cat< [ ... ]]
+options:
+ -all remove all platforms directories.
+ -current clean the current platform ($WM_OPTIONS).
+ -help print the usage
-# clean various packages via 'distclean'
-for i in openmpi-*
-do
- [ -d "$i" ] && ( set -x; cd $i && make distclean )
-done
+Cleanup intermediate build directories.
+Optionally remove specified platform(s) from the ThirdParty platforms
+directory $WM_THIRD_PARTY_DIR/platforms
+USAGE
+ exit 1
+}
-# clean various packages via 'realclean'
-for i in scotch*/src
-do
- [ -d "$i" ] && ( set -x; cd $i && make realclean )
-done
-
-
-# clean out-of-source build directories
-[ -d platforms ] && ( set -x; rm -rf platforms/* )
-
+# Print help message
+if [ "$1" = "-h" -o "$1" = "-help" ]; then
+ usage
+fi
+
+#------------------------------------------------------------------------------
+
+# Clean various packages via 'distclean'
+for i in openmpi-* ADIOS-*
+do
+ [ -d "$i" ] && (
+ echo
+ echo "${i%/*}"
+ echo " make distclean"
+ echo
+ cd $i && make distclean
+ )
+done
+
+
+# Clean various packages via 'realclean'
+for i in scotch*/src
+do
+ [ -d "$i" ] && (
+ echo
+ echo "${i%/*}"
+ echo " make realclean"
+ echo
+ cd $i && make realclean
+ )
+done
+
+
+# Clean out-of-source build directories
+if [ -d build ]
+then
+ echo
+ echo "Clean build/ directory"
+ rm -rf build/*
+fi
+
+# -----------------------------------------------------------------------------
+
+#
+# Clean platforms directories
+#
+if [ "$#" -ge 1 ]
+then
+ echo
+ echo "Clean platforms/sub-directories"
+fi
+
+removePlatform()
+{
+ local platform="$1"
+ if [ -n "$platform" -a -d "platforms/$platform" ]
+ then
+ echo
+ echo "Cleaning platform '$platform'"
+ \rm -rf "platforms/$platform"
+ else
+ echo
+ echo "Platform '$platform' not built"
+ fi
+}
+
+
+# Optionally cleanup platforms specified from the arguments
+while [ "$#" -ge 1 ]
+do
+ case "$1" in
+ -all)
+ echo
+ echo "Removing all platforms/sub-directories"
+ echo
+ \rm -rf platforms/*
+ break
+ ;;
+
+ -current)
+ echo "Current platform '$WM_OPTIONS'"
+ removePlatform "$WM_OPTIONS"
+ ;;
+
+ *)
+ removePlatform "$1"
+ ;;
+ esac
+ shift
+done
#------------------------------------------------------------------------------