cake 0.1.0

A delicious build tool with a obvious syntax.
Documentation
:cake: Cake
===========

Cake is a simple, Rustic build tool, which is configured through the advanced macro system of Rust, making it very flexible and expressive.

Features & advantages
---------------------

1. A sane and obvious syntax.
2. Fast parallel builds through work-stealing.
3. Ahead of time compilation.
4. Efficient dependency resolution.

An example
----------

```rust
#[macro_use]
extern crate cake;

build! {
    start(sodium, libstd) => cmd!("ls"; in "src"),
    sodium(libstd, libextra) => println!("yay"),
    libstd() => println!("libstd"),
    libextra(run) => cmd!("ls"; where LAL = "2"),
    run() => println!("check"),
}
```

The syntax
----------

The build is declared through the `build!` macro, which, when invoked, expands to the main function. The `build!` macro takes a block, containing a match like syntax:

```rust
recipe(dependencies...) => instructions
```

The first denotes the name of the build recipe. `dependencies`, delimited by `()` and splited by commas, denotes what build recipe this recipe depends on, i.e., requires to build.

A recipe can be failed by returning `Err(())`, e.g. using `try!()` on a result.

For the extra helper macros, see the rendered docs.