.\" -*- nroff -*-
.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] \fIinfile\fR.idl
.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 are 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.
.PP
.B Header options:
.IP "\fB-h\fR"
Generate header files.
.IP "\fB-H \fIfile\fR"
Name of header file to generate. The default header
filename is \fIinfile\fR.h.
.IP "\fB--oldnames\fR"
Use old naming conventions.
.PP
.B Type library options:
.IP \fB-t\fR
Generate a type library.
.IP "\fB-T \fIfile\fR"
Define the name of the type library to be generated. 
The default filename is \fIinfile\fR.tlb.
.PP
.B UUID file options:
.IP "\fB-u\fR"
Generate a UUID file.
.IP "\fB-U \fIfile\fR"
Define the name of the UUID file to be generated. 
The default filename is \fIinfile\fR_i.c.
.PP
.B Proxy/stub generation options:
.IP "\fB-c\fR"
Generate client stub.
.IP "\fB-C \fIfile\fR"
Name of client stub file (default is \fIinfile\fR_c.c)
.IP "\fB-p\fR"
Generate proxy.
.IP "\fB-P \fIfile\fR"
Name of proxy file (default is \fIinfile\fR_p.c)
.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 server stub.
.IP "\fB-S \fIfile\fR"
Name of server stub file (default is \fIinfile\fR_s.c)
.PP
.B Dlldata file options:
.IP "\fB--dlldata=\fIfile\fR"
Name of the dlldata file (default is dlldata.c)
.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[=\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--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
.B widl
is incomplete.  Please file bug reports for this application at
.I http://bugs.winehq.org.
.SH AUTHORS
.B widl
was originally written by Ove Kaaven.  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 "SEE ALSO"
The Winelib User Guide
.nf
The Wine Developers Guide
