Closed Bug 107302 Opened 24 years ago Closed 17 years ago

mozilla/Makefile.* needs to support componentized builds

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jud, Unassigned)

References

Details

Attachments

(2 files, 5 obsolete files)

Currently the only way to build XPCOM standalone is via modules.mk. We need to migrate the specific dir pulling/building mechanism to the top level mozilla/Makefile.* build system. Eventually, this will allow for "layered" builds that will let the developer determine how much they want to build (just the core, core+embedding, core+embedding+mozilla-proper, etc).
Depends on: 100107
To clarify, I didn't mean that we pull the existing dir pulling/building mechanism over, rather, that we just wind up w/ some model defining what to pull/build. Ideally that's dynamically built up at build time (perhaps based of REQUIRES).
We can do the pull part of this via some static form of alecf's module-graph.pl script + module2dir.pl lookup.
Attachment #55699 - Attachment is obsolete: true
As long as the perl script generated makefile operates on a module level, then we're fine (I think). I do not want to use the current modules.mk mechanism of cherry-picking directories from various modules in order to get a particular module to build. That mechanism was meant as a workaround for the module dependency mess not as the final solution. Right now, the only things that can be "layered" are nspr, xpidl & js. xpcom isn't going to make it into the base list until the follow deps are cut: xpcom -> string -> unicharutil -> necko xpcom -> necko xpcom -> libjar -> caps xpcom -> uconv
as discussed with cls on irc (but recorded here for the record) xpcom->unicharutil is bug 100214 xpcom->necko is bug 100212 xpcom->uconv is bug 100676 jar<->uconv is bug 102943 xpcom->jar is bug 107289 (but this is lower priority than bug 102943) string->unicharutil is bug 10575 (just filed) you might also want to see bug 66759, which is the tracking bug for XPCOM_STANDALONE
Comment on attachment 55702 [details] [diff] [review] last minute tweaks are bad looks like a good start. sr=alecf
Attachment #55702 - Flags: superreview+
*** Bug 107301 has been marked as a duplicate of this bug. ***
OS: Windows 2000 → All
Priority: -- → P2
Hardware: PC → All
Target Milestone: --- → mozilla0.9.9
Ugh, so after some extended testing, I discovered that this could potentially screwup our REQUIRES dependency system since the purge script doesn't know about the split. Running the purge script for each portion of the split cases headers to be missing and only running the purge script for the final portion of the split (currently the largest segment) could cause dependency problems in the first portions to be hidden until the build is clobbered.
Ok, crisis averted. Turns out that I was doing a boneheaded thing by putting xpcom/typelib (xpidl) into the base group w/o the rest of xpcom. REQUIRES will force us to group on module boundaries, which is what we want...I was just jumping the gun a bit with xpidl.
I added a generic rule to handle multiple lists of "tier" dirs. No more copy-n-paste ugliness. I had to invoke a separate make process for each toplevel tier compile so that parallel builds still worked. No clue how to make this work for win32. I'm tempted to just make win32 use a gmakefile for the toplevel makefile.
Attachment #55702 - Attachment is obsolete: true
Comment on attachment 58073 [details] [diff] [review] use generic rule to handle multiple tiers of dirs r=bryner
Attachment #58073 - Flags: review+
in comment #6 alecf meant string->unicharutil is bug 107575
Comment on attachment 60731 [details] [diff] [review] Add tiers for psm, mailnews, calendar & final binary. r=bryner
Attachment #60731 - Flags: review+
Target Milestone: mozilla0.9.9 → mozilla1.0.1
Attached patch Add separate tier for extensions (obsolete) — Splinter Review
Attachment #58073 - Attachment is obsolete: true
Attachment #60731 - Attachment is obsolete: true
Comment on attachment 74626 [details] [diff] [review] Add separate tier for extensions cool. sr=alecf
Attachment #74626 - Flags: superreview+
Comment on attachment 74626 [details] [diff] [review] Add separate tier for extensions a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #74626 - Flags: approval+
Attachment #74626 - Attachment is obsolete: true
Has this been checked in ?
This patch cleans up the xpcom entry for modules.mk since all of xpcom's major external dependencies have been broken. (Go Team!) It also rearranges the tiers so that tier_1 is the 3rd party libs that we've sucked into the the tree and tier_2 is the base application level libs (that have no other dependencies).
Comment on attachment 81970 [details] [diff] [review] move over Beyonce, xpcom is going solo! sr=alecf nice.
Attachment #81970 - Flags: superreview+
Comment on attachment 81970 [details] [diff] [review] move over Beyonce, xpcom is going solo! r=blythe
Attachment #81970 - Flags: review+
Attachment 81970 [details] [diff] has been checked in on the trunk.
Blocks: 138348
Keywords: mozilla1.0.1
Whiteboard: [fixed on trunk]
Whiteboard: [fixed on trunk] → [fixed on trunk][drivers queue]
No longer blocks: 138348
Keywords: mozilla1.0.1
Whiteboard: [fixed on trunk][drivers queue] → [fixed on trunk]
Whiteboard: [fixed on trunk]
Target Milestone: mozilla1.0.1 → mozilla1.2alpha
Priority: P2 → P3
Target Milestone: mozilla1.2alpha → Future
Mass reassign to new default build assignee
Assignee: seawood → mozbugs-build
Priority: P3 → --
Attachment #127478 - Flags: superreview?(leaf)
Attachment #127478 - Flags: review?(bryner)
Attachment #127478 - Flags: review?(bryner) → review+
Comment on attachment 127478 [details] [diff] [review] split xpfe & toolkit into separate tiers this is great stuff! can I sr=alecf this or do we have to wait for leaf? :) I especially like the renaming of xpfe/components/history/public's module to "history" - I've had similar changes in my tree for a long time.
Well, I was hoping to get the module owner's input on this but I won't squabble over a free sr. :) Bryner's a module peer anyways.
Comment on attachment 127478 [details] [diff] [review] split xpfe & toolkit into separate tiers sr=leaf
Attachment #127478 - Flags: superreview?(leaf) → superreview+
Can anyone check whether bug 212909 ('Build failure due missing "nsToolkitCompsCID.h"') is a regression due the last checkin, please ?
This caused bustage in Firebird and Thunderbird in three different ways. See bug 212509 for details. (more problems with the forked nsIGlobalHistory, xpfe/components/search/src/ depends on browser/components/bookmarks/public/, and toolkit/xre/ depends on xpinstall/.)
ack! who forked nsIGlobalHistory? that interface is FROZEN!
ack! who forked nsIGlobalHistory? that interface is FROZEN!
Mass reassign of Build/Config bugs to Leaf.
Assignee: mozbugs-build → leaf
Target Milestone: Future → ---
Assignee: leaf → cmp
Product: Browser → Seamonkey
Mass reassign of open bugs for chase@mozilla.org to build@mozilla-org.bugs.
Assignee: chase → build
Mass re-assign of bugs that aren't on the build team radar, so bugs assigned to build@mozilla-org.bugs reflects reality. If there is a bug you really think we need to be looking at, please *email* build@mozilla.org with a bug number and explanation.
Assignee: build → nobody
QA Contact: granrosebugs → build-config
Product: SeaMonkey → Core
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: