
                              Wine Documentation                               
Prev                                                                       Next
-------------------------------------------------------------------------------

Chapter 1. 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
   
*Xpm 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, XFree86-devel-XXX, xpm-XXX, and
xpm-devel, 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.
   

-------------------------------------------------------------------------------
Prev                                  Home                                 Next
Developing Wine                        Up                        Debugging Wine
