Add a few more 32->16 Escape conversions.
[wine.git] / documentation / wine.man
blob89c710fa4b5e73a5e6de37edcdc0e34cd105d42d
1 .\" -*- nroff -*-
2 .TH WINE 1 "April 26, 1999" "Version 990328" "Windows On Unix"
3 .SH NAME
4 wine \- run Windows programs on Unix
5 .SH SYNOPSIS
6 .BI "wine " "[wine_options] " "program1 " "[program2 ... ]"
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.
17 .PP
18 .B wine 
19 currently runs a growing list of applications written for both Win3.1 and 
20 Win95.  Older, simpler applications work better than newer, more complex 
21 ones.  A large percentage of the API has been implemented, although there
22 are still several major pieces of work left to do.
23 .SH REQUIREMENTS
24 .B wine
25 requires kernel-level threads to run. Currently, only Linux version 2.0
26 or later, FreeBSD-current or FreeBSD 3.0 or later, and Solaris x86
27 version 2.5 or later are supported. Other operating systems which support
28 kernel threads may be supported in the future.
29 .PP
30 Although Linux version 2.0 will mostly work, certain features (specifically
31 LDT sharing) required for properly supporting Win32 threads were not
32 implemented until kernel version 2.2. If you get consistent thread-related
33 crashes, you may want to upgrade to 2.2. Also, some bugs were fixed and
34 additional features were added late in the Linux 2.0.x series, so if you have
35 a very old Linux kernel, you may want to upgrade to at least the latest 2.0.x
36 release.
37 .PP
38 If you have FreeBSD, make sure you have the USER_LDT,
39 SYSVSHM, SYSVSEM, and SYSVMSG options turned on in your kernel. If you
40 are building Wine on Solaris, you will most likely need to build Wine
41 with the GNU toolchain (gcc, gas, etc.)
42 .PP
43 .B X
44 must be installed.  To use Wine's support for multithreaded applications,
45 your X libraries must be reentrant.  If you have libc6 (glibc2), or you 
46 compiled the X libraries yourself, they were probably compiled with the 
47 reentrant option enabled.  
48 .PP
49 .B libXpm
50 must be installed.  If you're using Red Hat, make sure the following
51 packages are installed: XFree86-devel, xpm, and xpm-devel. If you're
52 using Debian, the packages you need are xpm4g and xpm4g-dev. If you 
53 have some other distribution, please send a list of packages required
54 to the address listed in the 
56 BUGS
57 section to get it included in this man page.
58 .PP
59 .B gcc
60 2.7.2 or later is required to build
61 .B wine.
62 Versions earlier than 2.7.2.3 may have problems when certain files are
63 compiled with optimization.
65 pgcc
66 currently doesn't work with wine.  The cause of this problem is unknown. 
67 .PP
68 .B flex
69 version 2.5 or later and 
70 .B yacc
71 are required.  Bison can be used in replace of yacc. If you have Redhat,
72 make sure the bison and flex packages are installed.
73 .SH INSTALLATION
74 To install 
75 .B Wine,
76 run "./configure" in the top-level directory of the source, which will 
77 detect your specific setup and create the Makefiles.  You can run 
78 "./configure --help" to see the available configuration options.  Then do 
79 "make depend; make" to build the
80 .B wine
81 executable, and then "make install" to install it. By default,
82 .B wine
83 is installed in the /usr/local/ heirarchy; you can specify a different path with
84 the --prefix option when running
85 .B configure.
86 .PP
87 For more information, see the 
88 .I README
89 file contained in the source distribution.
90 .SH OPTIONS
91 .TP
92 .I -backingstore
93 Turn on backing store
94 .TP
95 .I -config filename
96 Use the named configuration file rather than the default
97 (/usr/local/etc/wine.conf or ~/.winerc).
98 .TP
99 .I -debug
100 Enter the debugger before starting application
102 .I -debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
103 Turn debugging messages on or off.  
104 .RS +7
106 xxx is optional and can be one of the following: 
107 .I err, 
108 .I warn, 
109 .I fixme, 
110 or 
111 .I trace. 
112 If xxx is not specified, all debugging messages for the specified
113 channel are turned on.  Each channel will print messages about a particular
114 component of Wine.  # is required and can be either + or -.  Note that 
115 there is not a space after the comma between names. yyy are either the
116 name of a whole DLL or a single API entry by Name you either
117 want to include or exclude from the relay listing. These names must be in
118 the case as names used in the relaylisting. You can do the same for snoop.
120 For instance:
122 .I -debugmsg warn+dll,+heap
123 will turn on DLL warning messages and all heap messages.  
125 .I -debugmsg fixme-all,warn+cursor,+relay
126 will turn off all FIXME messages, turn on cursor warning messages, and turn
127 on all relay messages (API calls).
128 .br 
129 .I -debugmsg -relay=LeaveCriticalSection:EnterCriticalSection
130 will turn on all relay messages except for LeaveCriticalSection and
131 EnterCriticalSection.
132 .br 
133 .I -debugmsg +relay=ADVAPI32
134 will only turn on relay messages into the ADVAPI32 code.
136 The full list of names is: all, accel, advapi, animate, aspi, atom, 
137 bitblt, bitmap, caret, cd, cdaudio, class, clipboard, clipping, combo, 
138 comboex, comm, commctrl, commdlg, console, crtdll, cursor, datetime, dc, 
139 dde, ddeml, ddraw, debug, dialog, dinput, dll, dosfs, dosmem, dplay, driver, 
140 dsound, edit, event, exec, file, fixup, font, gdi, global, graphics, header, 
141 heap, hook, hotkey, icon, imagehlp, imagelist, imm, int, int10, int16, int17, 
142 int19, int21, int31, io, ipaddress, key, keyboard, ldt, listbox, listview, 
143 local, mci, mcianim, mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, 
144 mmsys, mmtime, module, monthcal, mpr, msacm, msg, nativefont, nonclient, ntdll, 
145 ole, pager, palette, pidl, print, process, profile, progress, prop, psapi, 
146 psdrv, rebar, reg, region, relay, resource, s, scroll, security, segment, 
147 selector, sem, sendmsg, server, shell, shm, snoop, sound, static, statusbar, 
148 stress, string, syscolor, system, tab, task, text, thread, thunk, timer, 
149 toolbar, toolhelp, tooltips, trackbar, treeview, tweak, uitools, updown, ver, 
150 virtual, vxd, win, win16drv, win32, wing, winsock, wnet, x11, x11drv.
152 For more information on debugging messages, see the file 
153 .I documentation/debug-msgs
154 in the source distribution.
157 .I -depth n
158 Change the depth to use for multiple-depth screens
160 .I -desktop geom
161 Use a desktop window of the given geometry
163 .I -display name
164 Use the specified display
166 .I -dll name[,name[,...]]={native|elfdll|so|builtin}[,{n|e|s|b}[,...]][:...]
167 Selects the override type and load order of dll used in the loading process
168 for any dll. The default is set in wine.conf or ~/.winerc. There are
169 currently four types of libraries that can be loaded into a process' address
170 space: Native windows dlls (
171 .I native
172 ), ELF encapsulated windows dlls (
173 .I elfdll
174 ), native ELF libraries (
175 .I so
176 )and wine internal dlls (
177 .I builtin
178 ). The type may be abbreviated with the first letter of the type (
179 .I n, e, s, b
180 ). Each sequence of orders must be seperated by commas.
182 Each dll may have its own specific load order. The load order determines
183 which verion of the dll is attempted to be loaded into the address space. If
184 the first fails, then the next is tried and so on. Different load orders can
185 be specified by seperating the entries with a colon. Multiple libraries
186 with the same load order can be separated with commas.
188 Examples:
190 .I -dll comdlg32,commdlg=n,b
192 Try to load comdlg32 and commdlg as native windows dll first and try
193 the builtin version if the native load fails.
195 .I -dll comdlg32,commdlg=e,n:shell,shell32=b:comctl32,commctrl=n
197 Try to load comdlg32 and commdlg as elfdll first and try the native version
198 if the elfdll load fails; load shell32/shell always as builtin and
199 comctl32/commctrl always as native.
201 Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.)
202 having exactly the same load order. This will prevent mismatches at runtime.
203 See also configuration file format below.
205 .I -failreadonly
206 Read only files may not be opened in write mode (the default is to
207 allow opening read-only files for writing, because most Windows
208 programs always request read-write access, even on CD-ROM drives...).
210 .I -fixedmap
211 Use a "standard" color map.
213 .I -iconic
214 Start as an icon
216 .I -language xx
217 Set the language to
218 .I xx
219 (one of Ca, Cs, Da, De, En, Eo, Es, Fi, Fr, Hu, It, Ko, No, Pl, Pt, Ru, Sv, Wa)
221 .I -managed
222 Create each top-level window as a properly managed X window
224 .I -mode modename
225 Determines the mode in which
226 .B wine
227 is started. Possible mode names are
228 .I standard
230 .I enhanced.
231 Enhanced mode is the default (when no -mode option is specified).
233 .I -name name
234 Set the application name
236 .I -privatemap
237 Use a private color map
239 .I -synchronous
240 Turn on synchronous display mode
242 .I -winver version
243 Specify which Windows version WINE should imitate.
244 Possible arguments are: win31, win95, nt351, and nt40.
245 .PD 1
246 .SH PROGRAM/ARGUMENTS
247 The program name may be specified in DOS format (
249 C:\\WINDOWS\\SOL.EXE)
250 or in Unix format (
251 .I /msdos/windows/sol.exe
252 ).  The program being executed may be passed arguments by adding them on 
253 to the end of the command line invoking
254 .B wine
255 (such as: wine "notepad C:\\TEMP\\README.TXT").  Note that
256 the program name and its arguments 
257 .I must
258 be passed as a single parameter, which is usually accomplished by placing
259 them together in quotation marks.  Multiple applications may be started
260 by placing all of them on the command line (such as: wine notepad clock).
261 .SH CONFIGURATION FILE
262 .B wine
263 expects a configuration file (
264 .I /usr/local/etc/wine.conf
265 ), which should
266 conform to the following rules (the format is just like a Windows .ini
267 file).  The actual file name may be specified during the execution of
269 .B configure
270 script with the --sysconfdir option.  Alternatively, you may have a 
271 .I .winerc
272 file of this format in your home directory or have the environment variable
273 .B WINE_INI
274 pointing to a configuration file, or use the -config option on the command 
275 line.
276 .SH ENVIRONMENT VARIABLES
277 .B wine
278 makes the environment variables of the shell from which 
279 .B wine
280 is started accesible to the windows/dos processes started. So use the
281 appropriate syntax for your shell to enter environment variables you need. 
282 .SH CONFIGURATION FILE FORMAT
283 All entries are grouped in sections; a section begins with the line
285 .I [section name]
287 and continues until the next section starts. Individual entries
288 consist of lines of the form
290 .I entry=value
292 The value can be any text string, optionally included in single or
293 double quotes; it can also contain references to environment variables
294 surrounded by
295 .I ${}.
296 Supported section names and entries are listed below.
298 .B [Drive X]
300 This section is used to specify the root directory and type of each
301 .B DOS
302 drive, since most Windows applications require a DOS/MS-Windows based 
303 disk drive & directory scheme. There is one such section for every
304 drive you want to configure.
306 .I format: Path = <rootdirectory>
308 default: none
310 If you mounted your dos partition as 
311 .I /dos
312 and installed Microsoft Windows in 
313 C:\\WINDOWS then you should specify 
314 .I Path=/dos
315 in the
316 .I [Drive C]
317 section.
319 .I format: Type = <type>
321 default: hd
323 Used to specify the drive type; supported types are floppy, hd, cdrom
324 and network.
326 .I format: Label = <label>
328 default: 'Drive X'
330 Used to specify the drive label; limited to 11 characters.
332 .I format: Serial = <serial>
334 default: 12345678
336 Used to specify the drive serial number, as an 8-character hexadecimal
337 number.
339 .I format: Filesystem = <fstype>
341 default: win95
343 Used to specify the type of the file system Wine should emulate on a given
344 directory structure/underlying file system.
346 Supported types are msdos (or fat), win95 (or vfat), unix.
348 Recommended:
350   win95 for ext2fs, VFAT and FAT32
352   msdos for FAT16 (ugly)
354 You definitely don't want to use "unix" unless you intend to port programs using Winelib.
356 Always try to avoid using FAT16. Use VFAT/FAT32 OS file system driver instead !
358 .B [wine]
360 .I format: windows = <directory>
362 default: C:\\WINDOWS
364 Used to specify a different Windows directory
366 .I format: system = <directory>
368 default: C:\\WINDOWS\\SYSTEM
370 Used to specify a different system directory
372 .I format: temp = <directory>
374 default: C:\\TEMP
376 Used to specify a directory where Windows applications can store 
377 temporary files.
379 .I format: path = <directories separated by semi-colons>
381 default: C:\\WINDOWS;C:\\WINDOWS\\SYSTEM
383 Used to specify the path which will be used to find executables and .DLL's.
385 .I format: symboltablefile = <filename>
387 default: wine.sym
389 Used to specify the path and file name of the symbol table used by the built-in
390 debugger.
392 .B [DllDefaults]
394 .I format: EXTRA_LD_LIBRARY_PATH=/usr/local/lib/wine[:/more/path/to/search[:...]]
396 The path will be appended to any existing LD_LIBRARY_PATH from the 
397 environment for the search of elfdlls and .so libraries.
399 .I format: DefaultLoadOrder=native,elfdll,so,builtin
401 A comma seperated list of module-types to try to load in that specific
402 order. The DefaultLoadOrder key is used as a fallback when a module is
403 not specified explicitely. If the DefaultLoadOrder key is not found, 
404 then the order "native,elfdll,so,builtin" is used.
406 Case is not (yet) important and only the first letter of each type is enough
407 to identify the type n[ative], e[lfdll], s[o], b[uiltin]. Also whitespace is
408 ignored. Keep everything in lower case to be sure that your entries keep the
409 same meaning. See also commandline option
410 .I -dll
411 for details about the alowable types.
413 .B [DllOverrides]
415 There are no explicit keys defined other than module/library names. A comma
416 separated list of modules is followed by an assignment of the load-order
417 for these specific modules. See above for possible types. You should not
418 specify an extension.
420 Examples:
422 .I kernel32, gdi32, user32 = builtin
424 .I kernel, gdi, user = builtin
426 .I comdlg32 = elfdll, native, builtin
428 .I commdlg = native, builtin
430 .I version, ver = elfdll, native, builtin
432 Changing the load order of kernel/kernel32, gdi/gdi32 and user/user32 to
433 anything other than builtin will cause wine to fail because wine cannot
434 use native versions for these libraries (user[32] and gdi[32] might work
435 native someday, but kernel[32] will never work native). These libraries are
436 also the last to be converted to elfdlls and will live as builtins for quite
437 some time to come.
439 Always make sure that you have some kind of strategy in mind when you start
440 fiddling with the current defaults and needless to say that you must know
441 what you are doing.
443 .B [DllPairs]
445 This is a simple pairing in the form 'name1 = name2'. It is supposed to
446 identify the dlls that cannot live without eachother unless they are
447 loaded in the same format. Examples are common dialogs and controls,
448 shell, kernel, gdi, user, etc...
450 The code will issue a warning if the loadorder of these pairs are different
451 and might cause hard-to-find bugs due to incompatible pairs loaded at
452 run-time. Note that this pairing gives
453 .B no
454 guarantee that the pairs
455 actually get loaded as the same type, nor that the correct versions are
456 loaded (might be implemented later). It merely notes obvious trouble.
458 Examples:
460 .I kernel = kernel32
462 .I commdlg = comdlg32
464 The implementation will probably change in a later stage to force pairs to
465 be loaded correctly, but there are also drawbacks with such an approach.
467 .B [serialports]
469 .I format: com[12345678] = <devicename>
471 default: none
473 Used to specify the devices which are used as com1 - com8.
475 .B [parallelports]
477 .I format: lpt[12345678] = <devicename>
479 default: none
481 Used to specify the devices which are used as lpt1 - lpt8.
483 .B [spy]
485 .I format: file = <filename or CON when logging to stdout>
487 default: none
489 Used to specify the file which will be used as
490 .B logfile.
492 .I format: exclude = <message names separated by semicolons>
494 default: none
496 Used to specify which messages will be excluded from the logfile.
498 .I format: include = <message names separated by semicolons>
500 default: none
501 .br Used to specify which messages will be included in the logfile.
503 .B [Tweak.Layout]
505 .I format: WineLook=<Win31|Win95|Win98>
507 default: Win31
508 .br 
509 Use Win95-like window displays or Win3.1-like window displays.
510 .SH SAMPLE CONFIGURATION FILE
511 A sample configuration file is distributed as
512 .B wine.ini
513 in the top-level directory of the source distribution.
514 .SH AUTHORS
515 .B Wine
516 is available thanks to the work of many developers. For a listing
517 of the authors, please see the file 
518 .B AUTHORS
519 in the top-level directory of the source distribution.
520 .SH BUGS
522 A status report on many appplications is available from
523 .I http://www.winehq.com/Apps.
524 Please add entries to this list for applications you currently run.
526 Bug reports and successes may be posted to 
527 .I comp.emulators.ms-windows.wine.
528 If you want to post a bug report, please read the file
529 .I documentation/bugreports
530 in the Wine source to see what information is necessary.
532 For problems and suggestions with this manpage, please send a note to
533 James Juran <jrj120@psu.edu>.
534 .SH AVAILABILITY
535 The most recent public version of 
536 .B wine
537 can be obtained via FTP from metalab.unc.edu or tsx-11.mit.edu in the 
538 /pub/linux/ALPHA/Wine/development directory.  The releases are in the 
539 format 'Wine-yymmdd.tar.gz', or 'Wine-yymmdd.diff.gz' for the diff's 
540 from the previous release.
542 The latest snapshot of the code may be obtained via CVS.  For information
543 on how to do this, please see
545 http://www.winehq.com/dev.html
547 WineHQ, the
548 .B wine
549 development headquarters, is at
550 .I http://www.winehq.com/.
551 This website contains a great deal of information about
552 .B wine
553 as well as a collection of unofficial patches against the current release.
556 .B wine 
557 newsgroup is 
558 .I comp.emulators.ms-windows.wine.
559 All discussions about the project take place in this forum.
560 .SH FILES
561 .PD 0
563 .I /usr/local/bin/wine
564 The Wine program loader.
566 .I /usr/local/bin/dosmod
567 The DOS program loader.
569 .I /usr/local/etc/wine.conf
570 Global configuration file for wine.
572 .I ~/.winerc
573 User-specific configuration file
575 .I /usr/local/lib/wine.sym
576 Global symbol table (used in debugger)
577 .SH "SEE ALSO"
578 .BR clone (2)