HowTo compile on Win32 with MinGW
Contents
Originally by Madcat
English | Deutsch
This wiki page only covers the latest CVS version of aMule, not releases in the 1.x.x or 2.x.x branches.
Requirements for compiling aMule
Note: Some of these require manually moving includes and libraries into their correct directories.
- Windows port of GNU C compiler, MinGW -> Download (4.1.1)
- Minimal GNU shell for Windows, MSys -> Download (1.0.10)
- Developer toolkit for MSys (for CVS & co) -> Download (1.0.1)
- LibIConv (required by gettext) -> Download (1.8)
- GetText (for po files, autogen.sh, etc) -> Download (0.11.5)
- zlib compression library -> Download (1.2.3)
- Windows port of wxWidgets library -> Download (2.6.1)
Installing the Minimal System
The first step is to create a linux-like environment, which is required in order to be able to perform the build. This can be done by following these steps in this order:
- Install MinGW. When it prompts you for a folder, the default is slightly messy but the safer selection.
- Install MSys. When it prompts you for the MinGW folder, it's very important to specify it correctly. Failure on this step will stop any compilation attempts. If for some reason you fail, install MSys again.
- Install the MSys developer toolkit.
- Install LibIConv.
- Install GetText.
Compiling the libraries
There are two libraries that aMule will need compiled: zlib and wxWidgets.
We will compile them from MSys, so just run it. Once you are running MSys, you'll be on your home folder. Copy the zlib and wxWidgets files you downloaded above into this folder.
The steps for compiling them is:
- zlib: Uncompress zlib, cd to the newly created directory and run ./configure --prefix=/mingw && make && make install
- wxWidgets: Uncompress wxWidgets, cd to the newly created directory and run ./configure --disable-shared --without-checklistbox && make && make install
If you want to help us developers, you can add --disable-debug flag to the wxWidgets configure command, right after --disable-shared, but be warned it will result into a > 100Mb aMule.exe.
Compilation
Ok, we're all done with the compilation environment. Let's do the last step: compiling aMule.
The compilation itself is actually just a matter of following the usual method: ./configure && make. Use your favorite flags on ./configure, for example, --disable-debug will remove debug info, but will also make it harder for us developers to understand the bugs you might find.
You might want to compile just the remote GUI: the flags would be --disable-monolithic --disable-ed2k --enable-amule-gui