To build code from Mercurial, you need all the tools listed in sections Requires Packages and Compiler of the OS/2 Build Prerequisites.
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.
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:
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).
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
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.