[ros-kernel] Wine DLLs
Ge van Geldorp
ge at gse.nl
Fri Jan 2 21:06:48 CET 2004
I've just done a mega-commit to allow easier importing (I hope...) of
Wine DLLs and, most importantly, it should be easier to keep them
up-to-date now. I've tried to change as little as possible in the Wine
DLL source code and put all the differences in header files which are
store in include/wine.
The Makefile for these Wine DLLs looks very simple now, this is
lib/ole32/Makefile for example:
# $Id: makefile,v 1.9 2004/01/02 19:49:45 gvg Exp $
PATH_TO_TOP = ../..
TARGET_TYPE = winedll
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
The trick here is the (new) TARGET_TYPE, winedll. This will cause our
build system to take Makefile.in (from Wine) and combine it with a
ReactOS-specific Makefile.ros-template, creating a new Makefile.ros.
Caspers wine2ros is ofcourse used for this task. The
Makefile.ros-template for ole32 looks like:
# $Id: Makefile.ros-template,v 1.1 2004/01/02 19:49:45 gvg Exp $
TARGET_NAME = ole32
TARGET_OBJECTS = @C_SRCS@
TARGET_CFLAGS = @EXTRADEFS@
TARGET_SDKLIBS = @IMPORTS@ libwine.a wine_uuid.a ntdll.a
TARGET_BASE = 0x77a50000
TARGET_RC_SRCS = @RC_SRCS@
TARGET_RC_BINSRC = @RC_BINSRC@
TARGET_RC_BINARIES = @RC_BINARIES@
default: all
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(TOOLS_PATH)/depend.mk
Also not very intimidating I hope.... The @..@ are replace by entries
taken from Makefile.in and thus the generated Makefile.ros is
automatically kept up-to-date.
There is no need anymore to create ReactOS specific .def files (taken
care of by the winebuild program) or to extract binary resources (taken
care of by the bin2res program).
In each directory I've done so far is a file winehq2ros.patch containing
the patches I had to make to the Wine source. I'll do my best to make
these go away, but that will probably be after the 0.2 release. Most of
the patches have to do with renaming the .s struct in LARGE_INTEGERs to
.u
It's a huge commit, I hope I didn't break anything but if I did let me
know and I'll try to fix it ofcourse.
Gé van Geldorp.
More information about the Ros-kernel
mailing list