编译开源软件之4----Mozilla-Firefox-4.0-beta1

编译环境:Windows7 32bit + VS2008-Express-Edition

参考文章:

 《Simple Firefox build》

《编译 Firefox 其实很简单》

提醒:如果你想根据这篇文章来编译firefox的话,请先全文浏览一遍再开始动手,你可能会有不一样的收获。

编译过程:

1. 下载firefox源代码,从ftp://ftp.mozilla.org/pub/firefox/releases/ 找到你需要的版本,我下载的是最新的4.0beta1

2. 下载安装vs2008 ,我因为比较穷,所以用的是express版本,可以免费使用的。地址在微软网站上,不太好找,但Google可以帮你解决这个问题。安装的话你需要至少安装里面的VC++,因为firefox就是C++写的。

3. 下载安装Mozilla的编译工具MozillaBuild ,这是mozilla公司产品使用的统一的编译工具,是在mingw上开发的。

4. 配置编译参数

  • 首先找个工作目录,我的工作目录在D:/Projects/openprojects/firefox/
  • 将firefox源代码解压到该目录,会解压出一个叫做mozilla-center的目录。这个目录的名字是各个版本有所不同的,比如3.5里面叫做firefox-1.9.1。
  • 在源代码根目录下建立mozconfig文件,详细的参数配置说明请参考https://developer.mozilla.org/en/Configuring_Build_Options ,以下是我的配置:
    mk_add_options MOZ_CO_PROJECT=browser
    mk_add_options MOZ_MAKE_FLAGS="-j5"
    mk_add_options MOZ_CO_MODULE="mozilla/tools/update-packaging"
    mk_add_options MOZ_PACKAGE_NSIS=1
    ac_add_options --enable-application=browser
    ac_add_options --enable-update-channel=nightly
    ac_add_options --enable-optimize
    ac_add_options --disable-debug
    ac_add_options --disable-tests
    ac_add_options --enable-update-packaging
    ac_add_options --disable-accessibility #for no ATL
    
  • 注意一下最后一条,是解决没有ATL库的问题的,这是微软的动态模板库,只有在vs professional和vs 2003里才有,2003在win7里装不了,其实可以装个vs 2008 professional的90天试用版,但我一开始并不知道这个问题,是在编译出错的时候才找到这个原因,我就懒了,加入这个参数可以跳过这个库。不知道会出现什么问题,出现了再说吧。

5. 开始编译

  • 启动MozillaBuild,双击mozillabuild安装目录里的start-msvcX.bat,X是vs的版本号,我用的是2008,也就是start-msvc9.bat。如果你是64位系统,要选择start-msvc9-x64.bat。
  • 在命令行里进入firefox源代码目录,cd /d/Projects/openprojects/firefox,mingw里的盘符是/x,不是x:,注意一下。
  • 执行编译命令:
    make -f client.mk
  • 我的第二篇参考文章里使用的编译命令多了build参数,就是"make -f client.mk build",我试过,编译到一半停住了。最后我看到第一篇参考文章,发现是没有build参数的,猜测可能是因为第二篇文章比较旧,新的编译命令改了吧。

6. 启动新的firefox

  • 编译了多久,我不知道,因为我去买菜了,回来就好了。
  • 编译的结果会放在源代码目录下的dist/bin目录里,找到里面的地雷firefox.exe,注意,请关闭你现在的firefox,再启动。否则启动的只是当前版本的一个新的窗口。这是因为firefox在启动的时候会做检测和处理,只会同时有一个firefox的进程。

看一下我的第一张截图

可以看到,这里的窗口和工具栏右边是有问题的,开始还以为是缺少ATL的缘故,后来我想了一下,不是。是我之前使用的vFox主题和新版本不兼容造成的,于是切换回默认主题就好了。

再看正常之后的截图

哈哈,很PP吧,我之前的3.6的外观其实已经被我改造成类似的样子了,现在默认是这个样子了,very good。

看一下Acid3的测试吧,97/100,比之前的93/100(记得好像是这个分)好了一点点。当然这个测试只能做个参考,分高和分第也说明不了太多问题。对于浏览器的选择,还是自己多尝试,自己感觉那个好就用那个,至于什么鬼测试可以不用理会的。

本人新博客:tuoxie.me

猜你喜欢

转载自tuoxie007.iteye.com/blog/720651