And here is the build system support. rpcfc.h goes in to include/port Makefile.in goes to tools. Changelog: Merge of widl compiler from X11 fork.
cvs diff -u Makefile.in Index: Makefile.in =================================================================== RCS file: /home/wine/wine/tools/Makefile.in,v retrieving revision 1.21 diff -u -r1.21 Makefile.in --- Makefile.in 14 Jun 2002 23:48:28 -0000 1.21 +++ Makefile.in 30 Jun 2002 19:27:23 -0000 @@ -12,6 +12,7 @@ SUBDIRS = \ winebuild \ winedump \ + widl \ wmc \ wrc
cvs diff -u configure Index: configure =================================================================== RCS file: /home/wine/wine/configure,v retrieving revision 1.313 diff -u -r1.313 configure --- configure 28 Jun 2002 18:31:01 -0000 1.313 +++ configure 30 Jun 2002 19:22:41 -0000 @@ -13315,7 +13315,7 @@ MAKE_PROG_RULES=programs/Makeprog.rules -ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules programs/Makeprog.rules Makefile debugger/Makefile dlls/Makefile dlls/advapi32/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/d3d8/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput8/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dsound/Makefile dlls/gdi/Makefile dlls/glu32/Makefile dlls/icmp/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/kernel/Makefile dlls/lzexpand/Makefile dlls/mapi32/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/winemp3/Makefile dlls/msdmo/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt20/Makefile dlls/msvideo/Makefile dlls/netapi32/Makefile dlls/ntdll/Makef ile dlls/odbc32/Makefile dlls/ole32/Makefile dlls/oleaut32/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/psapi/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/rasapi32/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/shdocvw/Makefile dlls/shell32/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/snmpapi/Makefile dlls/sti/Makefile dlls/tapi32/Makefile dlls/ttydrv/Makefile dlls/twain/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/user/Makefile dlls/version/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mcianim/Makefile dlls/winmm/mciavi/Makefile dlls/winmm/mcicda/Makefile dlls/winmm/mciseq/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/midimap/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Make file dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winspool/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/x11drv/Makefile documentation/Makefile include/Makefile library/Makefile miscemu/Makefile ole/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/expand/Makefile programs/notepad/Makefile programs/osversioncheck/Makefile programs/progman/Makefile programs/regapi/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/regtest/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineconsole/Makefile programs/winefile/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/wmc/Makefile tools/wrc/Makefile tsx11/Makef ile unicode/Makefile" +ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules programs/Makeprog.rules Makefile debugger/Makefile dlls/Makefile dlls/advapi32/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/d3d8/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput8/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dsound/Makefile dlls/gdi/Makefile dlls/glu32/Makefile dlls/icmp/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/kernel/Makefile dlls/lzexpand/Makefile dlls/mapi32/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/winemp3/Makefile dlls/msdmo/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt20/Makefile dlls/msvideo/Makefile dlls/netapi32/Makefile dlls/ntdll/Makef ile dlls/odbc32/Makefile dlls/ole32/Makefile dlls/oleaut32/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/psapi/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/rasapi32/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/shdocvw/Makefile dlls/shell32/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/snmpapi/Makefile dlls/sti/Makefile dlls/tapi32/Makefile dlls/ttydrv/Makefile dlls/twain/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/user/Makefile dlls/version/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mcianim/Makefile dlls/winmm/mciavi/Makefile dlls/winmm/mcicda/Makefile dlls/winmm/mciseq/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/midimap/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Make file dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winspool/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/x11drv/Makefile documentation/Makefile include/Makefile library/Makefile miscemu/Makefile ole/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/expand/Makefile programs/notepad/Makefile programs/osversioncheck/Makefile programs/progman/Makefile programs/regapi/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/regtest/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineconsole/Makefile programs/winefile/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/widl/Makefile tools/wmc/Makefile tools/wrc/ Makefile tsx11/Makefile unicode/Makefile" cat >confcache <<\_ACEOF @@ -13925,6 +13925,7 @@ "tools/winapi/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/winapi/Makefile" ;; "tools/winebuild/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/winebuild/Makefile" ;; "tools/winedump/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/winedump/Makefile" ;; + "tools/widl/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/widl/Makefile" ;; "tools/wmc/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/wmc/Makefile" ;; "tools/wrc/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/wrc/Makefile" ;; "tsx11/Makefile" ) CONFIG_FILES="$CONFIG_FILES tsx11/Makefile" ;;
cvs diff -u configure.ac Index: configure.ac =================================================================== RCS file: /home/wine/wine/configure.ac,v retrieving revision 1.55 diff -u -r1.55 configure.ac --- configure.ac 28 Jun 2002 18:31:01 -0000 1.55 +++ configure.ac 30 Jun 2002 19:23:56 -0000 @@ -1375,6 +1375,7 @@ tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile +tools/widl/Makefile tools/wmc/Makefile tools/wrc/Makefile tsx11/Makefile
cvs diff -u Make.rules.in Index: Make.rules.in =================================================================== RCS file: /home/wine/wine/Make.rules.in,v retrieving revision 1.119 diff -u -r1.119 Make.rules.in --- Make.rules.in 21 Jun 2002 19:15:45 -0000 1.119 +++ Make.rules.in 30 Jun 2002 19:21:10 -0000 @@ -178,6 +178,11 @@ $(MODULE).dbg.c: $(C_SRCS) $(WINEBUILD) $(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -debug -C$(SRCDIR) $(C_SRCS) +# Rule to rebuild the IDL compiler + +$(widl): + cd $(TOOLSDIR)/tools/widl && $(MAKE) widl + # Rule to rebuild the resource compiler $(WRC):
--- NUL Wed Dec 31 19:00:00 1969 +++ rpcfc.h Fri Jun 7 21:32:52 2002 @@ -0,0 +1,109 @@ +/* + * RPC format chars, as found by studying MIDL output. + */ + +#ifndef __WINE_RPCFC_H +#define __WINE_RPCFC_H + +/* base types */ +#define RPC_FC_BYTE 0x01 +#define RPC_FC_CHAR 0x02 +#define RPC_FC_SMALL 0x03 +#define RPC_FC_USMALL 0x04 +#define RPC_FC_WCHAR 0x05 +#define RPC_FC_SHORT 0x06 +#define RPC_FC_USHORT 0x07 +#define RPC_FC_LONG 0x08 +#define RPC_FC_ULONG 0x09 +#define RPC_FC_FLOAT 0x0a +#define RPC_FC_HYPER 0x0b +#define RPC_FC_DOUBLE 0x0c + +#define RPC_FC_ENUM32 0x0e + +/* other stuff */ +#define RPC_FC_RP 0x11 /* ? */ +#define RPC_FC_UP 0x12 /* unique pointer */ +#define RPC_FC_OP 0x13 /* ? */ +#define RPC_FC_FP 0x14 /* full pointer */ +/* FC_RP/UP/OP/FP: flags, NdrFcShort(typeofs) */ + #define RPC_FC_P_ONSTACK 0x4 /* [alloced_on_stack] */ + #define RPC_FC_P_SIMPLEPOINTER 0x8 /* [simple_pointer] */ + /* flag 10 is not tagged */ + +#define RPC_FC_STRUCT 0x15 +/* FC_STRUCT: fieldcount-1, NdrFcShort(size), fields */ + +#define RPC_FC_PSTRUCT 0x16 +#define RPC_FC_CSTRUCT 0x17 + +#define RPC_FC_BOGUS_STRUCT 0x1a + +#define RPC_FC_CARRAY 0x1b /* conformant array? */ +#define RPC_FC_CVARRAY 0x1c /* conformant varying array? */ +#define RPC_FC_SMFARRAY 0x1d /* simple fixed array? */ +/* FC_SMFARRAY: fieldcount-1, NdrFcShort(count), type */ + +#define RPC_FC_BOGUS_ARRAY 0x21 + +#define RPC_FC_C_WSTRING 0x25 + +#define RPC_FC_ENCAPSULATED_UNION 0x2a +#define RPC_FC_NON_ENCAPSULATED_UNION 0x2b + +#define RPC_FC_IP 0x2f /* interface pointer */ + +#define RPC_FC_AUTO_HANDLE 0x33 +/* FC_AUTO_HANDLE: oldflags, NdrFcLong(?), NdrFcShort(vtbl_idx), NdrFcShort(stacksiz), + * NdrFcShort(?), NdrFcShort(?), oi2flags, parmcount + * parameters: NdrFcShort(flags), NdrFcShort(stackofs), NdrFcShort(typeofs)/basetype */ + /* oldflags: 6c = object + oi2 */ + #define RPC_FC_AH_OI2F_SRVMUSTSIZE 0x01 + #define RPC_FC_AH_OI2F_CLTMUSTSIZE 0x02 + #define RPC_FC_AH_OI2F_HASRETURN 0x04 + #define RPC_FC_AH_PF_IN 0x0008 + #define RPC_FC_AH_PF_OUT 0x0010 + #define RPC_FC_AH_PF_RETURN 0x0020 + #define RPC_FC_AH_PF_BASETYPE 0x0040 + #define RPC_FC_AH_PF_BYVAL 0x0080 + #define RPC_FC_AH_PF_SIMPLEREF 0x0100 + /* PF: 03 = mustsize + mustfree */ + /* 2000 = srv alloc size=8, 4000 = srv alloc size=16 */ + +#define RPC_FC_POINTER 0x36 + +#define RPC_FC_ALIGNM4 0x38 +#define RPC_FC_ALIGNM8 0x39 + +#define RPC_FC_STRUCTPAD2 0x3e + +#define RPC_FC_NO_REPEAT 0x46 + +#define RPC_FC_VARIABLE_REPEAT 0x48 +#define RPC_FC_FIXED_OFFSET 0x49 + +#define RPC_FC_PP 0x4b + +#define RPC_FC_EMBEDDED_COMPLEX 0x4c +/* FC_EMBEDDED_COMPLEX: fieldcount-1, NdrFcShort(typeofs) */ + +#define RPC_FC_IN_PARAM 0x4d +/* FC_IN_PARAM: stacksiz, NdrFcShort(typeofs) */ +#define RPC_FC_IN_PARAM_BASETYPE 0x4e +/* FC_IN_PARAM_BASETYPE: basetype */ +#define RPC_FC_OUT_PARAM 0x51 +/* FC_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */ +#define RPC_FC_RETURN_PARAM_BASETYPE 0x53 +/* FC_RETURN_PARAM_BASETYPE: basetype */ + +#define RPC_FC_DEREFERENCE 0x54 + +#define RPC_FC_CONSTANT_IID 0x5a +/* FC_CONSTANT_IID: NdrFcLong(), NdrFcShort(), NdrFcShort(), 8x () */ + +#define RPC_FC_END 0x5b +#define RPC_FC_PAD 0x5c + +#define RPC_FC_USER_MARSHAL 0xb4 + +#endif /* __WINE_RPCFC_H */