Makefile-supplied preprocessor

Define consistent sets of options per-platform in a  Makefile

Removes the compile-time customisation from the code to somewhere easier to maintain

Good for developers: determinisim in which options are active

Easy to set up for cross-compilation

Again, it doesn't cope too well with...
OS variants and customisation
never-before-seen platforms

