V0.1 WINE Mingw and ReactOS porting and status guide.
Steven_Ed4153 at yahoo.com
Sun May 26 04:15:06 CDT 2002
I am out of town untill Monday evening but I've been trying to get my
documentation work done while on the road.
If anyone is interested here it is. It has a list of some of my current
bugs plus room for people to test and play.
All flames will be dumped in /dev/null on my return =P
"Every revolution was once a thought in one man's mind"
- Ralph Waldo Emerson
-------------- next part --------------
This document should contain all of the information needed for you to start
developing wine on the Mingw platform. Almost all information in this guide
applys to both the Mingw on Cygwin and Mingw for ReactOS ports.
This document assumes you are using cygwin to configure and build WINE for
a Mingw Target. Cygwin is enviroment used due to a set of bugs within the
Mingw Unix Enviroment MSYS. Msys may work however it, the ReactOS build
system and and any other configurations are not supported by the WINE project.
DEVELOPING WINE USING MINGW ON CYGWIN.
p1) Make sure you have the latest cygwin with win32api package.
p2) Be sure you are using mingw-extra-2.95.3.tar.gz with cygwin. (Fix for some libiberty.a issues)
Read http://www.colomsat.net.co/freehost/ngiraldo/cppcygwin.html for the
directions on building mingw C++ applications on cygwin.
To start hacking on Wine for Mingw, follow the directions at www.winehq.com
to download the most current WINE sources.
(1) ./configure --host=mingw32 --target=mingw32 --build=mingw32 CFLAGS="-D__MINGW__ -D_WINDOWS -DWINE_NOWINSOCK" CC="gcc -mno-cygwin -fnative-struct" CXX="gcc -mno-cygwin -fnative-struct"
Note: you may also be able to add --disable-debug --disable-trace flags to this command line.
(2) make depend
(3) make implib
FIXME: Make implib doesnt exist yet.
(4) make tools
MAKE TOOLS BUGS:
BUG: winedump uses mmap and munmap which Windows Lacks
QUICKFIX: Remove winedump from wine/tools/makefile
BUG: wmc and wrc need to be linked to libberty.a (getopt, optarg, optan)
QUICKFIX: add -liberty to wrc and wmc Makefiles
BUG: Cygwins libberty.a is buggy
QUICKFIX: use the one from normal mingw
(5) cd programs && make
MAKE PROGRAMS BUGS:
BUG: regsrv and wineconsole fail
QUICKFIX: Remove them
BUG: uninstaller is buggy on the mingw port
(6) Make dlls
MAKE DLLS BUGS: To many others to name right now. DO NOT BUILD MSVCRT, NTDLL, KERNEL32 OR USER/GDI
Build each dll manualy.
shlwapi needs imports from user32 that are not part of the win32api.
wvsnprintfA at 16
wvsnprintfW at 16
(7) Make tests
- Wine Tree
Make Implib rule
Debugging and testing of Mingw port
Winehq Mingw develoepr HOWTO
Email Cygwin developers about cygwin1.dll issues.
Email Mingw Developers about warnings in basetsd.h and stdlib.h
Send patch to Mingw Project about missing exports in libkernel32.a
The ReactOS Project will try to do quarterly imports of the WINE tree after
each ReactOS release. These directions ONLY apply to the ReactOS build system.
If you need to import the WINE sources in to the ReactOS build system or
want to build ReactOS with a newer copy of the WINE sources follow
(1) Run importwineros.sh on the most current wine sources
(2) set the enviomental varible ROS_BUILD_WINE=1
(3) Rebuild ReactOS sources as normal
If you are adding funcationality to WINE, such as implementing a function in
a WINE dll that is currently a stub, you MUST use the Cygwin on Mingw enviroment
with the most current WINE sources. Any patches that add funcationalty to the
WINE dlls MUST first be accepted by the WINE project and follow the WINE projects
DO NOT SEND REACTOS SPICIFC CHANGES TO THE WINE PROJECT.
YOU HAVE BEEN WARNED. =P
Any ReactOS Spicific changes in the REACTOS fork must be clearly marked and
should not be used unless there is no other way to work around the problem.
ReactOS Spacific code
- ReactOS fork
Write importwineros.sh script to convert wine Makefiles to ReactOS makefile's when doing a import.
Write a better ReactOS Wine developer HOWTO
More information about the wine-devel