As you are no doubt well aware, building comm-central applications have become rather annoying as of late. I told myself that if I had time, I would put it first into pseudo-rework. It turns out that I unexpectedly got a bit of time. So I'm working on pseudo-rework, and it's already close to starting to land. :-)

What is pseudo-rework? It is, in short, an attempt to try to make the build system think that cc-rework has happened without it having actually happened. The name is courtesy of Mike Hommey. The work is divided into three phases:

As it exists right now:
$MOZ_OBJDIR/mail
$MOZ_OBJDIR/mozilla/dist
$MOZ_OBJDIR/mozilla/toolkit

1. Merge the two object directories into one. Effectively your code will look like:
$MOZ_OBJDIR/mozilla/mail
$MOZ_OBJDIR/mozilla/dist
$MOZ_OBJDIR/mozilla/toolkit

This by itself isn't particularly helpful. The reason it's a separate phase is because it does provide some protection against m-c build changes, and because automation hates phase 2 right now.

2. Move the object directory to actually be $MOZ_OBJDIR. Effectively:
$MOZ_OBJDIR/mail
$MOZ_OBJDIR/dist
$MOZ_OBJDIR/toolkit

But wait, there's more!
MOZCONFIG=/foo/bar ./mozilla/mach build works.

But wait, there's more!
MOZCONFIG=/foo/bar make -f client.mk build also works.

But wait, there's more!
$ hg clone http://hg.mozilla.org/comm-central
$ cd comm-central
$ ln -s /path/to/mozilla-central mozilla
$ echo ac_add_options --enable-application=mail > .mozconfig # Need an --enable-application=mail if you want Thunderbird and not Firefox.
$ ./mozilla/mach build
Success!

I hope you're as excited for this as I am.

3. Eliminate the comm-central build system. This may get deferred for some time because it looks like the solution here is picking one of a collection of hacks, and I'm not sure which one is preferable.

--
Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist

_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to