Winelib - Any port in a storm.
Motto: The journey of a thousand miles starts with a single step.
Theoretically, any Win32 app should be compilable out of the box under Wine. This, of course, is not the case. We have incompatible headers, and a bunch of other problems described in Winelib User's Guide. A good way to fix these is to try to compile applications for which we have the source under Winelib.
But what do we hope to achieve? Well, the purpose of this project is four-fold:
- Document our experience on porting these applications to Winelib
- Improve Winelib based on the above such that the porting process becomes very simple
Update the Winelib User's Guide to the latest porting process
- Fixing header and library problems in the process.
There are many such apps around, and a lot of them are hosted at SourceForge. There are over 10,000 apps listed as running under Windows OS, and over 7,000 of them are listed as running under the Win32 environment. All of the above have publicly available source code, and most are decent candidates for this project.
Obviously, we cannot start porting all these applications. We have to pick a few important ones, and work with those.
Compiling apps under Winelib should theoretically involve only makefile changes. In practice, you will encounter header problems, and the likes -- for these it is much better (and faster) to submit a patch, rather than document them. So for the remainder of the section, let's assume the Wine headers are good enough for the application in question.
We are now faced with adapting the build process to Wine's needs. As things stand today, we have to make another assumption: you aim at compiling the application using the GNU toolchain (gmake, gcc, ld, etc.). In theory, it should be possible to accomplish this with other tools, but at this point this is a rather unexplored territory. That being said, we now distinguish two large application classes:
- Non-GNU tools build process
For these, winemaker does a decent job of generating a build system. I will not cover this type of applications here, for the time being. Please refer to the winemaker documentation for more information.
- GNU tools based build process
Fortunately, most OSS applications have a build system based around the MinGW tool chain. Sometimes they have alternative build systems for the Borland and/or Microsoft tools, but more often than not they have to support the MinGW tools out of necessity.
If you know of an application that could be listed here, please add it.
Suggestions & Successes
Here is a list of programs that have been suggested for porting or already ported with Winelib
Suggested, No Active Worker
CD-DA X-Tractor at http://xtractor.sourceforge.net/
CDex at http://cdexos.sourceforge.net/
Easy Code at http://www.easycode.cat/English/index.htm
LibreOffice at https://www.libreoffice.org/
Ultimate++ at http://upp.sourceforge.net/
VirtualDub at http://www.virtualdub.org/
Firefox at http://www.mozilla.org/en-US/firefox/fx/
TeXnicCenter at http://www.texniccenter.org/
WinAMP at http://www.wasabidev.org/
AbiWord at http://www.abisource.com/
CoolPlayer at http://coolplayer.sourceforge.net/
GNU Winboard at http://www.tim-mann.org/xboard.html
WinVi at http://www.winvi.de
Petzold's Examples at http://www.computersciencelab.com/Petzold.htm
Visual MinGW at http://visual-mingw.sourceforge.net/