winegcc: better MinGW compatibility
Dimitrie O. Paun
dpaun at rogers.com
Thu Feb 20 23:32:03 CST 2003
Better MinGW compatibility.
ChangeLog
Link in shell32 only in gui mode.
Add all the standard defines that MinGW provides
(with the exception of __MINGW__, that's MinGW prerogative).
Do not pass along linker options when only compiling.
Index: tools/winegcc.c
===================================================================
RCS file: /var/cvs/wine/tools/winegcc.c,v
retrieving revision 1.10
diff -u -r1.10 winegcc.c
--- tools/winegcc.c 18 Feb 2003 23:23:10 -0000 1.10
+++ tools/winegcc.c 19 Feb 2003 07:07:23 -0000
@@ -266,8 +266,8 @@
}
if (use_stdlib && use_msvcrt) gcc_argv[i++] = "-lmsvcrt";
if (gui_app) gcc_argv[i++] = "-lcomdlg32";
- if (gui_app) gcc_argv[i++] = "-lshell32";
gcc_argv[i++] = "-ladvapi32";
+ gcc_argv[i++] = "-lshell32";
}
else
{
@@ -277,11 +277,30 @@
gcc_argv[i++] = "-fPIC";
if (use_stdinc)
{
- if (use_msvcrt) gcc_argv[i++] = "-I" INCLUDEDIR "/msvcrt";
+ if (use_msvcrt)
+ {
+ gcc_argv[i++] = "-I" INCLUDEDIR "/msvcrt";
+ gcc_argv[i++] = "-D__MSVCRT__";
+ }
gcc_argv[i++] = "-I" INCLUDEDIR "/windows";
}
- gcc_argv[i++] = "-D__WINE__";
+ gcc_argv[i++] = "-DWIN32";
+ gcc_argv[i++] = "-D_WIN32";
+ gcc_argv[i++] = "-D__WIN32";
gcc_argv[i++] = "-D__WIN32__";
+ gcc_argv[i++] = "-D__WINNT";
+ gcc_argv[i++] = "-D__WINNT__";
+
+ gcc_argv[i++] = "-D__stdcall=__attribute__((__stdcall__))";
+ gcc_argv[i++] = "-D__cdecl=__attribute__((__cdecl__))";
+ gcc_argv[i++] = "-D__fastcall=__attribute__((__fastcall__))";
+ gcc_argv[i++] = "-D_stdcall=__attribute__((__stdcall__))";
+ gcc_argv[i++] = "-D_cdecl=__attribute__((__cdecl__))";
+ gcc_argv[i++] = "-D_fastcall=__attribute__((__fastcall__))";
+ gcc_argv[i++] = "-D__declspec(x)=__attribute__((x))";
+
+ /* Wine specific defines */
+ gcc_argv[i++] = "-D__WINE__";
gcc_argv[i++] = "-DWINE_UNICODE_NATIVE";
gcc_argv[i++] = "-D__int8=char";
gcc_argv[i++] = "-D__int16=short";
@@ -294,6 +313,8 @@
; /* ignore this option */
else if (strcmp("-mwindows", argv[j]) == 0)
; /* ignore this option */
+ else if (strncmp("-Wl,", argv[j], 4) == 0)
+ ; /* do not pass linking options to compiler */
else if (strcmp("-s", argv[j]) == 0)
; /* ignore this option */
else
--
Dimi.
More information about the wine-patches
mailing list