.\" -*- nroff -*-
.TH WINEGCC 1 "October 2005" "@PACKAGE_STRING@" "Wine Developers Manual"
.SH NAME
winegcc \- Wine C and C++ MinGW Compatible Compiler
.SH SYNOPSIS
.BR "winegcc "\fI[options]\fR " \fIinfile\fR"...
.SH DESCRIPTION
.B winegcc 
is a gcc wrapper which tries to provide a MinGW compatible compiler 
under Linux. This is most useful to Win32 developers who can simply 
take their MinGW code from Windows, and recompile it without 
modifications under Winelib on Linux. 
wineg++ accepts mostly the same options as winegcc.
.PP
The goal of winegcc is to be able to simply replace gcc/g++/windres
with winegcc/wineg++/wrc in a MinGW Makefile, and just recompile
the application using Winelib under Wine. While typically there are 
small adjustments that must be made to the application source code 
and/or Makefile, it is quite easy to do them in a fashion that is
compatible between the MinGW and Wine environments.
.PP
This manual will document only the differences from gcc; please consult
the gcc manual for more information on those options.
.PP
.SH OPTIONS
.B gcc options:
All gcc options are supported, and are passed along to the backend
compiler.
.IP "\fB-B\fIprefix\fR"
This option specifies where to find the executables, libraries,
include files, and data files of the compiler itself. This is a 
standard gcc option that has been extended to recognize a 
\fIprefix\fR ending with '/tools/winebuild', in which case winegcc 
enters a special mode for building Wine itself. Developers should 
avoid prefixes ending with the magic suffix, or if that is not 
possible, simply express it differently, such as '/tools/winebuild/',
to avoid the special behaviour.
.IP \fB-fno-short-wchar\fR
Override the underlying type for wchar_t to be the default for the 
target, instead of using short unsigned int, which is the default 
for Win32.
.IP \fB-mconsole\fR
This option passes '--subsystem console' to winebuild, to build
console applications. It is the default.
.IP \fB-mno-cygwin\fR
Use Wine's implementation of MSVCRT, instead of linking against
the host system's libc. This is necessary for the vast majority
of Win32 applications, as they typically depend on various features
of MSVCRT. This switch is also used by the MinGW compiler to link
against MSVCRT on Windows, instead of linking against Cygwin's
libc. Sharing the syntax with MinGW makes it very easy to write 
Makefiles that work under Wine, MinGW+MSYS, or MinGW+Cygwin.
.IP \fB-municode\fR
Set the default entry point of the application to be the Unicode
\fBwmain()\fR instead of the standard \fBmain()\fR.
.IP \fB-mwindows\fR
This option adds -lgdi32, -lcomdlg32, and -lshell32 to the list of
default libraries, and passes '--subsystem windows' to winebuild
to build graphical applications.
.IP \fB-nodefaultlibs\fR
Do not use the standard system libraries when linking. These
include at a minimum -lkernel32, -luser32, -ladvapi32, and 
any default libraries used by the backend compiler. The -mwindows
option augments the list of default libraries as described above.
.IP \fB-nostartfiles\fR
Do not add the winecrt0 library when linking.
.IP \fB-Wb,option\fR
Pass option as an option to winebuild.  If option contains 
commas, it is split into multiple options at the commas.
.SH DEFINES
winegcc defines __WINE__, for code that needs to know when it is
being compiled under Wine. It also defines WIN32, _WIN32, __WIN32, 
__WIN32__, __WINNT, and __WINNT__ for compatibility with MinGW.
.SH BUGS
The dllimport/dllexport attributes are not supported at the moment,
due to lack of support for these features in the ELF version of gcc.
.PP
Static linking is not currently supported against Wine's DLL. As a
result, the -static, --static, and -Wl,-static options will generate
an error.
.SH AUTHORS
.B winegcc
was written by Dimitrie O. Paun.
.SH "SEE ALSO"
.BR gcc(1),
.BR winebuild(1),
.BR wrc(1),
.BR wine(1),
.BR "Winelib User Guide",
.BR "Wine Developers Guide".
