New loading scheme for Winelib apps, makes them behave like builtin
[wine] / documentation / wine.man.in
1 .\" -*- nroff -*-
2 .TH WINE 1 "Oct 13, 2001" "Version 20011004" "Windows On Unix"
3 .SH NAME
4 wine \- run Windows programs on Unix
5 .SH SYNOPSIS
6 .BI "wine " "[wine_options] " "[--] " "program " "[arguments ... ]"
7 .PP
8 For instructions on passing arguments to Windows programs, please see the 
9 .B
10 PROGRAM/ARGUMENTS
11 section of the man page.
12 .SH DESCRIPTION
13 .B wine
14 .I program
15 loads and runs the given program, where the program is a DOS, Windows 3.x,
16 or Win32 executable (x86 binaries only).
17 .PP
18 For debugging wine, use
19 .B winedbg
20 .I program
21 instead.
22 .PP
23 For running CUI executables (Windows console programs), use
24 .B wineconsole
25 instead of
26 .B wine
27 . This will display all the output in a separate windows (this requires X11 to
28 run). Not using
29 .B wineconsole
30 for CUI programs will only provide very limited console support, and your
31 program might not function properly.
32 .PP
33 .B wine 
34 currently runs a growing list of applications written for all kinds of
35 Windows versions >= Win2.0, e.g. Win3.1, Win95/98, NT.
36 Older, simpler applications work better than newer, more complex ones.
37 Using Windows ME or Win2000 components with Wine is more problematic than
38 using none at all or the ones from older Windows versions.
39 A large percentage of the API has been implemented,
40 although there are still several major pieces of work left to do.
41 .SH REQUIREMENTS AND INSTALLATION
42 Read the README file in the Wine source distribution to know what Wine
43 requires and how it is installed from source.
44 .SH OPTIONS
45 .TP
46 .I --debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
47 Turn debugging messages on or off.  
48 .RS +7
49 .PP
50 xxx is optional and can be one of the following: 
51 .I err, 
52 .I warn, 
53 .I fixme, 
54 or 
55 .I trace. 
56 If xxx is not specified, all debugging messages for the specified
57 channel are turned on.  Each channel will print messages about a particular
58 component of 
59 .B wine.  
60 # is required and can be either + or -.  Note that 
61 there is not a space after the comma between names. yyy are either the
62 name of a whole DLL or a single API entry by name you either
63 want to include or exclude from the relay listing.  Case doesn't matter
64 for these.  You can do the same for snoop.
65 .PP
66 For instance:
67 .PP
68 .I --debugmsg warn+all
69 will turn on all warning messages (recommended for debugging)
70 .br
71 .I --debugmsg warn+dll,+heap
72 will turn on DLL warning messages and all heap messages.  
73 .br
74 .I --debugmsg fixme-all,warn+cursor,+relay
75 will turn off all FIXME messages, turn on cursor warning messages, and turn
76 on all relay messages (API calls).
77 .br 
78 .I --debugmsg -relay=rtlleavecriticalsection:RtlEnterCriticalSection
79 will turn on all relay messages except for RtlLeaveCriticalSection and
80 RtlEnterCriticalSection.
81 .br 
82 .I --debugmsg +relay=advapi32
83 will only turn on relay messages into the ADVAPI32 code.
84 Never ever use simply --debugmsg +all ! Way too much info, and it crashes
85 way too easily, thus confusing unexperienced users.
86 .PP
87 The full list of names is:
88 all, accel, advapi, animate, aspi, atom, avifile, bitblt, bitmap, caret,
89 cdrom, class, clipboard, clipping, combo, comboex, comm, commctrl, commdlg,
90 console, crtdll, cursor, datetime, dc, ddeml, ddraw, debug, debugstr,
91 delayhlp, dialog, dinput, dll, dosfs, dosmem, dplay, driver, dsound, edit,
92 elfdll, enhmetafile, event, exec, file, fixup, font, gdi, global, graphics,
93 header, heap, hook, hotkey, icmp, icon, imagehlp, imagelist, imm, int, int10,
94 int16, int17, int19, int21, int31, io, ipaddress, joystick, key, keyboard,
95 loaddll, ldt, listbox, listview, local, mci, mcianim, mciavi, mcicda, mcimidi,
96 mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, mmsys, mmtime,
97 module, monthcal, mpr, msacm, msg, msvideo, nativefont, nonclient, ntdll,
98 odbc, ole, opengl, pager, palette, pidl, print, process, profile, progress, 
99 prop, propsheet, psapi, psdrv, ras, rebar, reg, region, relay, resource, 
100 richedit, scroll, segment, seh, selector, sendmsg, server, setupapi, 
101 setupx, shell, snoop, sound, static, statusbar, storage, stress, string, 
102 syscolor, system, tab, tape, tapi, task, text, thread, thunk, timer, toolbar,
103 toolhelp, tooltips, trackbar, treeview, ttydrv, tweak, typelib, updown, ver,
104 virtual, vxd, wave, win, win16drv, win32, winedbg, wing, wininet, winsock,
105 winspool, wnet, x11 and x11drv.
106
107 .PP
108 For more information on debugging messages, see the file 
109 .I documentation/running.sgml
110 in the source distribution (FIXME: outdated).
111 .RE
112 .TP
113 .I --dll name[,name[,...]]={native|so|builtin}[,{n|s|b}[,...]]
114 Selects the override type and load order of dll used in the loading
115 process for any dll. The default is set in the configuration
116 file. There are currently three types of libraries that can be loaded
117 into a process' address space: Native windows dlls (
118 .I native
119 ), native ELF libraries (
120 .I so
121 )and 
122 .B wine 
123 internal dlls (
124 .I builtin
125 ). The type may be abbreviated with the first letter of the type (
126 .I n, s, b
127 ). Each sequence of orders must be separated by commas.
128 .br
129 Each dll may have its own specific load order. The load order
130 determines which version of the dll is attempted to be loaded into the
131 address space. If the first fails, then the next is tried and so
132 on. Multiple libraries with the same load order can be separated with
133 commas. It is also possible to use the --dll option several times, to
134 specify different loadorders for different libraries
135 .br
136 Examples:
137 .br
138 .I --dll comdlg32,commdlg=n,b
139 .br
140 Try to load comdlg32 and commdlg as native windows dll first and try
141 the builtin version if the native load fails.
142 .br
143 .I --dll shell,shell32=n --dll c:\(rs\(rsfoo\(rs\(rsbar\(rs\(rsbaz=b
144 .br
145 Try to load the libraries shell and shell32 as native windows dlls. Furthermore, if 
146 an application request to load c:\(rsfoo\(rsbar\(rsbaz.dll load the builtin library baz. 
147 .br
148 .I --dll comdlg32,commdlg=b,n --dll shell,shell32=b --dll comctl32,commctrl=n
149 .br
150 Try to load comdlg32 and commdlg as builtin first and try the native version
151 if the builtin load fails; load shell32/shell always as builtin and
152 comctl32/commctrl always as native.
153 .br
154 Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.)
155 having exactly the same load order. This will prevent mismatches at runtime.
156 See also configuration file format below.
157 .TP
158 .I --dosver version
159 Specify the DOS version 
160 .B wine 
161 should imitate (e.g. 6.22) This option
162 is only valid when used in conjunction with --winver win31.
163 .TP
164 .I --managed
165 Create each top-level window as a properly managed X window instead of
166 creating our own "sticky" window.
167 .TP
168 .I --winver version
169 Specify which Windows version 
170 .B wine 
171 should imitate.
172 Possible arguments are: win95, win98, winme, nt351, nt40, win2000, winxp, 
173 win20, win30 and win31.
174 .PD 1
175 .SH PROGRAM/ARGUMENTS
176 The program name may be specified in DOS format (
177 .I
178 C:\(rs\(rsWINDOWS\(rs\(rsSOL.EXE)
179 or in Unix format (
180 .I /msdos/windows/sol.exe
181 ).  You may pass arguments to the program being executed by adding them 
182 to the end of the command line invoking
183 .B wine
184 (such as: wine notepad C:\(rs\(rsTEMP\(rs\(rsREADME.TXT).
185 Note that you need to '\(rs' escape special characters (and spaces) when invoking Wine via
186 a shell, e.g.
187 .PP
188 wine C:\(rs\(rsProgram\(rs Files\(rs\(rsMyPrg\(rs\(rstest.exe
189 .PP
190 Command line processing goes as
191 follows: first 
192 .B wine
193 checks whether one or more of the above mentioned 
194 .B wine 
195 options have been specified. These
196 are removed from the command line, which is passed to the windows program. You can use
197 the parameter 
198 .I -- 
199 to indicate that 
200 .B wine 
201 should stop command line processing. This is needed in case a windows program understands 
202 an option that is usually interpreted (and thus removed from the command line) 
203 by 
204 .B wine. 
205 For example, if you want to execute 
206 .B wine 
207 with the options 
208 .I --managed --dll riched32=n
209 and if 
210 .B wine 
211 should run the program 
212 .I myapp.exe
213 with the arguments
214 .I --display 3d somefile
215 , then you could use the following command line to invoke 
216 .B wine:
217 .PP
218 .I wine --managed --dll riched32=n -- myapp.exe --display 3d somefile
219 .PP 
220 Note that in contrast to previous versions of 
221 .B wine, 
222 you must not pass 
223 program name and program option in one argument to 
224 .B wine. 
225 To run more
226 than one windows program, just execute 
227 .B wine 
228 once with the name of each program as argument. 
229 .SH ENVIRONMENT VARIABLES
230 .B wine
231 makes the environment variables of the shell from which
232 .B wine
233 is started accessible to the windows/dos processes started. So use the
234 appropriate syntax for your shell to enter environment variables you need.
235 .TP 
236 .I WINEPREFIX
237 If set, the content of this variable is taken as the name of the directory where
238 .B wine
239 stores its data (the default is 
240 .I $HOME/.wine
241 ). This directory contains also the socket, which is used to communicate with the
242 .I wineserver.
243 All 
244 .B wine
245 processes using the same 
246 .B wineserver
247 (i.e.: same user) share certain things like registry, shared memory,
248 and config file.
249 By setting 
250 .I WINEPREFIX
251 to different values for different 
252 .B wine
253 processes, it is possible to run a number of truly independent 
254 .B wine
255 processes. 
256 .TP
257 .I WINESERVER
258 Specifies the path and name of the
259 .B wineserver
260 binary. If not set, Wine will try to load
261 .B @bindir@/wineserver,
262 and if this doesn't exist will then look for a file named "wineserver"
263 in the path and in a few other likely locations.
264 .TP
265 .I WINELOADER
266 Specifies the path and name of the
267 .B wine
268 binary to use to launch new Windows processes. If not set, Wine will
269 try to load
270 .B @bindir@/wine,
271 and if this doesn't exist will then look for a file named "wine" in
272 the path and in a few other likely locations.
273 .TP
274 .I WINEDLLPATH
275 Specifies the path(s) in which to search for builtin dlls and Winelib
276 applications. This is a list of directories separated by ":". In
277 addition to any directory specified in
278 .I WINEDLLPATH,
279 Wine will also look in
280 .B @dlldir@.
281 .TP
282 .I DISPLAY
283 Specifies the X11 display to use.
284 .SH CONFIGURATION FILE
285 .B wine
286 expects a configuration file (
287 .I $WINEPREFIX/config
288 (~/.wine/config)
289 ), which must conform to the format specified in the
290 .BR wine.conf (5)
291 man page. A sample configuration file is documentation/samples/config in the 
292 .B wine 
293 source archive.
294 .SH AUTHORS
295 .B wine
296 is available thanks to the work of many developers. For a listing
297 of the authors, please see the file 
298 .B AUTHORS
299 in the top-level directory of the source distribution.
300 .SH COPYRIGHT
301 .B wine
302 can be distributed under the terms of the LGPL license. A copy of the
303 license is in the file
304 .B LICENSE
305 in the top-level directory of the source distribution.
306 .SH BUGS
307 .PP
308 A status report on many applications is available from
309 .I http://www.winehq.com/Apps.
310 Please add entries to this list for applications you currently run.
311 .PP
312 Bug reports may be posted to Wine Bugzilla
313 .I http://bugs.winehq.com
314 If you want to post a bug report, please read the file
315 .I documentation/bugs.sgml
316 in the 
317 .B wine 
318 source to see what information is necessary
319 .PP
320 Problems and suggestions with this manpage please also report to
321 .I http://bugs.winehq.com
322 .SH AVAILABILITY
323 The most recent public version of 
324 .B wine
325 can be obtained via FTP from ibiblio.org in the
326 /pub/Linux/ALPHA/Wine/development directory.  The releases are in the
327 format 'Wine-yyyymmdd.tar.gz', or 'Wine-yyyymmdd.diff.gz' for the
328 diff's from the previous release. The same directory holds the
329 pre-built contents of the documentation in various formats
330 (wine-doc.xxx.gz).
331 .PP
332 The latest snapshot of the code may be obtained via CVS.  For information
333 on how to do this, please see
334 .I
335 http://www.winehq.com/development/
336 .PP
337 WineHQ, the
338 .B wine
339 development headquarters, is at
340 .I http://www.winehq.com/.
341 This website contains a great deal of information about
342 .B wine.
343 .PP
344 The
345 .B wine 
346 newsgroup is 
347 .I comp.emulators.ms-windows.wine.
348 It is used for discussion of various 
349 .B wine end user aspects/help.
350 .PP
351 For further information about 
352 .B wine
353 development, you might want to subscribe to the 
354 .B wine 
355 mailing lists at
356 .I http://www.winehq.com/development/#ml
357 .SH FILES
358 .PD 0
359 .TP
360 .I @bindir@/wine
361 The 
362 .B wine 
363 program loader.
364 .TP
365 .I @bindir@/wineconsole
366 The 
367 .B wine 
368 program loader for CUI (console) applications.
369 .TP
370 .I @bindir@/wineserver
371 The 
372 .B wine 
373 server 
374 .TP 
375 .I @bindir@/winedbg
376 The 
377 .B wine 
378 debugger
379 .TP 
380 .I @bindir@/wineclipsrv
381 The 
382 .B wine 
383 clipboard server
384 .TP 
385 .I @dlldir@
386 Directory containing 
387 .B wine's
388 shared libraries 
389 .TP
390 .I ~/.wine/config
391 User-specific configuration file
392 .TP 
393 .I ~/.wine
394 Directory containing user specific data managed by 
395 .B wine. 
396
397 .SH "SEE ALSO"
398 .BR wine.conf (5)