Preprocessor stuff for portability.