Block SIGINT and SIGALRM in signal handlers.
[wine/multimedia.git] / documentation / compiling.sgml
blobc0a5aba41e18b7ff55d356ad6763bc0e87ce60cf
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 Xpm libs and include files
41 </para>
42 </listitem>
43 <listitem>
44 <para>
45 texinfo >= 3.11 (optional, to compile the documentation.)
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 autoconf (if you want to remake configure, which is
51 not normally required)
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 XF86DGA extension (optional, detected by configure,
57 needed for DirectX support)
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Open Sound System (optional, detected by configure,
63 for sound support)
64 </para>
65 </listitem>
66 </itemizedlist>
67 </para>
68 <para>
69 The Red Hat RPMs are gcc-XXX, flex-XXX, XFree86-devel-XXX, xpm-XXX,
70 and xpm-devel, where XXX is the version number.
71 </para>
72 </sect2>
74 <sect2>
75 <title>Space required</title>
76 <para>
77 You also need about 230 MB of available disk space for compilation.
78 The compiled libwine.so binary takes around 5 MB of disk space,
79 which can be reduced to about 1 MB by stripping ('strip wine').
80 Stripping is not recommended, however, as you can't submit
81 proper crash reports with a stripped binary any more.
82 </para>
83 </sect2>
85 <sect2>
86 <title>Common problems</title>
87 <para>
88 If you get a repeatable sig11 compiling shellord.c, thunk.c
89 or other files, try compiling just that file without optimization.
90 Then you should be able to finish the build.
91 </para>
92 </sect2>
94 <sect2>
95 <title>OS specific issues</title>
96 <para>
97 <itemizedlist>
98 <listitem>
99 <para>
100 FreeBSD -- In order to run Wine, the FreeBSD kernel
101 needs to be compiled with
103 <informaltable frame="all">
104 <tgroup cols="2">
105 <tbody>
106 <row>
107 <entry>options</entry>
108 <entry>USER_LDT</entry>
109 </row>
110 <row>
111 <entry>options</entry>
112 <entry>SYSVSHM</entry>
113 </row>
114 <row>
115 <entry>options</entry>
116 <entry>SYSVSEM</entry>
117 </row>
118 <row>
119 <entry>options</entry>
120 <entry>SYSVMSG</entry>
121 </row>
122 </tbody>
123 </tgroup>
124 </informaltable>
127 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.
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 SCO Unixware, Openserver -- UW port is supported by SCO.
133 </para>
134 </listitem>
135 <listitem>
136 <para>
137 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.
138 </para>
139 </listitem>
140 <listitem>
141 <para>
142 Solaris x86 2.x -- Needs GNU toolchain (gcc, gas, flex as above, yacc may work) to compile, seems functional (980215).
143 </para>
144 </listitem>
145 <listitem>
146 <para>
147 DGUX, HP, Irix, or other Unixes; non-intel Linux.
148 No ports have been seriously attempted.
149 For non-intel Unixes, only a winelib port is relevant.
150 Alignment may be a problem.
151 </para>
152 </listitem>
153 <listitem>
154 <para>
155 Macintosh/Rhapsody/BeOS -- no ports have been attempted.
156 </para>
157 </listitem>
158 </itemizedlist>
159 </para>
160 </sect2>
161 </sect1>
162 </chapter>
164 <!-- Keep this comment at the end of the file
165 Local variables:
166 mode: sgml
167 sgml-parent-document:("wine-doc.sgml" "set" "book" "part" "chapter" "")
168 End: