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

Chapter 1. Compiling Wine

How to compile wine, and problems that may arise...

1.1. Compiling Wine

1.1.1. 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.

1.1.2. 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.

1.1.3. 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.

1.1.4. 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
