Handling New IDLs with widl

Roy roy at cs.hmc.edu
Wed Sep 19 15:59:58 CDT 2007


Howdy,

I'm looking for advice on how to integrate a new idl into wine.

I'm implementing bits and using the widl compiler on the IDL I wrote.  My
current setup places the IDL in include/ with the build system generating a
header file that it posits there.  So far, so good.

I now need to generate bits_i.c and link that into my dll located in dlls/bits.
Adding: 

----
IDL_I_SRCS = $(TOPSRCDIR)/include/bits.idl
----

to dlls/bits/Makefile.in solves this problem but drops the bits_i.c into
include/.  This is rather messy.  Any advice on if I should (1) moving my IDL
into dlls/bits/ and do everything locally or (2) dig into Make.rules.in and
update the rule for *_i.c generation to allow the generated file to exist
locally with the .idl sitting in include.  The second idea is a little tricky
since the current rule is careful to rename the generated .i file with the -U
option:

----
.idl_i.c:
    $(WIDL) $(IDLFLAGS) -u -U $@ $<
----

which is a great idea, but uses the full path to the original idl when renaming
the file.  Probably good for the general case, but not for me.

Thanks for the advice!
-Roy






More information about the wine-devel mailing list