mozilla
Your Search Results

    Building on OS/2 using Mercurial

    Required Packages

    To build code from Mercurial, you need all the tools listed in sections Requires Packages and Compiler of the OS/2 Build Prerequisites.

    • Mercurial
      The OS/2 version of this version control system is available from Andrew McIntyres's webpage.

    Compiler

    You should use GCC 4.4.0 (dated 2009-04-26) for building any Mozilla application. Download the package from Paul Smedley's site and unpack. The setmozenv script (attached to this page) assumes that you installed into the directory D:\GCC44. If you installed elsewhere, you will have to make the appropriate changes. You still need GCC 3.3.5 because it contains binaries and include files required for the build process.

    Setup

    You should set up Mercurial using a %HOME%\.hgrc file with content similar to this:

    [ui]
    username = Firstname Lastname <localpart@domain.country>
    merge = kdiff3
    #editor = vi.exe
    #verbose = True
    #debug = True
    
    [diff]
    git = 1
    
    [defaults]
    diff=-p -U 8
    
    [extensions]
    hgext.mq =
    hgext.win32text =
    
    [encode]
    **.cmd = dumbencode:
    **/os2/README.* = dumbencode:
    [decode]
    **.cmd = dumbdecode:
    **/os2/README.* = dumbdecode:

    Getting sources and building

    Mercurial-based "checkout"

    Detailed instructions for checking out the code can be found elsewhere: for mozilla-central (or mozilla-1.9.1, both are Firefox-only) and of comm-central (SeaMonkey and Thunderbird). Note that the instructions for comm-central include getting the code of mozilla (mozilla-central or mozilla-1.9.1), i.e. Firefox code and all backend code, which will be set up in a subdirectory mozilla of the directory to which you clone comm-central.

    Basically you do this to get the code:

    • hg clone <URL> (the first time only, may take hours depending on download speed)

    Then, to update your local tree do this:

    • hg qpop -a (remove all locally applied patches that Mercurial Queues know about, this may take long if you edited files without letting Mq know about it)
    • hg pull -u (pull all changes into the local repository which is inside the .hg subdirectory, and then update the checked-out source tree, this should be much faster than for CVS)
    • hg qpush <patchname> (apply the patch or patches again)

    For SeaMonkey you can use the command

    • python client.py checkout

    as a replacement for the hg pull call (this is very useful because it updates not only the local copy of comm-central but also mozilla-central and other CVS-based repositories).

    Building

    This is unchanged from CVS-based builds. Create a .mozconfig file

    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj
    
    ac_add_options --enable-application=browser
    ac_add_options --disable-tests
    ac_add_options --enable-optimize
    ac_add_options --disable-debug
    

    and then kick-off the build with

    make -f client.mk build 2>&1 | tee build.log
    

     

    Warning: for some reason the configure file in nsprpub is part of the Hg repository, but as it is incompatible with the OS/2 build, you need to either remove it before building, or (recommended) to patch it away using the Mq extension of Mercurial. (In the latter case you might need to use hg qrefresh every now and then to update the patch.

    Document Tags and Contributors

    Contributors to this page: Ms2ger, PWeilbacher, Sheppy
    Last updated by: Sheppy,