Changed platform detection, now using gcc preprocessor macros