Building Wine
Introduction
Written by &name-shachar-shemesh; &email-shachar-shemesh;
(Last updated: 5/27/2003)
(Extracted from wine/documentation/building)
This section explains how to build Wine locally. If you are a packager, please also refer to
wine/documentation/PACKAGING for package specific considerations.
Before you compile - Soft vs. Hard dependencies
Wine is a compatibility layer. It is not an attempt to create a new OS. As such, it tries to
rely on existing functionality wherever possible. This means that some aspects of Wine require
libraries to be available during compilation and runtime, or certain functionality will not
be available.
There are two types of dependencies. These are the soft dependency
and the
hard dependency
.
Hard Dependency
This is a dependency of Wine that, if compiled into the code, must be available at runtime
or Wine will not function. Due to it's restrictive manner, developers go to a great length
to make sure there are as few of those as possible.
Fixme
How many of those are there?
Soft Dependency
These are libraries that, if present during both compilation and runtime, will add to Wine's
capabilities. Unlike the hard dependencies above, compiling Wine with these libraries will
allow Wine to work even on runtime environments where some or all of the soft dependencies
are not available.
Packager's note
Please do your best to make sure that as many soft dependencies are available during
compilation. Failing to have a soft dependency available means that users cannot benefit
from a Wine capability.
Soft dependencies list
Here is a list of the libraries Wine needs, and their dependency is soft. We suggest packagers
install each and every last of those before building the package. These libraries are not
dependencies in the RPM sense. In DEB packages, they should appear as "Suggests" or "Recommends",
as the case may be.
FreeType
This library is used for direct rendering of fonts. It provides better support of fonts than
using the X11 fonts engine. It is only needed for the X11 back end engine. Used from GDI.
Alsa - Linux only
This library gives sound support to the Windows environment.
libjack
Something to do with the MultiMedia system. Recording sound?
Fixme
I don't truely know what this lib is.
CUPS - Common Unix Printing System
This library allows Windows to see CUPS defined printers, and to print to them.
OpenGL
This is used for both OpenGL and Direct3D (and some other DirectX functions as well) support
in Wine. There are many many libraries for providing this functionality. It is enough for one
of them to be available when compiling Wine. Wine can work with any other library during
runtime.
If no library is available, packagers are encouraged to compile Wine with
Mesa3D, which requires no hardware support to
install.
Getting the sources
HTTP Download
The latest released sources
http://www.winehq.org/?page=download_source.
Installation instructions are also available at the same place.
Getting sources from CVS
In order to get the sources from CVS, you first need to log into the CVS server. Issue the
following command:
~/sources$ cvs -d :pserver:cvs@cvs.winehq.org:/home/wine login
Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine
CVS password:
Use "cvs" as password. Next, you need to pull the sources from CVS. Use the
following command:
~/sources$ cvs -z 0 -d :pserver:cvs@cvs.winehq.org:/home/wine co wine
cvs checkout: Updating wine
U wine/.cvsignore
U wine/ANNOUNCE
U wine/AUTHORS
U wine/BUGS
U wine/COPYING.LIB
The list will go on. When the operation finishes, a new directory called "wine" will be created,
and in it all the sources will reside.
Warning
In the above example, compression was disabled. Versions of CVS up to, and including, 1.11.1
hang if compression is enabled. If you have version 1.11.5 or higher, you can enable compression
by feeding other values to the -z argument.
For more details, consult the HOWTO at http://www.winehq.org/?page=cvs