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