• [BuildRelease]Mozilla Build Tools Autoconf + GNU Make


    一 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中的源代码路径被替换为真实的路径,从而使得Makefile能够正确地工作;

    configure脚本是bash shell脚本,是由M4语法描述的configure.in和Autoconf产生而来。

    二 Mozilla Build Tools 的安装

    1) Ubuntu Linux
    sudo apt-get build-dep firefox
    sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13

    2) windows

    下载安装: http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe

    安装后目录结构:

    mozilla-build
    +---7zip
    +---atlthunk_compat
    +---blat261
    +---emacs-22.3
    +---hg
    +---info-zip
    +---kdiff3
    +---moztools
    +---moztools-180compat
    +---moztools-x64
    +---msys
    +---nsis-2.22
    +---nsis-2.33u
    +---python25
    +---svn-win32-1.6.3
    +---upx203w
    +---vim
    +---guess-msvc.bat
    +---start-msvc9.bat
    \---wget

    三 Build Firefox

    1) 先决条件

    - Windows Xp with SP2 and .NET Framework 2.0

    - Visual Studio 2008 or express

    - Windows SDK

    - Install Mozilla build tools (见上一)

    2) Get code/build/rebuild
    - 从Mozilla build tools的安装目录下执行start-msvc9.bat;

    - 在C:\firefoxbuild下下载code,然后build
    # Get the source
    cd /d c:\firefoxbuild
    hg clone http://hg.mozilla.org/mozilla-central/
    cd mozilla-central
    # Setup a basic mozconfig file
    echo '. $topsrcdir/browser/config/mozconfig' > mozconfig                      # let's build Firefox...
    echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release' >> mozconfig   # ...in this directory...
    echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' >> mozconfig
    # Build
    make -f client.mk


    - 如果build debug,需要加入下例选项在mozconfig

    . $topsrcdir/browser/config/mozconfig
    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-debug
    ac_add_options --enable-debug
    ac_add_options --disable-optimize

    - rebuild
    # Get the latest source
    hg pull -r default
    hg update
    # Build
    make -f client.mk

    三 参考

    1)https://developer.mozilla.org/en/Build_Documentation

    2)https://developer.mozilla.org/En/Simple_Firefox_build#Installing_build_tools

    3)https://developer.mozilla.org/en/NSPR_build_instructions

    Mozilla build tools 可以被我们修改后用于跨平台产品的build!

     完!

  • 相关阅读:
    Java基础--阻塞队列ArrayBlockingQueue
    Java基础--反射Reflection
    Java基础--对象克隆
    Java基础--HashCode
    Java基础--序列化Serializable
    OpenCV 绘制图像直方图
    PHP isset, array_key_exists配合使用, 并解决效率问题
    安装XDEBUG步骤及问题
    设计模式例子
    适配器模式例子
  • 原文地址:https://www.cnblogs.com/itech/p/2176403.html
Copyright © 2020-2023  润新知