preprocess.pl
is a 'general-purpose preprocessor' -- a very simple one at that. All it can do is to include files, and define simple phrases.
It currently accepts input via STDIN, and outputs the preprocessed file via STDOUT. There are two directives:
#include <path_to_file.ext>
#define Id Def
I am using it to preprocess OCaml. You can use it to preprocess anything.