Where did you get the idea that you need to include a standard header
file to get the macro? gcc provides a number of macros dependent on the
platform you're compiling for.

I just did a stupid thing: dig into header files come from MinGW :P

$ gcc -E -dM test.c | grep MINGW
#define __MINGW32__ 1

Great! This is what I want. Thanks!