Open Bug 892644 Opened 11 years ago Updated 2 years ago

[meta] Remove recursive traversal of export tier

Categories

(Firefox Build System :: General, defect)

defect

Tracking

(Not tracked)

People

(Reporter: gps, Unassigned)

References

(Depends on 3 open bugs, Blocks 1 open bug)

Details

(Keywords: meta)

One of our Q3 goals is to refactor the |make export| tier to not rely on recursive traversal.

This essentially means moving all of the "export" targets into non-recursive make files or alternative mechanisms. We will likely still have an |export| target and tier, but they will be radically different. We should work towards no-op builds during |make export|. Although, I'm not sure if this will be completely achievable due to external build systems and incomplete moz.build port.

This is a tracking bug. I'll collect all action items as dependencies.
Depends on: 892646
Depends on: 892693
Depends on: 892727
Depends on: 892747
The following contain an export target:

    Makefile.in
    accessible/public/msaa/Makefile.in
    browser/metro/shell/Makefile.in
    build/Makefile.in
    config/Makefile.in
    config/nspr/Makefile.in
    db/sqlite3/src/Makefile.in
    ipc/chromium/Makefile.in
    ipc/ipdl/Makefile.in
    media/mtransport/build/Makefile.in
    media/mtransport/standalone/Makefile.in
    mobile/android/branding/aurora/content/Makefile.in
    mobile/android/branding/beta/content/Makefile.in
    mobile/android/branding/nightly/content/Makefile.in
    mobile/android/branding/official/content/Makefile.in
    mobile/android/branding/unofficial/content/Makefile.in
    mobile/locales/Makefile.in
    probes/Makefile.in
    profile/dirserviceprovider/standalone/Makefile.in
    security/build/Makefile.in
    security/nss/tests/pkcs11/netscape/trivial/Makefile.in
    toolkit/Makefile.in
    toolkit/components/urlformatter/Makefile.in
    toolkit/library/Makefile.in
    toolkit/profile/Makefile.in
    widget/cocoa/Makefile.in
    widget/os2/Makefile.in
    widget/qt/faststartupqt/Makefile.in
    widget/windows/winrt/Makefile.in
    xpcom/build/Makefile.in
    xpcom/glue/nomozalloc/Makefile.in
    xpcom/glue/standalone/Makefile.in
    xpcom/glue/standalone/staticruntime/Makefile.in
    xpcom/glue/staticruntime/Makefile.in
    xpcom/idl-parser/Makefile.in
    xpcom/typelib/xpidl/Makefile.in
    xpcom/typelib/xpt/src/Makefile.in
    xpcom/typelib/xpt/tools/Makefile.in
    xulrunner/app/Makefile.in
    xulrunner/installer/windows/Makefile.in

Some of these involve defining the target itself, so they are legit. Many of these targets define simple code generation invocations and could go after work in bug 883954 enables them.

There are still some "special" variables (like INSTALL_TARGETS) that result in export rules. I'll have to write a custom query to identify these.
Depends on: 883954
Depends on: 896797
No longer depends on: 890097
Depends on: 899792
Depends on: 900522
Depends on: 900974
Depends on: 901667
No longer depends on: 901667
Depends on: 921003
Product: Core → Firefox Build System
Blocks: 1646939
Summary: Remove recursive traversal of export tier → [meta] Remove recursive traversal of export tier
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.