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.

Abc 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.
  • Abc knows how to generate jake files.

    • While this is a feature of Abc, 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.


Image and Video Gallery

Abc video demo with jake Abc video demo with jake

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 2 Jake-v3.05 vs Make vs Ninja on Windows performance no-compiler deep 3 Jake-v3.05 vs Make vs Ninja on Linux real projects Jake-v3.05 vs Make vs Ninja on Linux small example projects Jake-v3.05 vs Make vs Ninja on Linux performance no-compiler deep 2 Jake-v3.05 vs Make vs Ninja on Linux performance no-compiler deep 3

Jake-v2 vs Make in Linux ABCDE type project group ccache Jake-v2 vs Make in Linux ABCDE type project group No ccache Jake-v2 vs Make in Linux sptDir_Sample_ProjTree ccache Jake-v2 vs Make in Linux sptDir_Sample_ProjTree No ccache Jake-v2 vs Make in Linux speed test project spt-gen-2-20-30 Jake-v2 vs Make in Linux speed test project spt-gen-3-20-30 Jake-v2 vs Make in Windows ABCDE type project group ccache Jake-v2 vs Make in Windows ABCDE type project group No ccache Jake-v2 vs Make in Windows sptDir_Sample_ProjTree ccache Jake-v2 vs Make in Windows sptDir_Sample_ProjTree No ccache Jake-v2 vs Make in Windows speed test project spt-gen-2-20-30 Jake-v2 vs Make in Windows speed test project spt-gen-3-20-30


See also:

Jake How-To

Jake Manual

..