Prebop is not your father's preprocessor. In fact, you may not even think it's a preprocessor! Call it a "version configurer".
Instead of running every time you compile a file, like the C/C++ preprocessor, Prebop runs only when you tell it to.
Instead of creating an invisible intermediate file, Prebop writes a real file to the file system.
What's it for?
The primary use of Prebop is to maintain multiple versions of software from one source code base.
You can use a source code control system like CVS and accomplish the same objective with branch and merge, but what a collosal PITA! When your versions are multi-dimensional, e.g., your application runs on different versions of a framework and, in addition, has multiple versions (a trial version, a "pro" version, an "enterprise" version, etc.), plus for each of these there are released versions and beta versions, most source control systems are way cumbersome.
On the other hand, many Java programmers are only too happy to be free of the C/C++ preprocessor, with its cryptic syntax and hard to understand conditional expansion. If you've ever wasted time trying to figure out the effect of a half-dozen levels of nested #IFDEFs, you know what I mean.
Click on this link to get more detail: http://prebop.sourceforge.net/
Recommend the tutorial