Difference between revisions of "HowTo compile on Win32 with MinGW"

From AMule Project FAQ
Jump to: navigation, search
(Noone will use MinGW Studio anymore anyway.)
(Rework of the HowTo)
Line 11: Line 11:
 
'''Note:''' Some of these require manually moving includes and libraries into their correct directories.
 
'''Note:''' Some of these require manually moving includes and libraries into their correct directories.
  
*[http://www.microsoft.com/windows Windows] port of [http://gcc.gnu.org GNU C compiler] -> [http://prdownloads.sourceforge.net/mingw/MinGW-4.1.1.exe?download Download 4.1.1]
+
*[http://www.microsoft.com/windows Windows] port of [http://gcc.gnu.org GNU C compiler], MinGW -> [http://prdownloads.sourceforge.net/mingw/MinGW-4.1.1.exe?download Download 4.1.1]
  
*Minimal [http://www.gnu.org GNU] shell for [http://www.microsoft.com/windows Windows] -> [http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download Download 1.0.10]
+
*Minimal [http://www.gnu.org GNU] shell for [http://www.microsoft.com/windows Windows], MSys -> [http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download Download 1.0.10]
  
 
*Developer toolkit for [http://www.mingw.org/msys.shtml MSys] (for [http://www.gnu.org/software/cvs CVS] & co) -> [http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download Download 1.0.1]
 
*Developer toolkit for [http://www.mingw.org/msys.shtml MSys] (for [http://www.gnu.org/software/cvs CVS] & co) -> [http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download Download 1.0.1]
Line 23: Line 23:
 
*[http://www.zlib.org zlib] compression library -> [http://www.zlib.net/zlib-1.2.3.tar.gz Download 123]
 
*[http://www.zlib.org zlib] compression library -> [http://www.zlib.net/zlib-1.2.3.tar.gz Download 123]
  
*[http://www.microsoft.com/windows Windows] port of [[wxWidgets]] library -> [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.1-Setup.exe Download 2.6.1]
+
*[http://www.microsoft.com/windows Windows] port of [[wxWidgets]] library -> [ http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.1.zip Download 2.6.1]
  
== Common guidelines, issues, solutions ==
 
  
When compiling [[wxWidgets]], you should make use of the following configure flags:
+
== Installing the Minimal System ==
''--disable-shared --without-checklistbox''
+
  
Compile ''[http://www.zlib.org zlib]'' with ''--prefix=/mingw'' or zlib detection in aMule will not work.
+
The first step is to create a linux-like environment for the compilation. This can be done by following this steps '''in this order''':
  
Link statically against ''[http://www.zlib.org zlib]'' to avoid distributing extranous DLLs (and generally make life simpler).  
+
*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:
 +
 
 +
*[http://www.zlib.org 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 we warned it will result into a > 100Mb aMule.exe.
  
 
== Compilation ==
 
== Compilation ==
  
The compilation itself is actually just a matter of following the usual method: ''./configure && make''. Use your favorite flags on ./configure.
+
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''

Revision as of 15:01, 13 August 2005

Originally by Madcat

English | Deutsch

This wiki page only supports the latest CVS version of aMule.

Requirements for compiling aMule

Note: Some of these require manually moving includes and libraries into their correct directories.


Installing the Minimal System

The first step is to create a linux-like environment for the compilation. This can be done by following this 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 we 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