Added preprocessor checks for linux and windows