首先必须使用GNU make来编译mozilla的代码,其他make程序可能会有问题。编译最简单的方法就是
make -f client.mk
编译完成之后你可以直接运行编译后的结果,而不用打包。方法是从${objbuild}/dist/bin中运行./mozilla或者./firefox,或者可能只有xulrunner。这取决于代码的编译方式。${objbuild}是指定的mozilla编译目录。对于从mozilla trunk代码(firefox 3)编译的,可以直接在${objbuild}下运行
make package
来打包编译结果。然后再来看看具体的过程:下载代码可以通过apt-get方法下载ubuntu源中的最新代码。首先值得一提的是,不管你要编译那种工程(browser, mail, xulrunner, suite等),基本方法都是一样的。mozilla的大部分基础代码对于所有的编译是一样的,所以不管checkout那种工程,其目录结构和代码很大程度是一样的。以browser(其实就是firefox)方法是:第一步,checkout文件client.mk,这对所有工程都是一样的。
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk
然后,checkout如下文件,此文件包含编译firefox的一般配置项目。
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/config/mozconfig
接下来就可以checkout整个工程相关的源码树。
$ cd mozilla$ make -f client.mk checkout MOZ_CO_PROJECT=browser
MOZ_CO_PROJECT是一个用来告诉make如何下载工程代码的变量,你也可以在自定义的.mozconfig配置文件中设置,这样就不用在命令行指定了。最后是编写.mozconfig文件(例):
. $topsrcdir/browser/config/mozconfigmk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-staticac_add_options --enable-optimizeac_add_options --disable-debugac_add_options --enable-staticac_add_options --disable-sharedac_add_options --disable-libxulac_add_options --disable-tests
下面对上面的.mozconfig文件作详细的说明:
.mozconfig包含两种类型的配置信息:
以mk_add_options开头的选项是传递给client.mk的参数。通常都是用来控制cvs checkout和update的。上例中指定了编译的根目录的路径。
以ac_add_options开头的选项是传递给configure的参数,用来控制编译过程的选项。你可以试着在mozilla目录中输入./configure --help来大概了解有些什么可用的选项。这些选项可能会有一些互斥的情况,即不能同时出现,或者在某种情况下必须出现等。比如上例子中–enable-static和–disable-shared就必须同时出现。具体可以参考mozilla上的相关文章。
配置完成后,可以简单的运行:
make -f client.mk build
来构建应用程序。