Replace #ifdef with #if defined() and #elif with #elif defined() as it should only test if it is defined or not.
This brings us a lot more tidiness.
For multiple reasons the program is now split: - Make future porting to OpenBSD easier - Assign header includes to individiual functions - Make future program extensions easier - Recompile only changed parts