unifdef: A useful tool for removing (source)

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 #ifdef, #ifndef, #else, and #en- dif 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.