Compiling Wine
How to compile wine, and problems that may arise...
Compiling Wine
Tools required
gcc -- 2.7.x required (Wine uses attribute stdcall).
Versions earlier than 2.7.2.3 barf on shellord.c
-- compile without optimizing for that file.
In addition EGCS 1.1.x and GCC 2.95.x are reported
to work fine.
flex >= 2.5.1 (required for the debugger and wrc,
and lex won't do)
bison (also required for debugger. Don't know whether BSD yacc
would work.)
X11 libs and include files
texinfo >= 3.11 (optional, to compile the documentation.)
autoconf (if you want to remake configure, which is
not normally required)
XF86DGA extension (optional, detected by configure,
needed for DirectX support)
Open Sound System (optional, detected by configure,
for sound support)
The Red Hat RPMs are gcc-XXX, flex-XXX, and
XFree86-devel-XXX, where XXX is the version number.
Space required
You also need about 230 MB of available disk space for compilation.
The compiled libwine.so binary takes around 5 MB of disk space,
which can be reduced to about 1 MB by stripping ('strip wine').
Stripping is not recommended, however, as you can't submit
proper crash reports with a stripped binary any more.
Common problems
If you get a repeatable sig11 compiling shellord.c, thunk.c
or other files, try compiling just that file without optimization.
Then you should be able to finish the build.
OS specific issues
FreeBSD -- In order to run Wine, the FreeBSD kernel
needs to be compiled with
options
USER_LDT
options
SYSVSHM
options
SYSVSEM
options
SYSVMSG
If you need help, read the chapter "Building and Installing a Custom Kernel" in the "FreeBSD handbook. You'll need to be running FreeBSD 3.x or later.
SCO Unixware, Openserver -- UW port is supported by SCO.
OS/2 -- not a complete port. See Odin for a project which uses some Wine code.
Solaris x86 2.x -- Needs GNU toolchain (gcc, gas, flex as above, yacc may work) to compile, seems functional (980215).
DGUX, HP, Irix, or other Unixes; non-intel Linux.
No ports have been seriously attempted.
For non-intel Unixes, only a winelib port is relevant.
Alignment may be a problem.
Macintosh/Rhapsody/BeOS -- no ports have been attempted.