Fix the case of product and company names.
[wine] / documentation / build.sgml
1   <chapter id="build">
2     <title>Building Wine</title>
3
4     <sect1 id="build-intro">
5       <title>Introduction</title>
6
7       <para>
8         Written by &name-shachar-shemesh; <email>&email-shachar-shemesh;</email>
9         (Last updated: 5/27/2003)
10       </para>
11       <para>
12         (Extracted from <filename>wine/documentation/building</filename>)
13       </para>
14       <para>
15         This section explains how to build Wine locally. If you are a packager, please also refer to
16         <filename>wine/documentation/PACKAGING</filename> for package specific considerations.
17       </para>
18     </sect1>
19     <sect1 id="soft-vs-hard-dep">
20       <title>Before you compile - Soft vs. Hard dependencies</title>
21
22       <para>
23         Wine is a compatibility layer. It is not an attempt to create a new OS. As such, it tries to
24         rely on existing functionality wherever possible. This means that some aspects of Wine require
25         libraries to be available during compilation and runtime, or certain functionality will not
26         be available.
27       </para>
28
29       <para>
30         There are two types of dependencies. These are the <quote>soft dependency</quote> and the
31         <quote>hard dependency</quote>. 
32       </para>
33       <variablelist>
34         <varlistentry>
35           <term>Hard Dependency</term>
36           <listitem>
37             <para>
38               This is a dependency of Wine that, if compiled into the code, must be available at runtime
39               or Wine will not function. Due to it's restrictive manner, developers go to a great length
40               to make sure there are as few of those as possible.
41             </para>
42             <note>
43               <title>Fixme</title>
44               <para>
45                 How many of those are there?
46               </para>
47             </note>
48           </listitem>
49         </varlistentry>
50         <varlistentry>
51           <term>Soft Dependency</term>
52           <listitem>
53             <para>
54               These are libraries that, if present during both compilation and runtime, will add to Wine's
55               capabilities. Unlike the hard dependencies above, compiling Wine with these libraries will
56               allow Wine to work even on runtime environments where some or all of the soft dependencies
57               are not available.
58             </para>
59             <note>
60               <title>Packager's note</title>
61               <para>
62                 Please do your best to make sure that as many soft dependencies are available during
63                 compilation. Failing to have a soft dependency available means that users cannot benefit
64                 from a Wine capability.
65               </para>
66             </note>
67           </listitem>
68         </varlistentry>
69       </variablelist>
70
71       <sect2>
72         <title>Soft dependencies list</title>
73         <para>
74           Here is a list of the libraries Wine needs, and their dependency is soft. We suggest packagers
75           install each and every last of those before building the package. These libraries are not
76           dependencies in the RPM sense. In DEB packages, they should appear as "Suggests" or "Recommends",
77           as the case may be.
78         </para>
79         <variablelist>
80           <varlistentry>
81             <term><ulink url="http://www.freetype.org/">FreeType</ulink></term>
82             <listitem>
83               <para>
84                 This library is used for direct rendering of fonts. It provides better support of fonts than
85                 using the X11 fonts engine. It is only needed for the X11 back end engine. Used from GDI.
86               </para>
87             </listitem>
88           </varlistentry>
89           <varlistentry>
90             <term><ulink url="http://sourceforge.net/projects/alsa">Alsa</ulink> - Linux only</term>
91             <listitem>
92               <para>
93                 This library gives sound support to the Windows environment.
94               </para>
95             </listitem>
96           </varlistentry>
97           <varlistentry>
98             <term><ulink url="http://jackit.sourceforge.net/">libjack</ulink></term>
99             <listitem>
100               <para>
101                 Something to do with the MultiMedia system. Recording sound?
102               </para>
103               <note><title>Fixme</title>
104                 <para>I don't truely know what this lib is.</para>
105               </note>
106             </listitem>
107           </varlistentry>
108           <varlistentry>
109             <term><ulink url="http://www.cups.org/">CUPS</ulink> - Common Unix Printing System</term>
110             <listitem>
111               <para>
112                 This library allows Windows to see CUPS defined printers, and to print to them.
113               </para>
114             </listitem>
115           </varlistentry>
116           <varlistentry>
117             <term>OpenGL</term>
118             <listitem>
119               <para>
120                 This is used for both OpenGL and Direct3D (and some other DirectX functions as well) support
121                 in Wine. There are many many libraries for providing this functionality. It is enough for one
122                 of them to be available when compiling Wine. Wine can work with any other library during
123                 runtime.
124               </para>
125               <para>
126                 If no library is available, packagers are encouraged to compile Wine with
127                 <ulink url="http://www.mesa3d.org/">Mesa3D</ulink>, which requires no hardware support to
128                 install.
129               </para>
130             </listitem>
131           </varlistentry>
132         </variablelist>
133       </sect2>
134     </sect1>
135
136     <sect1 id="get-source">
137       <title>Getting the sources</title>
138       
139       <sect2>
140         <title>HTTP Download</title>
141         <para>
142           The latest released sources
143           <ulink url="http://www.winehq.org/?page=download_source">http://www.winehq.org/?page=download_source</ulink>.
144           Installation instructions are also available at the same place.
145         </para>
146       </sect2>
147       <sect2>
148         <title>Getting sources from CVS</title>
149         <para>
150             In order to get the sources from CVS, you first need to log into the CVS server. Issue the
151             following command:
152         </para>
153         <screen>
154 <prompt>~/sources$ </prompt><command>cvs -d :pserver:cvs@cvs.winehq.org:/home/wine login</command>
155 Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine
156 CVS password:</screen>
157         <para>
158           Use "<command>cvs</command>" as password. Next, you need to pull the sources from CVS. Use the
159           following command:
160         </para>
161         <screen>
162 <prompt>~/sources$ </prompt><command>cvs -z 0 -d :pserver:cvs@cvs.winehq.org:/home/wine co wine</command>
163 cvs checkout: Updating wine
164 U wine/.cvsignore
165 U wine/ANNOUNCE
166 U wine/AUTHORS
167 U wine/BUGS
168 U wine/COPYING.LIB</screen>
169         <para>
170           The list will go on. When the operation finishes, a new directory called "wine" will be created,
171           and in it all the sources will reside.
172         </para>
173         <note>
174           <title>Warning</title>
175           <para>
176             In the above example, compression was disabled. Versions of CVS up to, and including, 1.11.1
177             hang if compression is enabled. If you have version 1.11.5 or higher, you can enable compression
178             by feeding other values to the <command>-z</command> argument.
179           </para>
180         </note>
181         <para>
182           For more details, consult the HOWTO at <ulink url="http://www.winehq.org/?page=cvs">http://www.winehq.org/?page=cvs</ulink>
183         </para>
184       </sect2>
185     </sect1>
186   </chapter>
187 <!-- Keep this comment at the end of the file
188 Local variables:
189 mode: sgml
190 sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
191 End:
192 -->