Fixed atom test to work on Windows.
[wine/multimedia.git] / documentation / compiling.sgml
bloba3c7e9f69ae58092033a566ce51cb30bae73171b
1 <chapter id="compiling">
2 <title>Compiling Wine</title>
3 <para>How to compile wine, and problems that may arise...</para>
5 <sect1 id="compiling-wine">
6 <title>Compiling Wine</title>
8 <sect2>
9 <title>Tools required</title>
10 <para>
11 <itemizedlist>
12 <listitem>
13 <para>
14 gcc -- 2.7.x required (Wine uses attribute stdcall).
15 Versions earlier than 2.7.2.3 barf on shellord.c
16 -- compile without optimizing for that file.
17 In addition EGCS 1.1.x and GCC 2.95.x are reported
18 to work fine.
19 </para>
20 </listitem>
21 <listitem>
22 <para>
23 flex >= 2.5.1 (required for the debugger and wrc,
24 and lex won't do)
25 </para>
26 </listitem>
27 <listitem>
28 <para>
29 bison (also required for debugger. Don't know whether BSD yacc
30 would work.)
31 </para>
32 </listitem>
33 <listitem>
34 <para>
35 X11 libs and include files
36 </para>
37 </listitem>
38 <listitem>
39 <para>
40 texinfo >= 3.11 (optional, to compile the documentation.)
41 </para>
42 </listitem>
43 <listitem>
44 <para>
45 autoconf (if you want to remake configure, which is
46 not normally required)
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 XF86DGA extension (optional, detected by configure,
52 needed for DirectX support)
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Open Sound System (optional, detected by configure,
58 for sound support)
59 </para>
60 </listitem>
61 </itemizedlist>
62 </para>
63 <para>
64 The Red Hat RPMs are gcc-XXX, flex-XXX, and
65 XFree86-devel-XXX, where XXX is the version number.
66 </para>
67 </sect2>
69 <sect2>
70 <title>Space required</title>
71 <para>
72 You also need about 230 MB of available disk space for compilation.
73 The compiled libwine.so binary takes around 5 MB of disk space,
74 which can be reduced to about 1 MB by stripping ('strip wine').
75 Stripping is not recommended, however, as you can't submit
76 proper crash reports with a stripped binary any more.
77 </para>
78 </sect2>
80 <sect2>
81 <title>Common problems</title>
82 <para>
83 If you get a repeatable sig11 compiling shellord.c, thunk.c
84 or other files, try compiling just that file without optimization.
85 Then you should be able to finish the build.
86 </para>
87 </sect2>
89 <sect2>
90 <title>OS specific issues</title>
91 <para>
92 <itemizedlist>
93 <listitem>
94 <para>
95 FreeBSD -- In order to run Wine, the FreeBSD kernel
96 needs to be compiled with
98 <informaltable frame="all">
99 <tgroup cols="2">
100 <tbody>
101 <row>
102 <entry>options</entry>
103 <entry>USER_LDT</entry>
104 </row>
105 <row>
106 <entry>options</entry>
107 <entry>SYSVSHM</entry>
108 </row>
109 <row>
110 <entry>options</entry>
111 <entry>SYSVSEM</entry>
112 </row>
113 <row>
114 <entry>options</entry>
115 <entry>SYSVMSG</entry>
116 </row>
117 </tbody>
118 </tgroup>
119 </informaltable>
122 If you need help, read the chapter "<ulink url="http://www.freebsd.org/handbook/kernelconfig-building.html">Building and Installing a Custom Kernel</ulink>" in the "<ulink url="http://www.freebsd.org/handbook/">FreeBSD handbook</ulink>. You'll need to be running FreeBSD 3.x or later.
123 </para>
124 </listitem>
125 <listitem>
126 <para>
127 SCO Unixware, Openserver -- UW port is supported by SCO.
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 OS/2 -- not a complete port. See <ulink url="http://odin.netlabs.org/ProjectAbout.phtml">Odin</ulink> for a project which uses some Wine code.
133 </para>
134 </listitem>
135 <listitem>
136 <para>
137 Solaris x86 2.x -- Needs GNU toolchain (gcc, gas, flex as above, yacc may work) to compile, seems functional (980215).
138 </para>
139 </listitem>
140 <listitem>
141 <para>
142 DGUX, HP, Irix, or other Unixes; non-intel Linux.
143 No ports have been seriously attempted.
144 For non-intel Unixes, only a winelib port is relevant.
145 Alignment may be a problem.
146 </para>
147 </listitem>
148 <listitem>
149 <para>
150 Macintosh/Rhapsody/BeOS -- no ports have been attempted.
151 </para>
152 </listitem>
153 </itemizedlist>
154 </para>
155 </sect2>
156 </sect1>
157 </chapter>
159 <!-- Keep this comment at the end of the file
160 Local variables:
161 mode: sgml
162 sgml-parent-document:("wine-doc.sgml" "set" "book" "part" "chapter" "")
163 End: