########################
#
#	 H    H  EEEEEE Y     Y  !!
#	 H    H  E       Y   Y   !!
#	 H    H  E        Y Y    !!
#	 H    H  E         Y     !!
#	 HHHHHH  EEEEE     Y     !!
#	 H    H  E         Y     !!
#	 H    H  E         Y     !!
#	 H    H  E         Y
#	 H    H  EEEEEE    Y     !!
#
# YO!  READ ME!!!!!!!!!
# If you're about to add a file or directory which isn't checked out as part
# of every module in devo (e.g., if "cvs co gas+utils" won't get it, or if
# "cvs co gcc" won't get it), then don't, Don't, DON'T add it to the regular
# things-to-keep or things-to-lose sections.  Instead, add it to the setting
# of keep_these_too or lose_these_too before those variables are rescanned
# to check for the existence of the items listed in them.
#
# Otherwise, somebody will check out some package that doesn't include your
# new file, and will get warnings from Sanitize when everything is really
# okay.  You don't want to get people in the habit of ignoring complaints from
# Sanitize, do you?  No, I didn't think so.
#
# If you do add a file to the regular things-to-keep section, don't forget
# to add the corresponding entry to the devo-support entry (or whatever) in
# the modules file.
#
########################

# .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 autoconf automake
	apache bash 
	bfd binutils bison byacc cvs deja-gnu dejagnu diff dosrel dvips
	emacs emacs19 examples expect fileutils findutils flex
	gas gawk gcc gdb gdbm gdbtest glob gperf gprof grep grez groff
	guile gzip
	include inet install-sh intl ispell
	ld less libgcc libgloss libiberty libio
	libstdc++ libtool
	m4 make mkinstalldirs mmalloc move-if-change newlib ncurses opcodes
	pagas patch perl prms
	rcs readline sed send-pr shellutils sim tar textutils time
	texinfo tgas utils uudecode wdiff xiberty
	configure.bat makeall.bat setup.com makefile.vms winsup
	mpw-README mpw-configure mpw-config.in mpw-build.in mpw-install
	ltconfig ltmain.sh missing ylwrap"

lose_these_too="${lose_these_too} libg++ librx testsuite"

cygnus_files="release release-info build-all.mk test-build.mk CYGNUS 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

gdbtk_files="tcl tk itcl tix libgui"

if ( echo $* | grep lose\-gdbtk > /dev/null) ; then
	lose_these_too="${lose_these_too} ${gdbtk_files}"
	if [ -n "${verbose}" ] ; then
		echo Deleting ${gdbtk_files}
	fi
else
	keep_these_too="${keep_these_too} ${gdbtk_files}"
	if [ -n "${verbose}" ] ; then
		echo Keeping ${gdbtk_files}
	fi
fi

# This is for newlib net releases.
newlib_file="COPYING.NEWLIB"

if (echo $* | grep keep\-newlib > /dev/null) ; then
	if (echo $* | grep -v keep\-cygnus > /dev/null) ; then
		keep_these_too="${keep_these_too} ${newlib_file}"
		lose_these_too="`echo ${lose_these_too} | sed -e s/${newlib_file}//`"
	fi
else
	true; # Let keep-cygnus handle it.
fi

# IDK releases don't include files which only matter to CDK.
inet_files="COPYING.LIB config config-ml.in etc symlink-tree"

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

ide_files="libide libidetcl vmake jstools"

if (echo $* | grep keep\-ide > /dev/null); then
	keep_these_too="${keep_these_too} ${ide_files}"
	test -n "$verbose" && echo Keeping ${ide_files}
else
	lose_these_too="${lose_these_too} ${ide_files}"
fi

flexlm_files="flexlm"

if (echo $* | grep keep\-cygnus > /dev/null); then
	keep_these_too="${keep_these_too} ${flexlm_files}"
	test -n "$verbose" && echo Keeping ${flexlm_files}
else
	lose_these_too="${lose_these_too} ${flexlm_files}"
fi

# CGEN files:
# It is not yet clear if the cgen package will be shipped with the
# simulators.
cgen_files="cgen"

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

# Java stuff
java_files="boehm-gc libjava"

if (echo $* | grep keep\-java > /dev/null); then
	keep_these_too="${keep_these_too} ${java_files}"
else
	lose_these_too="${lose_these_too} ${java_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="`(for i in ${keep_these_too}; do echo $i ; done) | sort -u`"
keep_these_too=

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

list="`(for i in ${lose_these_too}; do echo $i ; done) | sort -u` "
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
ChangeLog
Makefile.in
README
config.guess
config.sub
configure
configure.in

Things-to-lose:

# Not sure we want to include mkdep in releases yet.
mkdep

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

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.

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

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 Processing \"d30v\"...
fi

d30v_files="ChangeLog config.sub configure.in"

if ( echo $* | grep keep\-d30v > /dev/null ) ; then
	for i in $d30v_files ; do
		if test ! -d $i && (grep sanitize-d30v $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping d30v stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-d30v $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"d30v\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-d30v/,/end-\sanitize\-d30v/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 \"v850\"...
fi

v850_files="ChangeLog config.sub configure.in"

if ( echo $* | grep keep\-v850e > /dev/null ) ; then
	for i in $v850_files ; do
		if test ! -d $i && (grep sanitize-v850e $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping v850e stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-v850e $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"v850e\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-v850e/,/end-\sanitize\-v850e/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

r5900_files="ChangeLog config.sub configure.in"

if ( echo $* | grep keep\-r5900 > /dev/null ) ; then
	for i in $r5900_files ; do
		if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping r5900 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"r5900\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-r5900/,/end-\sanitize\-r5900/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

vr4320_files="ChangeLog config.sub"

if ( echo $* | grep keep\-vr4320 > /dev/null ) ; then
	for i in $vr4320_files ; do
		if test ! -d $i && (grep sanitize-vr4320 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping vr4320 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-vr4320 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"vr4320\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-vr4320/,/end-\sanitize\-vr4320/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

tx19_files="ChangeLog config.sub"

if ( echo $* | grep keep\-tx19 > /dev/null ) ; then
	for i in $tx19_files ; do
		if test ! -d $i && (grep sanitize-tx19 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping tx19 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-tx19 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"tx19\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-tx19/,/end-\sanitize\-tx19/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

tx49_files="ChangeLog config.sub"

if ( echo $* | grep keep\-tx49 > /dev/null ) ; then
	for i in $tx49_files ; do
		if test ! -d $i && (grep sanitize-tx49 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping tx49 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-tx49 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"tx49\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-tx49/,/end-\sanitize\-tx49/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

tic80_files="ChangeLog config.sub configure.in"

if ( echo $* | grep keep\-tic80 > /dev/null ) ; then
	for i in $tic80_files ; do
		if test ! -d $i && (grep sanitize-tic80 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping tic80 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-tic80 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"tic80\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-tic80/,/end-\sanitize\-tic80/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

sky_files="ChangeLog config.sub configure.in"

if ( echo $* | grep keep\-sky > /dev/null ) ; then
	for i in $sky_files ; do
		if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping sky stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"sky\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-sky/,/end-\sanitize\-sky/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 ( echo $* | grep keep\-ide > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-ide $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping ide stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-ide $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"ide\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-ide/,/end-\sanitize\-ide/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 ( echo $* | grep lose\-gdbtk > /dev/null ) ; then
	if [ -n "${verbose}" ] ; then
		echo Catering to RMS by removing traces of \"gdbtk\"...
	fi
	for i in * ; do
		if test ! -d $i && (grep sanitize-gdbtk $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"gdbtk\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-gdbtk/,/end-\sanitize\-gdbtk/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
	cp Makefile.in new
	sed -e '/GDBTK_SUPPORT_DIRS=/d' -e 's/ $(GDBTK_SUPPORT_DIRS)//' < Makefile.in > new
	if [ -n "${safe}" -a ! -f .Recover/Makefile.in ] ; then
		if [ -n "${verbose}" ] ; then
			echo Caching Makefile.in in .Recover...
		fi
		mv Makefile.in .Recover
	fi
	mv new Makefile.in
else
	if [ -n "${verbose}" ] ; then
		echo Leaving \"gdbtk\" in the sources...
	fi
	for i in * ; do
		if test ! -d $i && (grep sanitize-gdbtk $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping \"gdbtk\" stuff in $i, but editing out sanitize lines...
			fi
			cp $i new
			sed -e '/start\-sanitize\-gdbtk/d' -e '/end\-sanitize\-gdbtk/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 ( echo $* | grep lose\-mswin > /dev/null ) ; then
	if [ -n "${verbose}" ] ; then
		echo Removing traces of \"mswin\"...
	fi
	for i in * ; do
		if test ! -d $i && (grep sanitize-mswin $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"mswin\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-mswin/,/end-\sanitize\-mswin/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
else
	if [ -n "${verbose}" ] ; then
		echo Leaving \"mswin\" in the sources...
	fi
	for i in * ; do
		if test ! -d $i && (grep sanitize-mswin $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping \"mswin\" stuff in $i, but editing out sanitize lines...
			fi
			cp $i new
			sed -e '/start\-sanitize\-mswin/d' -e '/end\-sanitize\-mswin/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

vr5400_files="ChangeLog config.sub"

if ( echo $* | grep keep\-vr5400 > /dev/null ) ; then
	for i in $vr5400_files ; do
		if test ! -d $i && (grep sanitize-vr5400 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping vr5400 stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-vr5400 $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"vr5400\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-vr5400/,/end-\sanitize\-vr5400/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

m32rx_files="ChangeLog config-ml.in"
if ( echo $* | grep keep\-m32rx > /dev/null ) ; then
	for i in $m32rx_files ; do
		if test ! -d $i && (grep sanitize-m32rx $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping m32rx stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-m32rx $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"m32rx\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-m32rx/,/end-\sanitize\-m32rx/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

java_files="ChangeLog Makefile.in configure.in"
if ( echo $* | grep keep\-java > /dev/null ) ; then
	for i in $java_files ; do
		if test ! -d $i && (grep sanitize-java $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping java stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-java $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"java\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-java/,/end-\sanitize\-java/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

kcygnus_files="ChangeLog configure configure.in Makefile.in"
if ( echo $* | grep keep\-cygnus > /dev/null ) ; then
	for i in $kcygnus_files ; do
		if test ! -d $i && (grep sanitize-cygnus $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping Cygnus stuff in $i
			fi
			cp $i new
			grep -v sanitize-cygnus $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
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-cygnus $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"cygnus\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-cygnus/,/end-\sanitize\-cygnus/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


# Do this check LAST!
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
		exit 1
	fi
done

# eof