|
|
|
#!/bin/sh
|
|
|
|
# Cleans up a local CVS/SVN tree, by removing directories containing
|
|
|
|
# remanants of old stuff which has been removed from CVS/SVN
|
|
|
|
# Those stale dirs often break compilation...
|
|
|
|
|
|
|
|
# Works better with srcdir!=builddir (since it will not remove directories
|
|
|
|
# containing the old executable...)
|
|
|
|
|
|
|
|
# NOTE: by default the script doesn't remove anything, just prints what to do
|
|
|
|
# Copy and paste, or use eval in scripts.
|
|
|
|
# Use '-f' to force it to happen (use with care, no warranties, etc.!)
|
|
|
|
|
|
|
|
# David Faure <faure@kde.org>, script under public domain
|
|
|
|
|
|
|
|
force=0;
|
|
|
|
if [ "$1" = "-f" ]; then force=1; fi
|
|
|
|
|
|
|
|
# Look for toplevel dirs
|
|
|
|
files=`find . -type d | grep -v CVS\$ | grep -v admin\$ | grep -v .libs\$ | fgrep -v .svn`
|
|
|
|
toremove="rm -rf";
|
|
|
|
for i in $files; do if test -d $i; then
|
|
|
|
# List their contents and filter out generated files
|
|
|
|
realfiles=`find $i -type f | egrep -v '.svn|CVS/|Makefile$|Makefile.in$|Makefile.rules.in$|Makefile.calls.in$|\.o$|\.lo$|\.rpo$|\.la$|\.moc|/\.#' `
|
|
|
|
if [ -z "$realfiles" ]; then
|
|
|
|
toremove="$toremove '$i'"
|
|
|
|
fi
|
|
|
|
fi; done
|
|
|
|
|
|
|
|
if [ "$toremove" != "rm -rf" ]; then
|
|
|
|
# Do the same in the builddir, if srcdir != builddir
|
|
|
|
if [ -n "$OBJ_REPLACEMENT" ]; then
|
|
|
|
bdir=`echo $PWD | sed -e "$OBJ_REPLACEMENT"`
|
|
|
|
if test -d $bdir; then
|
|
|
|
bdcmd="( cd $bdir ; $toremove )"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
# Print it or do it
|
|
|
|
if [ $force -eq 1 ]; then
|
|
|
|
eval $toremove
|
|
|
|
eval $bdcmd
|
|
|
|
else
|
|
|
|
echo $toremove
|
|
|
|
echo $bdcmd
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|