Projects / Prebake

Prebake

Build systems fail to scale to large projects when rebuilding a small portion requires stat-ing every project file. Prebake is a build system that uses a long-lived service to hook into the file-system and watch for changes so it can avoid unnecessary I/O for incremental builds. It also solves common problems with Ant and Make: missing dependencies and build cruft from deleted source files. It does away with missing dependencies by doing away with explicit dependencies altogether. Build dependencies are inferred by intersecting globs; if one product takes *.c and produces *.o, and another takes *.o and produces *.lib, then the latter depends on the former. Prebake also gets the benefits of both a declarative build syntax (a la make) and the flexibility of hand coded shell scripts. It uses tightly sandboxed JavaScript and "mobile functions" to get the flexibility of a scripting language with the hard controls on side effects that allow for repeatable builds. In practice, the JS in build files looks declarative, like JSON, but the dynamism is there when you need it.

Tags
Licenses
Operating Systems
Implementation

Last announcement

Parameterized Rules allow better integration with continuous integration dashboards 18 Jun 2010 02:00

Added support for parameterized rules to allow for default rules, easy cross-architecture builds, easy L10N, and for parameterization of report generating rules like tests, linters, code coverage, etc. which can feed into continuous integration dashboards. See code.google.com/p/preb... for more details.

Recent comments

18 Jun 2010 01:59 mikesamuel

Added support for parameterized rules to allow for default rules, easy cross-architecture builds, easy L10N, and for parameterization of report generating rules like tests, linters, code coverage, etc. which can feed into continuous integration dashboards.

See http://code.google.com/p/prebake/wiki/BuildSystem for more details.

Screenshot

Project Spotlight

OpenStack4j

A Fluent OpenStack client API for Java.

Screenshot

Project Spotlight

TurnKey TWiki Appliance

A TWiki appliance that is easy to use and lightweight.