游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2977|回复: 3

Mozilla XULRunner 的编译。

[复制链接]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-1 16:03:00 | 显示全部楼层 |阅读模式
Mozilla XULRunner 的编译。

Mozilla里有很多好东西。 比如那个js引擎和嵌入式渲染引擎。
这段时间在想如果能在游戏里嵌入一个浏览器该多好啊。这个想法用mozilla的渲染引擎来实现在再好不过的了。
Mozilla的渲染引擎叫xulrunner。它和firefox 用的是同一个代码树,也就是说在编译的时候指定不同的选项就可以编译出xulrunner和firefox。
Xulrunner以前叫gecko。这个东西在官方可以下到sdk。不过sdk里少头文件。只有可执行的dll。没办法只能自己编译了。在linux 编译是非常简单的事情./configure & make & make install 基本上就OK了。在 windows下就比较麻烦。现在我来分享一下我编译xulrunner的体会。
第一步:下载
    下载可以选择下载任何一个完整的mozilla代码包。我下的firefox2的。下下来后解包到一个目录里。这个目录最好不要包含空格等非字母字符。我放到了 C:\mozilla 。 反正编译后就删除了。无所谓的。

第二步:了解编译策略
     进入mozilla的代码目录后,你会发现有一个client.mk和一个configure。在linux下运行./configure 会生成一个makefile。这个是很经典的做法。给configure脚本指定参数可以指定编译出什么产品。比如是xulrunner还是firefox等。但是mozilla 不推荐自己用./configure。而是使用.mozconfig文件。注意这个文件前面有个点。需要在windows的命令行 中才可以创建出前面带点的文件。直接按f2重命名是不行的:-(。在这个文件里,我们可以指定要编译出什么东西和编译的选项已经输出的目录,因为我们要编译的是xulrunner。所以我的.mozconfig是这么写的:
        mk_add_options MOZ_CO_PROJECT=xulrunner
        ac_add_options --enable-application=xulrunner
        mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-opt-xulrunner-small
        ac_add_options --enable-optimize
        ac_add_options --disable-debug
        ac_add_options --disable-static
        ac_add_options --enable-shared
        ac_add_options --disable-ldap
        ac_add_options --disable-mailnews
        ac_add_options --enable-extensions=default
        ac_add_options --enable-crypto
        ac_add_options --disable-composer
        ac_add_options --enable-single-profile
        ac_add_options --disable-profilesharing
        ac_add_options --disable-profilelocking
        ac_add_options --disable-accessibility
        ac_add_options --enable-jsd
        ac_add_options --disable-installer
        ac_add_options --enable-xpinstall
        ac_add_options --disable-postscript
        ac_add_options --disable-mathml
        ac_add_options --enable-xpfe-components
        ac_add_options --disable-dtd-debug
        ac_add_options --disable-logging
        ac_add_options --disable-tests
        ac_add_options --enable-necko-protocols=http,file,about,res,jar,data
        ac_add_options --enable-image-decoders=png,gif,jpeg
        ac_add_options --enable-svg
        ac_add_options --enable-svg-renderer=gdiplus
        ac_add_options --disable-javaxpcom
        ac_add_options --disable-activex
        ac_add_options --disable-activex-scripting
        ac_add_options ?enable-canvas
        
其中mk_add_options MOZ_CO_PROJECT=xulrunner 和ac_add_options --enable-application=xulrunner 指定编译xulrunner,如果改成firefox、就可以编译出firefox。具体可以 参见mozilla的build指南。
下面的mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-opt-xulrunner-small 指定输出路径。
而这两条
        ac_add_options --enable-optimize
        ac_add_options --disable-debug
是说要编译release版本。打开优化,如果你想编译debug版本可以改改这两条.
OK.  到目前为止,Mozilla的代码是配置好了。

第三步:编译工具之 moz tools
    在windows下要用VC编译mozilla。必须安装这个东西,请下载
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip
把这个工具解开后放到一个地方。比如c:\moztools。应该在moztools下有bin , include ,lib目录。
然后编译的时候还需要几个库,这两个库是VC没有的,所以要下:
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71/vc71-glib-1.2.10-bin.zip
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71/vc71-libIDL-0.6.8-bin.zip
解压后,把vc71目录里的bin , include , lib目录拷贝到和moztools一起,
目录名不是必须为C:\moztools。这个目录必须和后面的Cygwin的启动脚本一致就可以了。也就是说这个目录名是通过环境变量输出的。
另外一点需要注意的是,VC8编译mozilla会有问题。只能用vc71。


第四步:编译环境之 Cygwin。
    可能很多人觉得这个麻烦。没办法。Mozilla只能用它编译。逃不了。必须装这个!!
下载Cygwin的时候,必须下的几个包是make  , unzip  , zip , perl , patchutils 。 我习惯把cygwin装在c:\cygwin这个地方。
     这里是Cygwin的下载地方http://www.cygwin.com/
     Cygwin现在默认的make是3.81,这个版本的make没法编译mozilla。要改成3.80的。我们可以google一个3.80的make。然后把c:\cygwin\bin下的覆盖掉。
     还有一个需要注意的是,cygwin\bin下有一个link.exe。这个会和vc的link冲突
解决办法就是把这个link.exe 改名,比如改成glink.exe。必然在make的时候会报告link 工具版本不匹配。
     OK。Cygwin到目前为止装好了。现在要给Cygwin指定环境变量。
     C:\cygwin的目录下有一个cygwin.bat。我们可以修改这个.bat 。
     首先,要指定步骤三里的moztools路径和那几个VC用到的库的路径
     SET MOZ_TOOLS=C:\moztools
     SET GLIB_PREFIX=C:\moztools
     SET LIBIDL_PREFIX=C:\moztools
     SET CYGWINBASE=C:\cygwin  
     然后别忘记了调用VC的环境变量,
          CALL D:\MSVCNET7\Vc7\bin\vcvars32.bat   //具体看你自己的vc装在什么地方
     然后别忘记了设置其他的环境变量
     SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin
     SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE%;%MINGWBASE%\include
     SET LIB=%GLIB_PREFIX%\lib;%LIB%
     SET PATH=%PATH%;%MOZ_TOOLS%\bin

     整个cygwin.bat 看上去是这样的:
         @echo off
     SET MOZ_TOOLS=C:\cygwin\moztools
     SET GLIB_PREFIX=C:\cygwin\moztools
     SET LIBIDL_PREFIX=C:\cygwin\moztools
     SET CYGWINBASE=C:\cygwin
     rem --- Clean slate start
     SET INCLUDE=
     SET LIB=
     SET PATH=C:\;C:\windows\system32;C:\windows;C:\windows\system32\wbem

     rem --- Then prepend Cygwin path
     SET PATH=%CYGWINBASE%\bin;%PATH%

     rem --- Set VC7 compiler environment vars copy the VC7/bin/vcvars32.bat outside
     CALL D:\MSVCNET7\Vc7\bin\vcvars32.bat
     
     rem --- Add glib/libidl to build environment
     SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin
     SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE%;%MINGWBASE%\include
     SET LIB=%GLIB_PREFIX%\lib;%LIB%

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

     C:
     chdir C:\cygwin\bin
     bash --login -i

OK. 到这里为止,所有的环境都建立好了。
双击刚才写好的cygwin.bat。然后出来Cygwin 的控制台,进入mozilla的代码目录,敲入以下命令:
          make -f client.mk  build
等待。。。大约一个到两个小时不等。
编译完成后在你指定的输出路径下会有一个dist目录,这个就是你需要的xulrunner的sdk。
Release版本的大概为200M。Debug版本有600M ....我的天。



   
     

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2006-11-2 19:50:00 | 显示全部楼层

Re:Mozilla XULRunner 的编译。

猪弄出来的东西,我们人不屑于试。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-3 09:50:00 | 显示全部楼层

Re:Mozilla XULRunner 的编译。

拍手~

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-11-3 11:39:00 | 显示全部楼层

Re:Mozilla XULRunner 的编译。

有要编译好的xulrunner 的sdk 。 也就是firefox的内核gecko的sdk。可以找我要。
800多M。可以压到一个CD里。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表