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