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 #------------------------------------------------------------------------------