blob: 5be498eb73db2bd7286922c1ce9fbdd2efc8423c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-ninja" role="wrap">
<?dbhtml filename="ninja.html"?>
<sect1info condition="script">
<productname>ninja</productname>
<productnumber>&ninja-version;</productnumber>
<address>&ninja-url;</address>
</sect1info>
<title>Ninja-&ninja-version;</title>
<indexterm zone="ch-system-ninja">
<primary sortas="a-Ninja">Ninja</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Ninja is a small build system with a focus on speed.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&ninja-ch6-sbu;</seg>
<seg>&ninja-ch6-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Ninja</title>
<para>When run, ninja normally runs a maximum number of processes
in parallel. By default this is the number of cores on the system
plus two. In some cases this can overheat a CPU or run a system out
of memory. If run from the command line, passing a -jN parameter
will limit the number of parallel processes, but some packages
embed the execution of ninja and do not pass a -j parameter.</para>
<para>Using the <emphasis>optional</emphasis> procedure below allows a user to
limit the number of parallel processes via an environment variable,
NINJAJOBS. <command>For example</command>, setting:
<!--Using <command> here to make the output bold. We really don't want
users setting this now and experience shows that many users blindly
copy/paste anything in a box. -->
<screen>export NINJAJOBS=4</screen>
will limit ninja to four parallel processes.</para>
<para>If desired, add the capability to use the environment variable
NINJAJOBS by running:</para>
<screen><userinput remap="pre">sed -i '/int Guess/a \
int j = 0;\
char* jobs = getenv( "NINJAJOBS" );\
if ( jobs != NULL ) j = atoi( jobs );\
if ( j > 0 ) return j;\
' src/ninja.cc</userinput></screen>
<para>Build Ninja with:</para>
<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
<variablelist>
<title>The meaning of the build option:</title>
<varlistentry>
<term><parameter>--bootstrap</parameter></term>
<listitem>
<para>This parameter forces ninja to rebuild itself for the current
system.</para>
</listitem>
</varlistentry>
</variablelist>
<para>To test the results, issue:</para>
<screen><userinput remap="test">python3 configure.py
./ninja ninja_test
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">install -vm755 ninja /usr/bin/
install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja</userinput></screen>
</sect2>
<sect2 id="contents-ninja" role="content">
<title>Contents of Ninja</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<seglistitem>
<seg>ninja</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="ninja">
<term><command>ninja</command></term>
<listitem>
<para>is the Ninja build system.</para>
<indexterm zone="ch-system-ninja ninja">
<primary sortas="b-ninja">ninja</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
|