一 Mozilla Build Tools
Mozilla 开源组织拥有很多伟大的跨平台产品,例如,Firefox, Thunderbird, Mozilla Suite / SeaMonkey, XULRunner, Sunbird, standalone Composer, standalone XPCOM, and standalone XPConnect。其中大部分的都是使用Mozilla build system来完成build的。
Mozilla build system是基于GNU Make 和 autoconf的。
在Mozilla,make用来编译libraries和executables,为chrome创建jar文件,和拷贝文件。
对于每个目录的make分为两个阶段:
* export:拷贝公共的头文件到dist/include,和从IDL文件产生C++头文件;
* libs:编译libraries,创建jar文件,和从IDL创建typelib文件;
将make分为两个阶段从而解决了modules间的循环引用的问题。
除了make,另一个非常重要的工具就是configure脚本,他在build的第一步运行。configure脚本决定了系统,编译器,和处理器的选项。configure包含以下重要的2步:
* 从config/autoconf.mk.in产生autoconf.mk,此文件包含了控制全局build选项的变量;
* 从Makefile.in产生的Makefiles文件,Makefile.in中的源代码路径被替换为真实的路