编译aMule 2.2 SVN Universal Binary

下载:http://www.mediafire.com/?cm1qdtyz0d4鉴于aMule 1.3在Leopard下无法正常工作以及作者长期不更新,因此迫切需要从cvs编译一个能在Leopard下正常工作的aMule。之前已经成功编译了intel构架上的版本,但是由于系统里某些旧的lib不是Universal Binary,因此编译不成功。这几天看了jjgod大仙blog上的一些文章,终于成功编译了UB版本的aMule cvs,这里与大家分享。本文内容基于Mac OS X 10.5.2 Intel构架。

首先还是推荐先去看wiki上的文章 http://www.amule.org/wiki/index.php/HowTo_compile_on_Mac (以下简称原文),但是这个文章很久都没有更新了,所以照做肯定没戏,不过借此可以了解其依赖关系等基本信息。

第一步,安装Xcode 3.0,这个在Leopard光盘里面有,也可以从Apple Developer Connection下载安装;

第二步,安装Macports 1.6 for Leopard,安装方法和shell变量设置参见官方guide。其实原文中提到的automake、flex等几个工具都可以直接从tarball编译,但是由于依赖关系比较复杂,所以还是推荐从Macports安装。需要注意的是其中某些lib会在编译过程中进行连接,所以必须编译成为UB代码,这一点只需要在安装时加参数+universal,比如sudo port -v install automake +universal,但不能写成sudo port -v install gettext automake +universal,这样写gettext依然只有i386 arch的代码。按这个方法用macports安装automake, flex, gettext, libpng即可。
ps:原文中说macports中crypto++很古旧,其实已经更新到5.5.2了,呵呵。

第三步,编译安装crypto++。这个东西非常烦人,困惑了很久,等下具体说。下载crypto 5.5.2源代码(官网好像被墙了?从sourceforge上下吧)。crypto++没有configure文件,需要修改GNUmakefile。在第一行CXXFLAGS中增加参数-arch i386 -arch ppc,即改为CXXFLAGS = -DNDEBUG -g -O2 -arch i386 -arch ppc,然后make -f GNUmakefile进行编译(貌似不使用参数f连接时会出现找不到lcryptopp的情况)。接下来sudo make install PREFIX=/usr/local/cryptopp进行安装(这个地方我做了一件比较笨的事情,不单安装在了/usr/local/cryptopp,而且在/usr和SDK的/Developer/SDKs/MacOSX10.5.sdk/usr下面各装了一次,所以最后自己也搞不清楚连接时究竟用了哪一个,也没找到哪里有编译log,还望高手赐教)。

第四步,编译wxMac。首先去官网下载wxMac-2.8.7源代码,解压后在终端执行:
cd wxMac-2.8.7/build
../configure –disable-shared –enable-unicode –enable-debug –enable-debug_gdb –enable-universal_binary
这一步完全按照原文进行。编译完成后不需要install,但是要把amule-cvs目录和wxMac-2.8.7目录放在同一个目录下面。

第五步,编译aMule。在终端执行:
cd amule-cvs
./configure –disable-systray –disable-gtk –enable-embedded_crypto
–with-wx-config=../wxMac-2.8.7/build/wx-config
–enable-cas –enable-webserver –enable-amulecmd
–enable-debug –disable-optimize –with-crypto-prefix=/usr/local/cryptopp

–disable-dependency-tracking
CFLAGS=”-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk”
CXXFLAGS=”-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk”
make
如果没什么问题,编译通过之后就基本成功了。

第六步,打包app。在终端中执行./src/utils/scripts/mac_packager,结束后在amule-cvs中应该可以看到最终完成的bundle了,静态链接的程序大概有65MB。。。。

呵呵,本人并非专业人士,缺乏理论素养,花了很长时间才完成。希望大家能指正本文中的错误,本人感激不尽。最后谢谢jjgod大仙,呵呵,也推荐大家去看看jjgod的blog,真的受益非浅。

y2pBuTnVs_xuy24wUnJqOf8-IJTYyXE31uxFz1TJUNdQ4Wq26KMywZc7-nQJRm2edgv8L-RA4VOQF_MqUnsyMw5ww y2prMqsoGEOLhUyLHj-zFCTQT7gKtu8FtrHlAtrYeticuUEz-wItXKjg3z0DzrKlVsA37loZEMtcVyBN8lDnF0qOQ

Author: armadillo

傻傻的笨蛋,什么都不懂的Small Kids,总是在幻想,轻轻地走来,静静地站在那里,默默地看着一切,细细地思考,然后悄悄地离开……永远都不愿意留在这里……You mustn't allow yourself to be chained to fate, to be ruled by your genes. Human beings can choose the kind of life that they want to live. What's important is that you choose life... and then live.

2 thoughts on “编译aMule 2.2 SVN Universal Binary”

  1. 那个 crypto++,用的是usr/local下面的,其实完全可以–disable-embedded_crypto就把它废掉⋯⋯

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.