[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: predefined preprocessor macros on Windows platforms
From: |
Bruno Haible |
Subject: |
Re: predefined preprocessor macros on Windows platforms |
Date: |
Fri, 16 Feb 2007 02:06:56 +0100 |
User-agent: |
KMail/1.5.4 |
Brian Dessent wrote:
> This should be __CYGWIN__ and not __CYGWIN32__.
Yes, you are right. My bad. Here is the corrected summary:
1) The compiler indicators:
- Mingw, Cygwin: __GNUC__
- MSVC: _MSC_VER
- Borland: __TURBOC__, __BORLANDC__
2) The CPU indicators for x86:
- Mingw, Cygwin: _X86_, __i386__
- MSVC, Borland: _M_IX86
The CPU indicators for x86_64:
- Mingw, Cygwin: __x86_64__
- MSVC: _M_X64
3) Operating system:
- Cygwin default: __CYGWIN__
- Cygwin when the installer wants to use native Woe32 API (option -mwin32):
__CYGWIN__, _WIN32
- Mingw: _WIN32, __MINGW32__
- MSVC: _WIN32
- Borland: __WIN32__
So, to test whether native Woe32 API is available, use
defined _WIN32 || defined __WIN32__
And to test whether native Woe32 API should be used when there is also an
equivalent POSIX API, use
(defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
Bruno