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

From AMule Project FAQ
Jump to: navigation, search
(Update for 2.0.0)
(Actually cleaning for 2.0.0)
Line 1: Line 1:
<center><h2>by '''Madcat'''</h2></center>
+
<center><h2> originally by '''Madcat'''</h2></center>
  
 +
This wiki page only supports the lastest CVS version of aMule.
  
 
==  List of things you need to compile [[aMule]]  ==
 
==  List of things you need to compile [[aMule]]  ==
Line 29: Line 30:
 
Generally, compile [[wxWidgets|wxMSW]] as static library. This avoids several linker issues, and provides you with static binary.
 
Generally, compile [[wxWidgets|wxMSW]] as static library. This avoids several linker issues, and provides you with static binary.
  
Link statically against ''[http://www.zlib.org zlib]'', ''[http://curl.haxx.se curl]'' and ''[[wxWidgets|wxMSW]]'' to avoid distributing extranous DLLs (and generally make life simpler). At this point, this requires manually hacking ''src/Makefile'' (after running ''configure'') and changing the necessary ''-l***'' places to paths to static libraries.
+
Link statically against ''[http://www.zlib.org zlib]'' and ''[[wxWidgets|wxMSW]]'' to avoid distributing extranous DLLs (and generally make life simpler).  
  
 
You need to modify ''wx/setup.h'' file by hand (after installing [[wxWidgets|wx]]) and change ''[http://www.wxwindows.org/manuals/2.4.2/wx53.htm wxCheckListBox]'' to ''0'' (or, alternativly, configure [[wxWidgets|wx]] with ''--without-checklistbox''). Probably there's a better way around this, but I can't think of any right now.
 
You need to modify ''wx/setup.h'' file by hand (after installing [[wxWidgets|wx]]) and change ''[http://www.wxwindows.org/manuals/2.4.2/wx53.htm wxCheckListBox]'' to ''0'' (or, alternativly, configure [[wxWidgets|wx]] with ''--without-checklistbox''). Probably there's a better way around this, but I can't think of any right now.
  
Why don't distribute a compiled version?
 
  
Oh! Please compile it - it will be so much easier....
+
== Compilation ==
  
 +
The compilation itself it's actually just a matter of following the usual compilation way: ./configure && make
 +
 +
However, zlib detection might fail. If that's the case, you need to add ''--with-zlib=/local/'' to yout configure flags.
  
 
==  Compiling with [http://www.parinya.ca/mingwstudio.html MinGW Studio]  ==
 
==  Compiling with [http://www.parinya.ca/mingwstudio.html MinGW Studio]  ==
 +
 +
NOTE: The compilation with MinGW Studio is deprecated right now and generally doesn't work ATM. Might work again in the future.
  
 
Since the 2004/07/17, you can find in [http://www.gnu.org/software/cvs CVS] the file ''amule.msp'' which is the project file relative to the [http://www.parinya.ca/mingwstudio.html MinGW Studio] IDE ([http://www.gnu.org/philosophy/free-sw.html Free] and under [http://www.gnu.org/copyleft/gpl.html GPL] at http://www.parinya.ca/ and shipped with precompiled [[wxWidgets|wxMSW]]).  
 
Since the 2004/07/17, you can find in [http://www.gnu.org/software/cvs CVS] the file ''amule.msp'' which is the project file relative to the [http://www.parinya.ca/mingwstudio.html MinGW Studio] IDE ([http://www.gnu.org/philosophy/free-sw.html Free] and under [http://www.gnu.org/copyleft/gpl.html GPL] at http://www.parinya.ca/ and shipped with precompiled [[wxWidgets|wxMSW]]).  
Line 47: Line 52:
  
 
Yes, I know, "compile" is not the same as "work" ... But it is a great begining
 
Yes, I know, "compile" is not the same as "work" ... But it is a great begining
 
==  Compiling with [http://www.gnu.org/software/make Makefile][http://www.microsoft.com/windows WIN32]  ==
 
 
With [http://www.mingw.org/msys.shtml MinSyS] and [http://www.mingw.org MinGW], you can use the shipped [http://www.gnu.org/software/make Makefile][http://www.microsoft.com/windows WIN32].
 
 
Just rename ''configWIN32.h'' to ''config.h'', edit [http://www.gnu.org/software/make Makefile][http://www.microsoft.com/windows WIN32] to give it the path of your compiler, and type ''make -f MakefileWIN32''
 

Revision as of 00:32, 28 April 2005

originally by Madcat

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

List of things you need to compile aMule

Note: Some of these require manually moving includes/libs into the right directories.

Windows port of GNU C compiler -> Download

Minimal GNU shell for Windows -> Download

Developer toolkit for MSys (for CVS & co) -> Download

LibIConv (required by gettext) -> Download

GetText (for po files, autogen.sh, etc) -> Download

zlib compression library -> Download

Windows port of wxWidgets library -> Download


Common guidelines, issues, solutions

Generally, compile wxMSW as static library. This avoids several linker issues, and provides you with static binary.

Link statically against zlib and wxMSW to avoid distributing extranous DLLs (and generally make life simpler).

You need to modify wx/setup.h file by hand (after installing wx) and change wxCheckListBox to 0 (or, alternativly, configure wx with --without-checklistbox). Probably there's a better way around this, but I can't think of any right now.


Compilation

The compilation itself it's actually just a matter of following the usual compilation way: ./configure && make

However, zlib detection might fail. If that's the case, you need to add --with-zlib=/local/ to yout configure flags.

Compiling with MinGW Studio

NOTE: The compilation with MinGW Studio is deprecated right now and generally doesn't work ATM. Might work again in the future.

Since the 2004/07/17, you can find in CVS the file amule.msp which is the project file relative to the MinGW Studio IDE (Free and under GPL at http://www.parinya.ca/ and shipped with precompiled wxMSW).

Install MinGW Studio, add Zlib and Curl compiled libs in The MinGW Studio tree.

Then, open amule.msp with MinGW Studio, press F7, and aMule "should" be compiled :)

Yes, I know, "compile" is not the same as "work" ... But it is a great begining