This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: g++ defines for win32
- From: "Gerrit P. Haase" <gerrit at familiehaase dot de>
- To: Angel Tsankov <fn42551 at fmi dot uni-sofia dot bg>
- Cc: cygwin mailing list <cygwin at cygwin dot com>
- Date: Sun, 14 Aug 2005 02:51:01 +0200
- Subject: Re: g++ defines for win32
- References: <000b01c5a032$3dabb7c0$cf34000a@sven>
Angel Tsankov wrote:
I downloaded g++ from cygwin and installed it. I noticed that it has
built-in definitions of __stdcall, __cdecl and __fastcall. I've come
across other g++ builds for Windows that do not have definitions for
these identifiers, so I had to filter them out from my source code with
the help of macros. Now I need to know how to distinguish this build of
g++ from others in order to not filter the above identifiers out.
Here's what I have now:
#if !(defined (_MSC_VER) || (defined (__GNUC__) && defined (__WIN32__)))
#define __cdecl
#define __stdcall
#define __fastcall
#endif
gcc -dumpspecs:
*cpp:
%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{mno-win32:%{mno-cygwin:
%emno-cygwin and mno-win32 are not compatible}}
%{mno-cygwin:-D__MSVCRT__ -D__MINGW32__ %{!ansi:%{mthreads:-D_MT}}}
%{!mno-cygwin:-D__CYGWIN32__ -D__CYGWIN__ %{!ansi:-Dunix} -D__unix__
-D__unix } %{mwin32|mno-cygwin:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__
%{!ansi:-DWINNT}} %{!nostdinc:%{!mno-win32|mno-cygwin:-idirafter
../include/w32api%s -idirafter ../../include/w32api%s}}
For Cygwin (= -mno-win32 = default):
__CYGWIN32__
__CYGWIN__
__unix
__unix__
unix
For MinGW (= -mno-cygwin):
__MINGW32__
__MSVCRT__
WIN32
_WIN32
__WIN32
__WIN32__
For Cygwin (+ -mwin32):
__CYGWIN32__
__CYGWIN__
WIN32
_WIN32
__WIN32
__WIN32__
Gerrit
--
=^..^=
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/