Unifdef is useful for removing #ifdef'ed lines from a file while otherwise leaving the file alone. You specify which symbols are defined or undefined with -D and -U flags, and unifdef removes the corresponding ifdefs, and the enclosed code if appropriate. It's especially useful for removing those "#ifdef BROKEN" and "#ifdef PRIVATE" clauses from code before you release it. Unifdef acts on #if, #ifdef, #ifndef, #elif, #else, and #endif lines, and it knows only enough about C and C++ to know when one of these is inactive because it is inside a comment or a single or double quote.
newfile generates "starting-out" files using a full featured template preprocessor. It can also generate trees of files, for example, a FreeBSD port or a project using automake and autoconf. A user can add their own template files and directories to those supplied with the package. It includes templates for making "empty" files for Ruby, make, shell, C, C++, C & C++ headers, and more.
Java+ is a Java preprocessor that adds its features to any Java compiler. It has long, multi-line strings with executable inclusions like Perl or Ruby, optionally segregates Java+ strings into ResourceBundle files, eliminates the need for JSP or ASP and their implied need for Java compilers on deployment servers (a security concern), and adds absolutely no overhead in either space or time. There are graphical and command line interfaces, and a simple, general, and recursive string syntax.