`

mozilla构建

阅读更多
这是我参照mozilla网站做的一些笔记:
mozilla的编译
一。下载源代码
  需要gnu 的make工具和cvs
  cvs 客户端的设置是: :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
1.选择一个项目去下载
   browser --- firefox
   mail -- Thunderbird 新闻和邮件客户端
   suite -- SeaMonkey 大杂烩:浏览器,邮件客户端,网页编辑器和其他程序。
   minimo -- 专门用于small device上的客户端
   composer -- html的编辑器
   calendar --- Sunbird 日程安排程序
   xulrunner  --- 下一代的XUL程序启动程序
   camino --- Macintosh上的native浏览器
   tamarin  --- Adobe捐献的Ecmascript虚拟机
   all --- 以上所有的程序模块
2. 取出源代码
   1)Mozilla推荐你使用Tinderbox去看看现在你要的模块是不是可以用的,不要下载一个编译不了的程序。
   2)创建一个目录,取得client.mk文件。
   mkdir ff
   cd ff
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk

   如果你不是从头下载源代码,而是有了已经设置好的.mozconfig文件的话,可以用另外的方法取出源代码,这里就不说了,详细情况见mozilla的网站。

   3)取特定分支的源代码
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r BRANCH mozilla/client.mk
  其中BRANCH是特定的分支。

  4)现在开始取出源代码
  cd mozilla
  make -f client.mk checkout MOZ_CO_PROJECT=option,option

  如果你已经有一个定制好的.mozconfig文件,你就不用提供MOZ_CO_PROJECT。如果没有,就得写出来。我要firefox,就写MOZ_CO_PROJECT=browser

  更具体的,如要取出某一个分支的代码,某个时间的源代码等,看mozilla网站的介绍。

  我在make的时候碰到一个问题,说是文件是unix格式的,需要转化成dos格式的,我使用msys的unix2dos就搞定了这个client.mk文件,再执行上面的make命令,就开始取源代码了。这个过程的时间有点长,需要等一下,代码很多啊。
 
二。设置构建选项
 
  1.使用.mozconfig配置文件
  虽然可以在目录行中手工调用configure目录,但是这不是推荐的方式,推荐的方式是在你的源代码目录中放一个上面多次提到的.mozconfig文件(mozilla/.mozconfig),不放在源代码目录中的话,也可以放在你的HOME目录中(~/.mozconfig):
   echo "# My first mozilla config" > .mozconfig
  这个文件中包含两种类型的选项类型:1)选项前有mk_add_options的;2)选项前有ac_add_options的。  这些选项在你调用configure或者make -f client.mk的时候会自动被使用。

  2. 使用objdir构建
    推荐使用objdir进行构建mozilla,这样你的源代码和目标文件可以在你的目录系统中分开,互不干扰,用同一个源代码目录编译出多个多个应用程序。

  用使用这个功能把下面行的内容加入到.mozconfig中去:
   mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
  
  3.选择一个应用程序进行编译
   1)Mozilla Suite (SeaMonkey) :

     ac_add_options --enable-application=suite
     # Use the following to checkout SeaMonkey from CVS:
     mk_add_options MOZ_CO_PROJECT=suite

   2)Browser (Firefox)
    在.mozconfig中包含默认的配置文件就可以了:

     . $topsrcdir/browser/config/mozconfig

    注意:不要进行文件内容的拷贝,要防止可能的变化。以下的都类似。

   3)Mail (Thunderbird)
    . $topsrcdir/mail/config/mozconfig
  
   4)Standalone Calendar (Sunbird)
  
    . $topsrcdir/calendar/sunbird/config/mozconfig

   5)XULRunner
  
    . $topsrcdir/xulrunner/config/mozconfig

  4.设置构建选项
    构建选项色选择取决于你要构建什么程序以及怎么使用这个程序,比如,就是一般的使用就选择没有额外调试信息的release版本,如果是程序开发人员想hack代码的话就可以使用带调试信息的程序。
  Mozilla suite的构建选项可以使用一个Mozilla Build Configurator的网络工具来构造,对于其他的程序,你还得手工编辑生成的文件才可以。
  如果你不了解这些选项的作用或者也不想连接,那么你就一个选项也别设置!!!

   1)优化选项
ac_add_options --enable-optimize
ac_add_options --enable-optimize=-O2
ac_add_options --disable-debug
ac_add_options --disable-optimize
ac_add_options --enable-debug
  2)图形界面工具箱
  ac_add_options --enable-default-toolkit=gtk2|gtk|xlib|qt|cairo-gtk2|cairo-windows|windows|mac|cocoa|cairo-cocoa|os2|beos|photon
     对于Windows/OS2/BeOS/Photon,不用设置
  ac_add_options --enable-xft
        是一种字体渲染技术,默认gtk2的时候使用。推荐跟gtk2搭配
ac_add_options --enable-freetype2
使用freetype进行字体渲染,跟xft不相容的。不要设置冲突了。
  3)静态构建
   ac_add_options --enable-static --disable-shared
这个选项构建一个大的exe程序,所有的组件都静态连接进程序了。注意:--enable-static需要搭配--disable-libxul的,还有推荐--disable-tests跟--enable-static搭配。
  ac_add_options --disable-static --enable-shared
   这是默认的选项。

  4)扩展
   ac_add_options --enable-extensions=default|all|ext1,ext2,-skipext3
   程序有许多扩展插件的,建议不要设置,保持默认,让程序去处理。

  5)测试
   ac_add_options --disable-tests
默认是打开的,使用这个选项可以加快构建速度,减少磁盘空间占用。
  6)其他选项
   ac_add_options --disable-crypto
默认开启。在一些国家,使用或者出口加密模块是非法的,需要你来配置是不是使用。
    在1.7及其主要分支,这个选项默认是关闭的。
  ac_add_options --disable-javaxpcom (No Java)
   XULRunner默认构建是包括Java-XPCOM bridge的,它需要安装JDK的。

5. .mozconfig文件例子
  针对Firefox的优化静态构建
 
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --disable-libxul
ac_add_options --disable-tests

三。构建程序
make -f client.mk build
  

 
  


    
   
     

    
分享到:
评论

相关推荐

    flash-b2g:来自公共Mozilla构建的Flash Firefox OS设备

    只需一个命令,即可从 Mozilla 的公共构建服务器在 Firefox OS 设备上执行浅闪存 Gecko 和 Gaia。 它有什么作用? 从下载构建,按device 、 channel和date匹配 闪光壁虎和盖亚,所谓的) 什么是Shallow Flash ? ...

    回归测距Mozilla每晚构建Python.zip

    回归测距Mozilla每晚构建Python.zip是一个包含与Python编程语言相关的资源的压缩文件,特别是与Mozilla公司的自动化构建过程有关。这个文件很可能包含了Mozilla在开发过程中使用的脚本、配置文件和其他工具,这些...

    mozilla_源码编译简介

    这是因为 Mozilla 的构建系统依赖于 GNU make 的特定功能,而其他版本的 make 工具可能无法正确处理 Mozilla 的构建脚本。确保系统中安装了最新版本的 GNU make。 ##### 2.2 环境搭建 为了顺利编译 Mozilla 的源码...

    mozilla书和开发手册

    通过学习MDC,开发者可以创建跨平台的桌面应用程序,利用Firefox的扩展功能,或者构建符合现代Web标准的复杂应用。 《Prentice.Rapid.App.Dev.With.Mozilla 2003》这本书则是2003年出版的,尽管年代较早,但它提供...

    前端开源库-mozilla-toolkit-versioning

    Mozilla工具包是一组用于构建Firefox、Thunderbird等Mozilla产品的JavaScript API。这些API包含了浏览器的核心功能,如网络通信、用户界面、以及插件系统等。版本控制对于任何软件项目都是至关重要的,它追踪代码的...

    基于 Mozilla 的扩展开发

    它基于组件对象模型(Component Object Model, COM),提供了一种跨平台的方式来构建和运行应用程序。此外,XPCOM(跨平台组件对象模型)是 Mozilla 的一个重要组成部分,它是一种接口技术,允许不同语言之间进行...

    mozilla内核压缩包

    Firefox和Thunderbird等Mozilla应用就是用XUL构建的。 **3. 安全与隐私** Mozilla内核重视用户安全和隐私。它内置了强大的安全功能,如防止跨站脚本攻击(XSS)、点击劫持防护和严格的同源策略。同时,Mozilla内核...

    通过MOZILLA的javascript引擎(SpiderMonkey)执行js代码

    总的来说,Mozilla的SpiderMonkey提供了一种在C++应用程序中运行JavaScript代码的方法,这对于构建富客户端应用或者与Web服务交互非常有用。通过理解和利用SpiderMonkey的API,开发者可以将JavaScript的强大功能无缝...

    mozilla xbl基本用法示例

    XUL(XML User Interface Language)是Mozilla使用的一种标记语言,用于构建跨平台的图形用户界面。在XUL文档中,我们可以定义UI元素并引用XBL绑定。一个典型的XUL文件可能包含如下结构: ```xml ...

    Rapid Application Development with Mozilla

    该书深入探讨了Mozilla的架构和工具,旨在帮助开发者高效地利用这一开源浏览器技术构建跨平台的应用程序。 书中首先介绍了Mozilla的基础知识,包括其核心组件如XUL(XML User Interface Language)、XBL(XML ...

    Ubuntuzilla: Mozilla Software Installer:Mozilla软件版本的APT存储库-开源

    一个APT存储库,其中托管了Firefox,Thunderbird和Seamonkey的最新官方发行版的Mozilla构建。 不要手动下载文件-阅读Wiki,https://sourceforge.net/p/ubuntuzilla/wiki/,以获取有关使用存储库的说明。

    MozillaOpennews静态网站mozilla-opennews.zip

    Knight-Mozilla OpenNews 是一个构建能让新闻事业茁壮生长的生态环境。它旨在生产出能解决新闻界存在的问题的下一代 Web 解决方案。它能支持社区的开发者和新闻工作者共同学习共同创造。 标签:mozilla

    reference-browser,使用Mozilla Android组件的全功能浏览器参考实现。.zip

    本文将深入探讨一个开源项目——"reference-browser",它是一个使用Mozilla Android组件构建的全功能浏览器的参考实现。这个项目为开发者提供了一个可定制、可扩展的浏览器框架,有助于理解和构建自己的浏览器应用。...

    Readabilityjs一个mozilla的网页主体内容解析库

    Readability.js是由Mozilla开发的一个强大的JavaScript库,专门用于从复杂的网页结构中提取主要内容,提高文章的可读性。...无论是为了构建自定义阅读器还是优化爬虫数据处理,Readability.js都是一个值得信赖的选择。

    Mozilla FireFox V2

    此外,Firefox 2对XUL(XML User Interface Language)的应用,使其能够构建跨平台的用户界面。 ### 文件列表 在压缩包中包含的“Mozilla Firefox”文件很可能是Firefox 2的安装程序或更新文件。这个文件可能包含...

    基于 Mozilla firefox 的扩展开发

    1. **XUL (XML User Interface Language)**:Firefox 扩展主要使用 XUL 来构建用户界面,这是一种基于 XML 的语言,用于描述图形用户界面的布局和元素。 2. **JavaScript**:JavaScript 是编写 Firefox 扩展的主要...

    Mozilla的BrowserQuest的HTML5源代碼 遊戲

    开发者可以从中学习到如何构建可扩展、可维护的游戏框架。 6. **游戏资源管理**:游戏中的音频、图像和其他资源通过JavaScript加载和管理。了解如何有效地加载和缓存这些资源,可以避免游戏启动时的延迟,并优化...

    Rapid.Application.Development.With.Mozilla.2003

    这本书的核心内容是向读者介绍如何高效地利用Mozilla的开源框架和组件来构建跨平台的应用程序。Mozilla是一个强大的开源项目,其核心浏览器引擎不仅支持网页浏览,还提供了丰富的API和工具,使得开发者可以构建各种...

Global site tag (gtag.js) - Google Analytics