现在的位置: 首页 > 综合 > 正文

如何编译火狐浏览器的源代码

2013年08月18日 ⁄ 综合 ⁄ 共 4946字 ⁄ 字号 评论关闭

以下摘录于:
http://zhidao.baidu.com/question/33214960.html

源代码编译安装Firefox(linux下)http://forums.mozine.cn/index.php?showtopic=601

Windows下如何编译Mozilla源代码http://www.firefox.net.cn/newforum/viewtopic.php?p=12810

如何在window环境下编译mozilla/firefox
zz from lotusroots.bokee.com

mozilla/firefox这个浏览器(现在的最高版本是firefox 2.0 rc3,稳定版本是firefox1.5.0.7)已经很有名气了,这次,我因为需要使用里面的某些部分,不得不从源代码开始编译它。当然了,自己不太可能使用linux来编译,所以我使用的环境是win2003系统。
1,首先到网上找信息,发现编译它并不是那么容易的事情,许多人都出现了许多问题。值得一看得有如下几个网页:官方关于编译的页面:http://developer.mozilla.org/en/docs/Build_Documentation;使用vs2005编译mozilla(firefox)的页面:http://cs.senecac.on.ca/~david.humphrey/writing/firefox-win32-build.html;更清楚的讲解vs2005编译的页面:http://zenit.senecac.on.ca/wiki/index.php/Assignment_1_(pstdenis);
2,准备编译工具。要准备的工具实在是很多哦,包括:vs2005、cygwin、nsis、moztools共4项。第一项好说,去任何一个站点下载免费版的vs2005,第二项的下载地址为:http://www.cygwin.com/,第三项需要到如下地址去下载:http://nsis.sourceforge.net/Download,第四项的下载地址为:http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip
3,安装编译工具。vs2005的安装(主要安装的是vc++)没有什么可说的,唯一的一点就是:为了以后配置的方便,推荐使用默认目录安装。nsis的安装也容易,注意使用full安装选项,不要漏掉什么东西了。moztools只是一个压缩包,解压缩后放到一个目录就行了。cygwin的安装是一个比较麻烦的事情,因为你下载的只是一个客户端,你需要运行它,然后在线升级(安装)你需要的功能,一定要选择一个快速的服务器(如果你的网络很慢的话,我建议你就不要编译mozilla了)。安装的时候,你需要选择如下几个包:
* ash
* diffutils
* fileutils
* findutils
* gawk
* grep
* sed
* sh-utils
* textutils
这几个都是默认安装的。你还需要额外的安装如下几个包:
* coreutils
* cvs
* cygutils
* libiconv
* make
* patch
* patchutils
* perl
* unzip
* zip
版本随便都可以。当然了,这个只是奢望,目前的mozilla的源代码仅仅支持3.80版本的make程序,而现在从cygwin里面是无法安装上make 3.80版本的,因为最低都是3.81版本。所以,你还需要到下面去下载一个make 3.80版本回来:http://ftp.gnu.org/pub/gnu/make/,然后把那个里面的bin/make.exe拷贝到cygwin目录下的bin/make.exe位置,覆盖原来的那个make.exe即可。
4,配置。总共有2个部分需要配置,一个是各种工具的路径,一个是编译必需的mozconfig文件。为了开始配置,我们需要设定一个目录,用来保存 mozilla的源文件。推荐的方式是这样的:a) 建立目录:c:/proj;b) 建立目录:c:/proj/mozilla;c)把moztools工具保存到c:/proj/moztools下;d) 把cygwin安装到c:/proj/cygwin目录下。当然,这不是必需的。于是,第一部分配置可以使用如下的一个配置文件实现:
@echo off

rem --- CVS Setup
SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
SET CVS_RSH=ssh

rem --- paths of moztools
set MOZ_TOOLS=c:/proj/moztools
set GLIB_PREFIX=%MOZ_TOOLS%
set LIBIDL_PREFIX=%MOZ_TOOLS%

rem --- path of window
SET INCLUDE=
SET LIB=
SET PATH=c:/;c:/windows/system32;c:/windows/system32/wbem

rem --- path of cygwin
SET PATH=c:/proj/cygwin/bin;%PATH%

rem --- path of vc8(vs 2005)
CALL "c:/Program Files/Microsoft Visual Studio 8/VC/vcvarsall.bat" x86

rem --- path of moztools/glib and /libidl
SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%/bin
SET INCLUDE=%GLIB_PREFIX%/include;%INCLUDE%
SET LIB=%GLIB_PREFIX%/lib;%LIB%

rem --- moztools comes last after glib/libIDL
SET PATH=%PATH%;%MOZ_TOOLS%/bin

rem --- path of NSIS
SET NSIS=c:/NSIS
SET PATH=%PATH%;%NSIS%
把这些文本保存为一个bat文件,比如:buildsetup.bat,推荐保存到c:/proj目录下。
第二部分的处理有点特点,现在我们需要建立一个如下内容的名字叫做:“.mozconfig”的文件,不要试图直接建立这个文件,因为window会告诉你说必须键入文件名!你使用记事本,输入如下内容,然后保存为“.mozconfig”即可:
# Building Firefox Trunk with Debugging
. $topsrcdir/browser/config/mozconfig

# Put all obj files in one place, not in src tree
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-objdir
ac_add_options --disable-static
ac_add_options --enable-shared

# Debug Build Setup Options
ac_add_options --disable-optimize
ac_add_options --enable-debug

# I'm using Canvas for my work
ac_add_options --enable-canvas

# I disabled the installer
ac_add_options --disable-installer
这个文件必须保存到刚才建好的c:/proj/mozilla目录下。
5,开始下载源文件。你可以不下载源文件,你可以到ftp.mozilla.org去下载最新的代码,然后保存到mozilla,再进行第6步操作。但是,需要提醒你的是:我下载了4份源代码(seamonkey,mozilla,firefox),却没有一个能够编译的,不是说少了文件就是说哪个代码编译错误。反正我建议你是用下面的这种直接通过cvs到mozilla上下载源代码的办法(因为它没有压缩,所以,这些代码的大小在240M左右,压缩后的代码一般在30M左右)。
a)首先进入c:/proj目录,并执行buildsetup.bat,下面是屏幕的操作过程:
C:/Documents and Settings/Administrator>C:
C:/>cd proj
C:/proj>buildsetup.bat
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:/proj>
b)然后下载cvs的配置文件,下面是屏幕显示:
C:/proj>cvs login
Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot
CVS password:
C:/proj>cvs co mozilla/browser/config mozilla/client.mk
cvs checkout: Updating mozilla/browser/config
C:/proj>
这里,注意输入的password为:anonymous。
c)接着进入mozilla目录,然后就开始了漫长的源文件下载了,一个字:等待:

C:/proj/mozilla>make -f client.mk checkout
6,一切准备妥当了,现在该开始编译程序了:
c:/proj/mozilla>make -f client.mk build

其他说明:
1,下载的源文件大概有240M,所以,下载是一个漫长的过程,我用了30多分钟;
2, 编译是一个更加漫长的过程,我使用了3个小时才搞定,我的配置是:1.8G + 512M;
3,因为我们在“.mozconfig”文件里面使用了debug模式,编译出来的是一个debug模式下的名字叫做firefox.exe 的文件,如果你是用它进行网络连接的话,你会发现常常跳出错误窗口,这个是用来测试的(你需要每次点忽略才能继续执行)。会十分的麻烦的,所以,你可以把 “ac_add_options --enable-debug”这一行去掉,免得麻烦。换上:“ac_add_options --disable-debug”,记住,这样处理后能够加快编译的速度!加快速度的另外一个办法是加上:“ac_add_options --disable-tests”,这样就不会生成许多测试程序了。推荐的,编译firefox时,最好的“.mozconfig”是这样的:
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-static
ac_add_options --enable-shared
ac_add_options --disable-tests
mk_add_options MOZ_CO_PROJECT=browser
4, 编译好了的文件在c:/proj/mozilla/firefox-objdir/dist/bin 目录下(如果你使用的是非debug的模式,那么,文件在目录c:/proj/mozilla/ff-opt-static/dist/bin下),名字叫:firefox.exe,可是,当你执行它了之后,你到帮助下面查看它的版本,会发现它叫:MineField 3.0a1(以前不是着名字)的。赫赫。
5, 如果你想编译成一个安装的版本,你可以删除:“ac_add_options --disable-installer”。其他更多的编译选项可以参考:http: //developer.mozilla.org/en/docs/Configuring_Build_Options。

抱歉!评论已关闭.