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.

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:

Then, to update your local tree do this:

For SeaMonkey you can use the command

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.