Jake (Jake wants to be ... faster than make) // application development software

  • Jake aims to be ... better than Make (for its build goals and rules).


Benefits of Jake

Gain Time

  • Build projects and sub-projects as fast as possible.
  • Parallel builds are enabled by default.

Jake-v3.05 vs Make vs Ninja on Windows real projects Jake-v3.05 vs Make vs Ninja on Windows small example projects Jake-v3.05 vs Make vs Ninja on Windows performance no-compiler deep 3

Simple to use

  • Jake uses a simple syntax to describe what and how to build.
  • All rules are visible in the jake file. This facilitates project control.

Uniqueness of Jake

  • It only allows clear and visible rules for every goal in the project.
  • The simple syntax is still powerful enough for complex projects, for cross-compiling and testing.

Who can use Jake?

Anyone who wants a fast alternative to make or ninja build system, for simple or complex projects.

Abcd knows how to generate Jake files. It can be used for a quick-start.

Jake Feature List

  • Jake choose to build only what is necessary, in order to reduce the time spent when parts of the project do not need updates.

  • Jake only allows precise and visible set of rules for each goal.

    • There are no pre-defined rules.
    • Wildcard-rules or general rules are not supported.
    • A rule either exists, either not. There is no "maybe" a general rule was used. There is no "maybe" another pre-defined compiler was used.
    • This keeps the each goal and ultimately the project in control.
  • The syntax is practically a subset of GNU make syntax, with few developer-friendly additions.

    • The logic of rules and dependencies is easy to follow.
    • Rule-commands can be indented with spaces or tabs.
    • Make-syntax dependencies generated by compilers can be used directly.
    • Some Makefiles can be used directly by Jake.
  • Abcd knows how to generate jake files.

    • While this is a feature of Abcd, it is in the same time an advantage for Jake.


Notes:
  • Because wildcards are not supported in rule dependency and goal lines, these can be pretty long.
  • In the same time, the dependency paths are visible. Where debugging build-rules is necessary, searching with grep should be easier and faster than interpreting wildcards.
  • Jake stands for Jobs Make.
  • It looks now that Jake 3 on Windows is not only faster than Make, but also faster than Ninja-build (even though that wasn't a goal).
  • However, correctly building interdependent projects comes first, before build time. And this is the aspect where Jake excels.



See also:

Jake How-To

Jake Manual

Practical sessions with Abcd, Jake and review tools

..