Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (78 sloc) 2.497 kB
<!DOCTYPE html>
<title>Ninja, a small build system with a focus on speed</title>
body {
font-family: sans-serif;
font-size: 0.8em;
margin: 5ex 10ex;
tt, pre {
font-family: WebKitWorkaround, monospace;
#content {
float: left;
max-width: 60ex;
#sidebar {
float: left;
margin-left: 5ex;
max-width: 20ex;
h1 {
font-weight: normal;
margin-bottom: 0;
h2 {
font-size: 100%;
margin-bottom: 0;
<div id=content>
<p>Ninja is a small build system with a focus on speed. It differs
from other build systems in two major respects: it is designed to have
its input files generated by a higher-level build system, and it is
designed to run builds as fast as possible.</p>
<h2>Why yet another build system?</h2>
<p>Where other build systems are high-level languages Ninja aims to be
an assembler.</p>
<p>Ninja build files are human-readable but not especially convenient
to write by hand. (See
the <a href=""><em>generated</em>
build file used to build Ninja itself</a>.) These constrained build
files allow Ninja to evaluate incremental builds quickly. For the
Chrome browser on Linux (the motivating project behind Ninja), Ninja
is under a second for a no-op build where the equivalent Makefiles
took over ten seconds.</p>
<p>Ninja's low-level approach makes it perfect for embedding in into
more featureful build systems.
Via <a href="">gyp</a> it can build
Chrome (and v8 and WebKit etc.);
via <a href="">CMake</a> it can build LLVM and
KDE and Blender etc.</p>
<p>See <a href="">the
extensive manual for more</a>: philosophical background, whether and
how you can use Ninja for your project, platform support, and details
about the language semantics.</p>
<h2>Getting Ninja</h2>
<pre>$ git clone git://
$ cat ninja/README</pre>
<h2>Installing via <a href="">MacPorts</a></h2>
<pre>$ sudo port install ninja</pre>
<div id=sidebar>
<p><a href='manual.html'>Manual</a></p>
<p><a href=''>Mailing
<p><tt>#ninja-build</tt> on <tt></tt></p>
<p><a href=''>Github repo</a></p>
<p><a href='doxygen/'>Source
Jump to Line
Something went wrong with that request. Please try again.