	Running & Compiling WINE in OS/2

If you want to help for the port of WINE to OS/2, 
send me a message at krynos@clic.net
I currently don't want beta testers. It must work before we can test it.

Here is what you need to (try to) compile Wine for OS/2:
EMX 0.9c (fix 2)
XFree86 3.2 OS/2 (with development libraries)
bash, gnu make, grep, tar, bison, flex
sed (a working copy of)
xpm
diff and patch are recommended
Lots of disk space (about 40-50 megs after EMX and XFree installed)

To compile:
sh 
tools/make_os2.sh
make depend
make
emxbind wine

Currently:
- configure and make depend work...
- make compiles (with a modified Linux mman.h), but doesn't link.
- signal handling is horrible... (if any)
- EMX doesn't support mmap (and related), SysV IPC and stafs()
- XFree86/OS2 3.2 doesn't support XShmQueryExtension() and XShmPixmapFormat()
  due to the same lack in EMX...

What needs to be redone:
- LDT (using DosAllocSeg in memory/ldt.c) *
- implement mmap() and SysV IPC in EMX *
- File functions, 
- I/O access (do it!),
- Communication (modem),
- Interrupt (if int unknow, call current RealMode one...), 
- verify that everything is thread safe (how does Win95/NT handle multi-thread?), 
- move X functions in some files (and make a wrapper, to use PM instead latter), 
- return right CPU type, 
- make winsock work
* Top priority

The good things:
- OS/2 have DOS interrupts
- OS/2 have I/O port access
- OS/2 have multi-thread
- Merlin have Open32 (to be used later...)

Robert Pouliot <krynos@clic.net>
January 9, 1997

