PATCH: widl compiler from ReWind Tree (part2)

Steven Edwards Steven_Ed4153 at yahoo.com
Sun Jun 30 15:06:27 CDT 2002


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.
-------------- next part --------------
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
-------------- next part --------------
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" ;;
-------------- next part --------------
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
-------------- next part --------------
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):
-------------- next part --------------
--- 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 */


More information about the wine-patches mailing list