mozilla的构建过程非常复杂——和几乎所有复杂软件一样复杂。
目前最好的文档仍然是MDC上有关Build的页面,不过可惜全是E文的,会有些人看得慢。
*MSYS
windows版的火狐编译更是比其它unix麻烦,虽然区区有完全安装的cygwin,可是火狐要求用MSYS,不过这也是正确的,因为cygwin过于庞大,版本问题比较多。
*MozillaBuild 1.2
还好,MDC上提供的mozillabuild系统基本上可以解决第三方软件的依赖了,记得一定要先安装MozillaBuild!
接下来是编译器和windows平台sdk。
*VC9编译器和2008平台SDK
也许不少开源fans会想用mingw吧,其实区区也想,但是MozillaBuild根目录上的.bat文件全是msvc相关的,
让区区觉得用mingw可能会更麻烦。Build文档说最新的gecko1.9要求装有Vista SDK,但是区区最终在微软
的官方网站上只下载到了windows 2008 SDK。这个SDK安装文件很大,还包含.net和vc9。
mozilla的编译肯定不需要.net和各种平台文档及samples,这些可以不安装,建议只安装SDK头文件和库文件,再加上vc9就可以了。
*VC及MozillaBuild环境设置
不知道如果用vista sdk的话,MozillaBuild的guess-msvc.bat会不会报错,可是用2008sdk会说找不到sdk,所以要改动一下:将guess-msvc.bat文件中的两个'Windows/v6.0/WinSDKBuild'替换成'Windows/v6.1/WinSDKBuild',这样guess-msvc就能正常工作了。
接下来是start-msvc9.bat,同样会报错说‘此时不应出现frameworkxxxx’,这是因为我没安装多余.net吧,修正方法是要改文件'"%VC9DIR%/Bin/vcvars32.bat"',因为它被start-msvc9.bat调用时出错了。VC9DIR在我的机子上就是c:/Program Files/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat,此文件中一开始定义了两个变量:
@SET FrameworkDir=Framework32
@SET FrameworkVersion=v2.0.50727
后面则有所引用:
@set PATH=...
@set INCLUDE=..
@set LIB=...
@set LIBPATH=...
应用emacs(当然,vim也行)把引用这两个变量的目录删掉即可。
*‘.mozconfig’的设定
如果你会用unix或者说msys,用cd yourmozillasourcedir,切换到火狐的编译目录,再用
make -f client.mk build就可以开始一次失败的构建了。。
因为你没有编写'.mozconfig',configure系统是无法工作的,那好吧,最后一步了,在mozilla源码根目录(与client.mk同一目录)编写'.mozconfig'文件,内容如下:
mk_add_options MOZ_BUILD_PROJECTS=browser
mk_add_options MOZ_OBJDIR=build_obj
ac_add_options --disable-xpconnect-idispatch
ac_add_options --disable-activex
ac_add_options --disable-activex-scripting
ac_add_options --disable-accessibility
其中第二段的加入是因为2008 sdk不包含ATL库,但这对于我们不太重要,所以根据文件http://developer.mozilla.org/en/docs/atlbase.h的精神,我加入了四个disable。
最后,终于可以可用.....先把config.cache删掉再说...
在由start-msvc9.bat启动的msys中切换到mozilla目录再输入:
make -f client.mk build就可以开始一次也许会成功的构建了(因为区区正在编译,还没出错,可也还没完成)。。
简单吧,那区区先睡了。
后补充说明:大约过了几个小时后,编译成功了,呵呵。。
目前最好的文档仍然是MDC上有关Build的页面,不过可惜全是E文的,会有些人看得慢。
*MSYS
windows版的火狐编译更是比其它unix麻烦,虽然区区有完全安装的cygwin,可是火狐要求用MSYS,不过这也是正确的,因为cygwin过于庞大,版本问题比较多。
*MozillaBuild 1.2
还好,MDC上提供的mozillabuild系统基本上可以解决第三方软件的依赖了,记得一定要先安装MozillaBuild!
接下来是编译器和windows平台sdk。
*VC9编译器和2008平台SDK
也许不少开源fans会想用mingw吧,其实区区也想,但是MozillaBuild根目录上的.bat文件全是msvc相关的,
让区区觉得用mingw可能会更麻烦。Build文档说最新的gecko1.9要求装有Vista SDK,但是区区最终在微软
的官方网站上只下载到了windows 2008 SDK。这个SDK安装文件很大,还包含.net和vc9。
mozilla的编译肯定不需要.net和各种平台文档及samples,这些可以不安装,建议只安装SDK头文件和库文件,再加上vc9就可以了。
*VC及MozillaBuild环境设置
不知道如果用vista sdk的话,MozillaBuild的guess-msvc.bat会不会报错,可是用2008sdk会说找不到sdk,所以要改动一下:将guess-msvc.bat文件中的两个'Windows/v6.0/WinSDKBuild'替换成'Windows/v6.1/WinSDKBuild',这样guess-msvc就能正常工作了。
接下来是start-msvc9.bat,同样会报错说‘此时不应出现frameworkxxxx’,这是因为我没安装多余.net吧,修正方法是要改文件'"%VC9DIR%/Bin/vcvars32.bat"',因为它被start-msvc9.bat调用时出错了。VC9DIR在我的机子上就是c:/Program Files/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat,此文件中一开始定义了两个变量:
@SET FrameworkDir=Framework32
@SET FrameworkVersion=v2.0.50727
后面则有所引用:
@set PATH=...
@set INCLUDE=..
@set LIB=...
@set LIBPATH=...
应用emacs(当然,vim也行)把引用这两个变量的目录删掉即可。
*‘.mozconfig’的设定
如果你会用unix或者说msys,用cd yourmozillasourcedir,切换到火狐的编译目录,再用
make -f client.mk build就可以开始一次失败的构建了。。
因为你没有编写'.mozconfig',configure系统是无法工作的,那好吧,最后一步了,在mozilla源码根目录(与client.mk同一目录)编写'.mozconfig'文件,内容如下:
mk_add_options MOZ_BUILD_PROJECTS=browser
mk_add_options MOZ_OBJDIR=build_obj
ac_add_options --disable-xpconnect-idispatch
ac_add_options --disable-activex
ac_add_options --disable-activex-scripting
ac_add_options --disable-accessibility
其中第二段的加入是因为2008 sdk不包含ATL库,但这对于我们不太重要,所以根据文件http://developer.mozilla.org/en/docs/atlbase.h的精神,我加入了四个disable。
最后,终于可以可用.....先把config.cache删掉再说...
在由start-msvc9.bat启动的msys中切换到mozilla目录再输入:
make -f client.mk build就可以开始一次也许会成功的构建了(因为区区正在编译,还没出错,可也还没完成)。。
简单吧,那区区先睡了。
后补充说明:大约过了几个小时后,编译成功了,呵呵。。