您的位置:首页 > 其它

自己动手编译firefox,thunderbird 方法补充

2008-08-18 22:09 330 查看
自己动手编译firefox,thunderbird 方法补充

去年,我在博文《自己动手编译Mozilla Firefox和Thunderbird》介绍了mozilla旗下的两款开源软件firefox和thunderbird在Windows平台上的编译方法,不过从去年年底开始,mozilla为了简化编译方法,将所有编译firefox和thunderbird的工具集成为一个统一的工具mozilla-build,并用MingW32代替了Cygwin,这样一来,编译firefox和thunderbird就简单多了,不过在编译过程中还是有一些意外情况需要处理,本为就简单介绍一下新的编译方法。我使用的的mozilla-build版本是1.2,编译器用的是Visual Studio 2005(Visual C++ 8.0),firefox 的源代码版本是3.0.1,thunderbird的源代码版本是2.0.0.16,使用Visual Studio 2008会有一些不同,后面也会提到。

先看看firefox的编译,首先是安装mozilla-build,安装没有什么选项,只要选定安装路径就行了,mozilla网站上强烈建议安装到默认的位置,也就是 “C:/mozilla-build”,建议用户也安装到“C:/mozilla-build”。然后是准备源代码,可以从mozilla网站下载已经固化版本的源代码包,也可以用mozilla推荐的源代码管理工具Mercurial从服务器上得到实时的源代码,本为使用的是已经固化版本的源代码包。以firefox为例,将源代码解开到 “C:/mozilla”,这也是mozilla建议的。源代码解开后从C:/mozilla/browser/config目录下拷贝 .mozconfig文件到C:/mozilla目录下,这个文件的内容如下:

# This file specifies the build flags for firefox. You can use it by adding:
. $topsrcdir/mail/config/mozconfig
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser

现在用编辑软件修改这个文件,并添加一些选项,修改后内容如下:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-Release
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-extensions="default inspector"
ac_add_options --enable-inspector-apis
ac_add_options --disable-installer
ac_add_options --disable-debug
ac_add_options --enable-application=browser
ac_add_options --disable-static --enable-shared
ac_add_options --disable-tests
ac_add_options --disable-mochitest
ac_add_options --disable-vista-sdk-requirements
ac_add_options --enable-optimize=-O2 -G7 -arch:SSE2
#ac_add_options --enable-optimize

现在解释一下,使用MOZ_OBJDIR选项指定编译结果放置位置,以本例的设置,最终编译的结果放在 “C:/mozilla/firefox-Release/dist/bin”目录中。如果编译firefox的目的是为了使用,那么建议使用“--disable-debug”选项,并打开优化选项“--enable-optimize”(使用默认优化方式)或“--enable-optimize=-O2”(指定具体的优化方式)。同样也要将测试选项禁止掉,也就是“--disable-tests”和“--disable-mochitest”。使用“--disable-installer”选项禁止安装组建,可以节省一些编译时间。Vista推出以后,mozilla增加了一个编译选项,就是是否使用Vista新的特性,这需要安装For Vista的Windows Platform SDK,如果没有安装这个SDK,就需要添加“--disable-vista-sdk-requirements”选项禁止使用Vista新特性,这样不安装For Vista的Windows Platform SDK也可以编译firefox。为了进一步提高编译后firefox的性能,还可以启用针对CPU指令集的优化选项,现在主流的CPU都支持SSE2指令集,所以可以启用这个优化选项:“--enable-optimize=-O2 -G7 -arch:SSE2”。

需要提一点,在windows下直接新建.mozconfig文件是不允许的,但是可以在已经创建的.mozconfig文件上进行修改,这也就是为什么需要从C:/mozilla/browser/config目录下拷贝 .mozconfig文件的原因。另外,如果使用Visual Studio 2005还要修改VC平台目录中的wabTags.h文件,可能是unicode的问题,有一些代码被编译器误认为是注释代代码,用一个支持unicode的编译器修改一下wabTags.h文件就行了。也可以从我的资源中下载修改好的wabTags.h文件。

准备工作完成后就可以编译了,首先进入“C:/mozilla-build”目录启动相应的批处理文件,这些批处理文件会准备编译环境,对于Visual Studio 2005,需要启动“start-msvc8.bat”,如果是使用Visual Studio 2008,则要启动“start-msvc9.bat”。启动后在shell中执行“cd /c/mozilla”切换到mozilla代码目录,然后执行“make -f client.mk build”开始编译,等待40分钟左右就可以得到结果了。

现在看看thunderbird的编译,mozilla-build的安装前面已经介绍过,此处不再废话,thunderbird的源代码也解开到 “C:/mozilla”,如果此前编译过firefox,请将firefox文件清除。首先是从C:/mozilla/mail/config目录下拷贝 .mozconfig文件到C:/mozilla目录下,然后修改为以下内容:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/tbird-Release
mk_add_options MOZ_CO_PROJECT=mail
#ac_add_options --enable-extensions="default inspector"
#ac_add_options --enable-inspector-apis
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --enable-optimize=-O2 -G7 -arch:SSE2
ac_add_options --disable-static --enable-shared
ac_add_options --disable-tests
ac_add_options --disable-installer
ac_add_options --disable-mochitest
ac_add_options --disable-vista-sdk-requirements

各个选项的意义前面已经介绍过,此处也不多废话。如果使用Visual Studio 2005,修改wabTags.h文件的问题前面也介绍过了,不过还有一个文件需要修改,那就是WabDefs.h文件,编译过程中会出现一个编译错误,主要是WCHAR类型定义与winnt.h中的定义重复且原型不同,从MSDN上也看到了这个问题的描述,不过修改WabDefs.h文件可以解决这个问题,于是从Visual Studio 2008中找到这个文件,照葫芦画瓢修改了Visual Studio 2005的WabDefs.h文件文件,主要是关于WCHAR部分的定义,不想费事的可以从我的资源中下载修改好的WabDefs.h文件。还需要准备的工作是在“C:/mozilla/tbird-Release/dist/bin”目录下新建一个名为“xpt_link.exe.manifest”的manifest文件(编译之前这个目录还不存在,需要手工创建),内容如下:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>

如果使用的编译器是Visual Studio 2008,则要相应修改name和version两个属性为:name='Microsoft.VC90.CRT' version='9.0.210228.8'

准备工作完成后就可以编译了,首先进入“C:/mozilla-build”目录启动相应的批处理文件,这些批处理文件会准备编译环境,对于Visual Studio 2005,需要启动“start-msvc8.bat”,如果是使用Visual Studio 2008,则要启动“start-msvc9.bat”。启动后在shell中执行“cd /c/mozilla”切换到mozilla代码目录,然后执行“make -f client.mk build”开始编译,等待40分钟左右就可以得到结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: