| .TH WIDL 1 "October 2007" "@PACKAGE_STRING@" "Wine Developers Manual" |
| .SH NAME |
| widl \- Wine Interface Definition Language (IDL) compiler |
| .SH SYNOPSIS |
| .B widl |
| [\fIoptions\fR] \fIIDL_file\fR |
| .br |
| .B widl |
| [\fIoptions\fR] \fB--dlldata-only\fR \fIname1\fR [\fIname2\fR...] |
| .SH DESCRIPTION |
| When no options are used the program will generate a header file, and possibly |
| client and server stubs, proxy and dlldata files, a typelib, and a UUID file, |
| depending on the contents of the IDL file. If any of the options \fB-c\fR, |
| \fB-h\fR, \fB-p\fR, \fB-s\fR, \fB-t\fR, \fB-u\fR or \fB--local-stubs\fR is given, |
| .B widl |
| will only generate the requested files, and no others. When run with |
| \fB--dlldata-only\fR, widl will only generate a dlldata file, and it will |
| contain a list of the names passed as arguments. Usually the way this file |
| is updated is that each time |
| .B widl |
| is run, it reads any existing dlldata file, and if necessary regenerates it |
| with the same list of names, but with the present proxy file included. |
| .PP |
| When run without any arguments, |
| .B widl |
| will print a help message. |
| .PP |
| .SH OPTIONS |
| .PP |
| .B General options: |
| .IP "\fB-V\fR" |
| Print version number and exit. |
| .IP "\fB-o, --output=\fIname" |
| Set the name of the output file. When generating multiple output |
| files, this sets only the base name of the file; the respective output |
| files are then named \fIname\fR.h, \fIname\fR_p.c, etc. If a full |
| file name with extension is specified, only that file is generated. |
| .IP "\fB-b \fIcpu-manufacturer\fR[\fB-\fIkernel\fR]\fB-\fIos\fR" |
| Set the target architecture when cross-compiling. The target |
| specification is in the standard autoconf format as returned by |
| \fBconfig.sub\fR. |
| .PP |
| .B Header options: |
| .IP "\fB-h\fR" |
| Generate header files. The default output filename is \fIinfile\fB.h\fR. |
| .IP "\fB--oldnames\fR" |
| Use old naming conventions. |
| .PP |
| .B Type library options: |
| .IP \fB-t\fR |
| Generate a type library. The default output filename is |
| \fIinfile\fB.tlb\fR. If the output file name ends in \fB.res\fR, a |
| binary resource file containing the type library is generated instead. |
| .IP "\fB-m32, -m64\fR" |
| Generate a Win32 or Win64 type library respectively. |
| .PP |
| .B UUID file options: |
| .IP "\fB-u\fR" |
| Generate a UUID file. The default output filename is \fIinfile\fB_i.c\fR. |
| .PP |
| .B Proxy/stub generation options: |
| .IP "\fB-c\fR" |
| Generate a client stub file. The default output filename is \fIinfile\fB_c.c\fR. |
| .IP "\fB-Os\fR" |
| Generate inline stubs. |
| .IP "\fB-Oi\fR" |
| Generate old-style interpreted stubs. |
| .IP "\fB-Oif, -Oic, -Oicf\fR" |
| Generate new-style fully interpreted stubs. |
| .IP "\fB-p\fR" |
| Generate a proxy. The default output filename is \fIinfile\fB_p.c\fR. |
| .IP "\fB--prefix-all=\fIprefix\fR" |
| Prefix to put on the name of both client and server stubs. |
| .IP "\fB--prefix-client=\fIprefix\fR" |
| Prefix to put on the name of client stubs. |
| .IP "\fB--prefix-server=\fIprefix\fR" |
| Prefix to put on the name of server stubs. |
| .IP "\fB-s\fR" |
| Generate a server stub file. The default output filename is |
| \fIinfile\fB_s.c\fR. |
| .IP "\fB--win32\fR, \fB--win64\fR" |
| Only generate 32-bit or 64-bit code respectively (the default is to |
| generate both 32-bit and 64-bit versions into the same destination |
| file). |
| .PP |
| .IP "\fB--winrt\fR" |
| Enable Windows Runtime mode. |
| .IP "\fB--ns_prefix\fR" |
| Prefix namespaces with ABI namespace. |
| .PP |
| .B Registration script options: |
| .IP "\fB-r\fR" |
| Generate a registration script. The default output filename is |
| \fIinfile\fB_r.rgs\fR. If the output file name ends in \fB.res\fR, a |
| binary resource file containing the script is generated instead. |
| .PP |
| .B Dlldata file options: |
| .IP "\fB--dlldata-only\fI name1 \fR[\fIname2\fR...]" |
| Regenerate the dlldata file from scratch using the specified proxy |
| names. The default output filename is \fBdlldata.c\fR. |
| .PP |
| .B Preprocessor options: |
| .IP "\fB-I \fIpath\fR" |
| Add a header search directory to path. Multiple search |
| directories are allowed. |
| .IP "\fB-D \fIid\fR[\fB=\fIval\fR]" |
| Define preprocessor macro \fIid\fR with value \fIval\fR. |
| .IP "\fB-E\fR" |
| Preprocess only. |
| .IP "\fB-N\fR" |
| Do not preprocess input. |
| .PP |
| .B Debug options: |
| .IP "\fB-W\fR" |
| Enable pedantic warnings. |
| .IP "\fB-d \fIn\fR" |
| Set debug level to the non negative integer \fIn\fR. If |
| prefixed with \fB0x\fR, it will be interpreted as an hexadecimal |
| number. For the meaning of values, see the \fBDEBUG\fR section. |
| .PP |
| .B Miscellaneous options: |
| .IP "\fB-app_config\fR" |
| Ignored, present for midl compatibility. |
| .IP "\fB--local-stubs=\fIfile\fR" |
| Generate empty stubs for call_as/local methods in an object interface and |
| write them to \fIfile\fR. |
| .PP |
| .SH DEBUG |
| Debug level \fIn\fR is a bitmask with the following meaning: |
| * 0x01 Tell which resource is parsed (verbose mode) |
| * 0x02 Dump internal structures |
| * 0x04 Create a parser trace (yydebug=1) |
| * 0x08 Preprocessor messages |
| * 0x10 Preprocessor lex messages |
| * 0x20 Preprocessor yacc trace |
| .SH BUGS |
| Bugs can be reported on the |
| .UR http://bugs.winehq.org |
| .B Wine bug tracker |
| .UE . |
| .SH AUTHORS |
| .B widl |
| was originally written by Ove Kåven. It has been improved by Rob Shearman, |
| Dan Hipschman, and others. For a complete list, see the git commit logs. |
| This man page was originally written by Hannu Valtonen and then updated by |
| Dan Hipschman. |
| .SH AVAILABILITY |
| .B widl |
| is part of the Wine distribution, which is available through WineHQ, |
| the |
| .UR http://www.winehq.org/ |
| .B Wine development headquarters |
| .UE . |
| .SH "SEE ALSO" |
| .UR http://www.winehq.org/help |
| .B Wine documentation and support |
| .UE . |