#!/bin/sh
+set -e
# Remove everything in directories which are only used for output.
# In most cases, we can remove the directories, too.
# this script (including "gmake clean" in the src/runtime directory)
# several times in a row without failure.. so we leave the output/
# directory in place.)
-rm -rf obj/* output/* doc/user-manual \
- doc/user-manual.junk doc/DBTOHTML_OUTPUT_DIR*
-# (The doc/user-manual.junk and doc/DBTOHTML_OUTPUT_DIR* directories
-# are created by the Cygnus db2html script when it formats the the
-# user manual, and since this db2html script is the one which is
-# currently used to format the manual for the standard binary
-# distribution, we automatically clean up after it here in the
-# standard clean.sh file.)
+rm -rf obj/* output/* src/runtime/genesis/
+
+# Ensure that we know GNUMAKE.
+. ./find-gnumake.sh
+find_gnumake
# Ask some other directories to clean themselves up.
-pwd=`pwd`
+original_pwd=`pwd`
for d in tools-for-build; do
- cd $d
- make clean
- cd $pwd
+ cd ./$d > /dev/null
+ # I hope the -s option is standard. At least GNU make and BSD make
+ # support it. It silences make, since otherwise the output from
+ # this script is just the operations done by these make's, which
+ # is misleading when this script does lotso other operations too.
+ # -- WHN
+ $GNUMAKE -I ../src/runtime -s clean
+ cd "$original_pwd" > /dev/null
done
+( cd ./doc ; sh ./clean.sh )
# Within all directories, remove things which don't look like source
# files. Some explanations:
# (symlinks)
-# are never in the sources; they must've been created
+# are never in the sources, so must've been created
# sbcl
# the runtime environment, created by compiling C code
-# sbcl.h
+# sbcl.h
# information about Lisp code needed to build the runtime environment,
# created by running GENESIS
# Config, target
# architecture-dependent or OS-dependent symlinks
-# *.htm, *.html
-# probably machine-generated translation of DocBook (*.sgml) files
# core
# probably a Unix core dump -- not part of the sources anyway
-# *.o, *.lib, *.nm
+# *.o, *.so, *.lib, *.nm, a.out
# results of C-style linking, assembling, etc.
# *.core, *.map
# looks like SBCL SAVE-LISP-AND-DIE or GENESIS output, and
# certainly not source
-# *~, #*#, TAGS
+# *~, #*#
# common names for editor temporary files
+# TAGS, tags
+# files created by GNU etags and ctags
+# .#*, *.orig, .*.orig, *.rej
+# rubbish left behind by CVS updates
# *.htm, *.html
-# The system doc sources are SGML, any HTML is automatically
-# generated output.
-# depend
+# The system doc sources are mostly texinfo, plus various odds
+# and ends like docstrings embedded in .lisp sources; any HTML is
+# automatically-generated output.
+# depend, *.d
# made by "make depend" (or "gmake depend" or some such thing)
-# *.x86f, *.axpf, *.lbytef, *.fasl
-# typical extensions for fasl files
+# *.lisp-obj, *.fasl, *.x86f, *.axpf, *.lbytef, *.lib
+# typical extensions for fasl files (not just from SBCL, but
+# from other Lisp systems which might be used as xc hosts)
+# *.tmp, *.lisp-temp
+# conventional names for temporary files autogenerated in
+# building or testing
+# test-passed
+# generated by automatic directory-test-thyself procedure
find . \( \
- -type l -or \
- -name '*~' -or \
- -name '#*#' -or \
- -name '?*.x86f' -or \
- -name '?*.axpf' -or \
- -name '?*.lbytef' -or \
- -name '?*.fasl' -or \
- -name 'core' -or \
- -name '?*.core' -or \
- -name '*.map' -or \
- -name '*.nm' -or \
- -name '*.host-obj' -or \
- -name '*.lisp-obj' -or \
- -name '*.target-obj' -or \
- -name '*.lib' -or \
- -name '*.tmp' -or \
- -name '*.o' -or \
- -name 'sbcl' -or \
- -name 'sbcl.h' -or \
- -name 'depend' -or \
- -name '*.htm' -or \
- -name '*.html' -or \
- -name 'TAGS' -or \
- -name 'local-target-features.lisp-expr' \) -print | xargs rm -f
+ -name _darcs -o \
+ -name '{arch}' -o \
+ -name CVS -o \
+ -name .hg -o \
+ -name .git -o \
+ -name .svn \) -type d -prune -o \
+ \( \
+ -type l -o \
+ -name '*~' -o \
+ -name '#*#' -o \
+ -name '.#*' -o \
+ -name '*.orig' -o \
+ -name '.*.orig' -o \
+ -name '*.rej' -o \
+ -name '?*.x86f' -o \
+ -name '?*.axpf' -o \
+ -name '?*.lbytef' -o \
+ -name '?*.fasl' -o \
+ -name '?*.FASL' -o \
+ -name 'core' -o \
+ -name '?*.core' -o \
+ -name '*.map' -o \
+ -name '*.nm' -o \
+ -name '*.host-obj' -o \
+ -name '*.lisp-obj' -o \
+ -name '*.target-obj' -o \
+ -name '*.lib' -o \
+ -name '*.tmp' -o \
+ -name '*.lisp-temp' -o \
+ -name '*.o' -o \
+ -name '*.so' -o \
+ -name '*.d' -o \
+ -name 'a.out' -o \
+ -name 'sbcl' -o \
+ -name 'sbcl.h' -o \
+ -name 'depend' -o \
+ -name 'TAGS' -o \
+ -name 'tags' -o \
+ -name 'test-passed' -o \
+ -name 'ldso-stubs.S' -o \
+ -name 'local-target-features.lisp-expr' \) -print | xargs rm -f