The Sanitization Process Usage: To sanitize a directory or subtree, foo: cd foo ; /usr/unsupported/bin/Sanitize and you should be left with source code free of any distribution restrictions. Configuration: Each directory to be kept in a release should have a .Sanitize file in cvs. See devo/.Sanitize for a more or less self describing template. All files should be listed in "Things-to-keep:" or "Things-to-lose:" (or dealt with via keep_these_too and lose_these_too, see below). If a file is not listed, it is removed, but a warning is printed. Directories that are kept will have Sanitize called on their own .Sanitize files. The "Do-first:" section of .Sanitize should be a shell script fragment. It will be sourced by the Sanitize shell script after verifying that the .Sanitize file looks reasonable but before taking any other action. The arguments to Sanitize are passed to this fragment so that you can take conditional action. For an example of its use, see devo/gcc/config/.Sanitize. If the "Do-first:" section sets the local shell variable "keep_these_too", the files and/or directories listed there will be kept in addition to any files listed in "Things-to-keep:". If it sets "lose_these_too", those files and/or directories will be removed in addition to any files listed in "Things-to-lose:". For an example of its use, see devo/gcc/config/.Sanitize. The "Do-last:" section of .Sanitize should be a shell script fragment. It will be sourced by Sanitize after all other action is taken for this directory. This section is intended to be used to strip code out of source files. For an example of grep'ing out specific lines, see devo/include/.Sanitize. For an example of sed'ing out sections of code, see devo/gas/config/.Sanitize. Command line options are extremely free form. The Sanitize script itself only knows about keep-cvs. All arguments to Sanitize are passed to the "Do-first:" and "Do-last:" fragments. Feel free to add new options as you see fit so long as you list them here. Defined options: keep-cvs avoids removing CVS directories. This option is actually recognized and handled by the Sanitize shell script. keep-cygnus avoids removing Cygnus-only bits. keep-v9 avoids removing the v9 stuff. keep-life avoids removing the life stuff. keep-cri avoids removing the cray research inc changes to emacs. keep-chill avoids removing CHILL support. keep-gm avoids removing GM-specific stuff. keep-inet avoids removing I*Net stuff. lose-gdbtk removes gdbtk stuff. This is really only needed for FSF GDB releases. for-intel builds a distribution in the style that Intel likes. for-fsf builds a distribution in the style that the FSF likes. test instead of removing dirty files, cache them away in a .Recover directory recover intended to undo the effects of a "Sanitize test".