Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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.