Confirmed users
429
edits
Ricky Chien (talk | contribs) No edit summary |
Ricky Chien (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
After surveying, we decide to split build system into 2 steps: configure step and build step. For detailed information, please visit change proposal in dev-gaia [https://groups.google.com/forum/#!topic/mozilla.dev.gaia/rnvefXH8cng Update on Gaia build changes: A configure step, and Make v.s. Gulp]. | After surveying, we decide to split build system into 2 steps: configure step and build step [https://gecko.readthedocs.org/en/latest/build/buildsystem/build-overview.html]. For detailed information, please visit change proposal in dev-gaia [https://groups.google.com/forum/#!topic/mozilla.dev.gaia/rnvefXH8cng Update on Gaia build changes: A configure step, and Make v.s. Gulp]. | ||
Our goal is to fasten incremental build and clobber build and easier to customize and manage new/current building step. | Our goal is to fasten incremental build and clobber build and easier to customize and manage new/current building step. | ||
All of these terminologies can be referred to Gecko build system document [https://gecko.readthedocs.org/en/latest/build/buildsystem/glossary.html Glossary]. | |||
= Plan = | = Plan = | ||
| Line 10: | Line 12: | ||
** George (MoCoTPE) (irc #gaia: gduan) | ** George (MoCoTPE) (irc #gaia: gduan) | ||
* '''Total expected schedule:''' 12 | * '''Total expected schedule:''' 10 - 12 weeks | ||
== Milestone 1 == | == Milestone 1 == | ||
| Line 25: | Line 27: | ||
== Milestone 2 == | == Milestone 2 == | ||
After initial landing step being done, we should abandon GNU make's PHONY targets as many as possible, so we could have a faster build by taking the advantage of GNU make's incremental build. The configure.js should be able to connect with different build back-end. In order to achieve this aim, we eventually come out a new phase - config.status for preparing the next step (replacing build back-end). The idea of config.status is charged with the task of tell back-end tool how to build the tree which includes scanning the build system definition and constructing a DAG data structure for representing task dependency and supporting parallel build natively. It means config.status will be generated by configure.js and output a build-file for back-end consumption (e.g. a `make` back-end will write a `Makefile`). | After initial landing step being done, we should abandon GNU make's PHONY targets as many as possible, so we could have a faster build by taking the advantage of GNU make's incremental build. The configure.js should be able to connect with different build back-end. In order to achieve this aim, we eventually come out a new phase - config.status [https://gecko.readthedocs.org/en/latest/build/buildsystem/build-overview.html#phase-2-build-backend-preparation-and-the-build-definition] for preparing the next step (replacing build back-end). The idea of config.status is charged with the task of tell back-end tool how to build the tree which includes scanning the build system definition and constructing a DAG data structure for representing task dependency and supporting parallel build natively. It means config.status will be generated by configure.js and output a build-file for back-end consumption (e.g. a `make` back-end will write a `Makefile`). | ||
* '''Deliverable:''' Abandon GNU make's PHONY targets as many as possible to speed up incremental build and implement config.status phase. | * '''Deliverable:''' Abandon GNU make's PHONY targets as many as possible to speed up incremental build and implement config.status phase. | ||