Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (78 sloc) 2.497 kb
<!DOCTYPE html>
<html>
<head>
<title>Ninja, a small build system with a focus on speed</title>
<style>
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;
}
</style>
</head>
<body>
<h1>Ninja</h1>
<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="http://martine.github.com/ninja/build.ninja.html"><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="http://code.google.com/p/gyp/">gyp</a> it can build
Chrome (and v8 and WebKit etc.);
via <a href="http://www.cmake.org/">CMake</a> it can build LLVM and
KDE and Blender etc.</p>
<p>See <a href="http://martine.github.com/ninja/manual.html">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://github.com/martine/ninja.git
$ cat ninja/README</pre>
<h2>Installing via <a href="http://macports.org">MacPorts</a></h2>
<pre>$ sudo port install ninja</pre>
</div>
<div id=sidebar>
<h2>Resources</h2>
<p><a href='manual.html'>Manual</a></p>
<p><a href='http://groups.google.com/group/ninja-build'>Mailing
list</a></p>
<p><tt>#ninja-build</tt> on <tt>irc.oftc.net</tt></p>
<p><a href='https://github.com/martine/ninja'>Github repo</a></p>
<p><a href='doxygen/'>Source
cross-reference</a></p>
</div>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.