Closed Bug 307311 Opened 15 years ago Closed 15 years ago

Allow client.mk to build xulrunner + multiple apps in one sweep

Categories

(Firefox Build System :: General, defect, P2)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: benjamin, Assigned: benjamin)

References

Details

(Keywords: fixed1.8.0.2, fixed1.8.1, Whiteboard: [FIX][camino-1.0])

Attachments

(1 file)

We're going to be building Firefox on top of xulrunner, and we want a way to
build both things in one fell swoop. The plan here is to extend client.mk and
the mozconfig format a little bit:

example .mozconfig:

mk_add_options MOZ_BUILD_PROJECTS=xulrunner,browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir

ac_add_app_options xulrunner --enable-debug --enable-optimize
ac_add_app_options xulrunner --enable-debugger-info-modules=all

# the following line automatically adds --with-libxul-sdk=@OBJDIR@/xulrunner
ac_add_app_xulrunner browser
ac_add_app_options browser --enable-official-branding
ac_add_app_options browser --enable-debug --disable-debug
ac_add_app_options browser --enable-extensions=default,spatialnavigation

Then, xulrunner would be built in @OBJDIR@/xulrunner, and firefox would be built
using the xulrunner headers/libs/etc in @OBJDIR@/browser.
Attachment #195155 - Flags: superreview?(darin)
Attachment #195155 - Flags: review?(cls)
Comment on attachment 195155 [details] [diff] [review]
Build multiple projects in subdirs of MOZ_OBJDIR, rev. 1

This looks good to me.	My only concern is that once we move all of our apps to
MOZ_BUILD_PROJECTS=xulrunner,appname that we will basically want to just make
our build system automatically set this variable when someone says they want to
build "appname".  Any thoughts on how to get there?  It'd be nice if people did
not have to change their mozconfig files at all, but I guess with the dual
objdir business that's hard to avoid.
Attachment #195155 - Flags: superreview?(darin) → superreview+
Well, people are going to have to change their mozconfig to some degree. I think
the simplest idea would be to have MOZ_BUILD_PROJECTS=xulrunner,browser in
browser/config/mozconfig (once we flip the firefox-on-xulrunner switch).
oh, back to sourcing browser/config/mozconfig? *grin*
(In reply to comment #4)
> oh, back to sourcing browser/config/mozconfig? *grin*

I would like not to need to do that.  Are simpler solutions available?
I'm sure we can come up with something: MOZ_JUSTBUILDWHATIWANT=browser ;-)
can we make --enable-application take a list of applications that are to be built?
Not really... each "application" is configured separately.
Priority: -- → P2
Whiteboard: [FIX]
Fixed on trunk. Chris, I would still appreciate ex-post-facto review.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Attachment #195155 - Flags: review?(cls) → review+
Comment on attachment 195155 [details] [diff] [review]
Build multiple projects in subdirs of MOZ_OBJDIR, rev. 1

We'd like to get this on the 1.8.0 branch in order to drive mac universal builds: it's a very safe fix in that it's build-only and hasn't had reported regressions.
Attachment #195155 - Flags: approval1.8.0.2?
I've checked this in on CAMINO_1_0_BRANCH (based off MOZILLA_1_8_0_BRANCH) to support a universal build there.
Whiteboard: [FIX] → [FIX][camino-1.0]
The following change was needed to support whitespace in ac_add_app_options arguments.

--- build/autoconf/mozconfig2configure  30 Sep 2005 17:39:16 -0000      1.7
+++ build/autoconf/mozconfig2configure  3 Feb 2006 19:54:38 -0000       1.8
@@ -79,9 +79,9 @@
 ac_add_app_options() {
   APP=$1
   shift;
   if [ "$APP" == "$MOZ_BUILD_APP" ]; then
-      ac_add_options $*;
+      ac_add_options "$*";

Checked in on trunk, checking in on CAMINO_1_0_BRANCH.
Blocks: 327823
Blocks: 327848
Comment on attachment 195155 [details] [diff] [review]
Build multiple projects in subdirs of MOZ_OBJDIR, rev. 1

This needs branch approval, there are other Mac universal binary patches that depend on it that are waiting to land.  See comment 10 for analysis.  This should land with the changes from comment 12.
Attachment #195155 - Flags: approval-branch-1.8.1+
Flags: blocking1.8.0.2+
Comment on attachment 195155 [details] [diff] [review]
Build multiple projects in subdirs of MOZ_OBJDIR, rev. 1

approved for 1.8.0 branch, a=dveditz
Attachment #195155 - Flags: approval1.8.0.2? → approval1.8.0.2+
Fixed on 1.8 and 1.8.0
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.