# .Sanitize for devo.

# Each directory to survive its way into a release will need a file
# like this one called "./.Sanitize".  All keyword lines must exist,
# and must exist in the order specified by this file.  Each directory
# in the tree will be processed, top down, in the following order.

# Hash started lines like this one are comments and will be deleted
# before anything else is done.  Blank lines will also be squashed
# out.

# The lines between the "Do-first:" line and the "Things-to-keep:"
# line are executed as a /bin/sh shell script before anything else is
# done in this directory.

Do-first:

keep_these_too="${keep_these_too} .cvsignore CYGNUS autoconf
	bfd binutils byacc cvs deja-gnu dejagnu diff dosrel dvips emacs emacs19
	examples expect fileutils flex gas gcc gdb gdbm gdbtest glob gprof grep
	groff include install.sh ispell ld libg++ libgcc libgloss libiberty
	libio librx libstdc++ m4 make mmalloc move-if-change newlib opcodes
	pagas patch prms rcs readline sed send-pr shellutils sim tcl textutils
	tk test-build.mk texinfo tgas utils uudecode wdiff xiberty"

cygnus_files="release release-info build-all.mk COPYING.NEWLIB"

if ( echo $* | grep keep\-cygnus > /dev/null) ; then
	keep_these_too="${keep_these_too} ${cygnus_files}"
else
	lose_these_too="${lose_these_too} ${cygnus_files}"
fi

mpw_files="mpw-README mpw-configure mpw-config.in mpw-build.in ChangeLog.mpw"

if ( echo $* | grep keep\-mpw > /dev/null) ; then
	keep_these_too="${keep_these_too} ${mpw_files}"
else
	lose_these_too="${lose_these_too} ${mpw_files}"
fi

# This top-level directory is special.  We often check out only subsets
# of this directory, and complaining about directories or files we didn't
# check out just gets obnoxious.

list="${keep_these_too}"
keep_these_too=

for file in $list ; do
	if [ -r $file ] || [ -d $file ] ; then
		keep_these_too="${keep_these_too} $file"
	fi
done

list="${lose_these_too}"
lose_these_too=

for file in $list ; do
	if [ -r $file ] || [ -d $file ] ; then
		lose_these_too="${lose_these_too} $file"
	fi
done

# All files listed between the "Things-to-keep:" line and the
# "Do-last:" line will be kept.  All other files will be removed.
# Directories listed in this section will have their own Sanitize
# called.  Directories not listed will be removed in their entirety
# with rm -rf.

Things-to-keep:

COPYING
COPYING.LIB
ChangeLog
Makefile.in
README
config
config.guess
config.sub
configure
configure.in
etc
# These will only show up if they checked out gas-extra-stuff.
configure.bat
makeall.bat

Things-to-lose:

# The lines between the "Do-last:" line and the end of the file
# are executed as a /bin/sh shell script after everything else is
# done.

Do-last:

if ( echo $* | egrep verbose > /dev/null ) ; then
	verbose=true
else
	verbose=
fi

# Remove "sanitize-Sanitize" lines.
if [ -n "${verbose}" ] ; then
	echo Cleaning unconditional sanitizations out of Makefile.in...
fi
cp Makefile.in new
sed '/start\-sanitize\-Sanitize/,/end-\sanitize\-Sanitize/d' < Makefile.in > new
if [ -n "${safe}" -a ! -f .Recover/Makefile.in ] ; then
	mv Makefile.in .Recover
fi
mv new Makefile.in

if [ -n "${verbose}" ] ; then
	echo Thawing away the \"chill\"...
fi

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.
if ( echo $* | grep keep\-chill > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-chill $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping chill stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-chill $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Thawing the \"chill\" out of $i...
			fi
			cp $i new
			sed '/start\-sanitize\-chill/,/end-\sanitize\-chill/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

if [ -n "${verbose}" ] ; then
	echo Removing traces of \"mpw\"...
fi

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.
if ( echo $* | grep keep\-mpw > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-mpw $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping mpw stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-mpw $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"mpw\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-mpw/,/end-\sanitize\-mpw/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

if [ -n "${verbose}" ] ; then
	echo Processing \"arc\"...
fi

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.
if ( echo $* | grep keep\-arc > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-arc $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping arc stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-arc $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"arc\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-arc/,/end-\sanitize\-arc/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

rce_files="config.sub"

if ( echo $* | grep keep\-rce > /dev/null ) ; then
	for i in $rce_files ; do
		if test ! -d $i && (grep sanitize-rce $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping rce stuff in $i
			fi
		fi
	done
else
	for i in $rce_files ; do
		if test ! -d $i && (grep sanitize-rce $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"rce\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-rce/,/end-\sanitize\-rce/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

for i in * ; do
	if test ! -d $i && (grep sanitize $i > /dev/null) ; then
		echo '***' Some mentions of Sanitize are still left in $i! 1>&2
	fi
done

# eof