source: chapter08/ninja.xml@ 4640b37d

11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 bdubbs/gcc13 multilib renodr/libudev-from-systemd trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/update-glibc
Last change on this file since 4640b37d was 4640b37d, checked in by Xi Ruoyao <xry111@…>, 17 months ago

ninja: style "ninja" (for the program) with <command>

Or the mix up of "ninja" and "Ninja" will seem puzzling...

  • Property mode set to 100644
File size: 4.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-system-ninja" role="wrap">
9 <?dbhtml filename="ninja.html"?>
10
11 <sect1info condition="script">
12 <productname>ninja</productname>
13 <productnumber>&ninja-version;</productnumber>
14 <address>&ninja-url;</address>
15 </sect1info>
16
17 <title>Ninja-&ninja-version;</title>
18
19 <indexterm zone="ch-system-ninja">
20 <primary sortas="a-Ninja">Ninja</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>Ninja is a small build system with a focus on speed.</para>
27
28 <segmentedlist>
29 <segtitle>&buildtime;</segtitle>
30 <segtitle>&diskspace;</segtitle>
31
32 <seglistitem>
33 <seg>&ninja-fin-sbu;</seg>
34 <seg>&ninja-fin-du;</seg>
35 </seglistitem>
36 </segmentedlist>
37
38 <tip revision="sysv">
39 <para>This section is not strictly required when LFS does not use
40 systemd. On the other hand, Ninja, along with Meson, makes
41 a powerful build system combination,
42 which will probably be used more and more often. It is required for
43 several packages in <ulink url="&blfs-book;">the BLFS
44 book</ulink>.</para>
45 </tip>
46
47 </sect2>
48
49 <sect2 role="installation">
50 <title>Installation of Ninja</title>
51
52 <para>When run, <command>ninja</command> normally utilizes the greatest
53 possible number of processes in parallel. By default this is the number of cores on the system,
54 plus two. This may overheat the CPU, or make the system run out
55 of memory. When <command>ninja</command> is invoked from the command line, passing the -jN parameter
56 will limit the number of parallel processes. Some packages
57 embed the execution of <command>ninja</command>, and do not pass the -j parameter on to it.</para>
58
59 <para>Using the <emphasis>optional</emphasis> procedure below allows a user to
60 limit the number of parallel processes via an environment variable,
61 NINJAJOBS. <emphasis role="bold">For example</emphasis>, setting:
62
63 <screen>export NINJAJOBS=4</screen>
64
65 will limit <command>ninja</command> to four parallel processes.</para>
66
67 <para>If desired, make <command>ninja</command> recognize the environment variable
68 NINJAJOBS by running the stream editor:</para>
69
70<screen><userinput remap="pre">sed -i '/int Guess/a \
71 int j = 0;\
72 char* jobs = getenv( "NINJAJOBS" );\
73 if ( jobs != NULL ) j = atoi( jobs );\
74 if ( j > 0 ) return j;\
75' src/ninja.cc</userinput></screen>
76
77 <para>Build Ninja with:</para>
78
79<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
80
81 <variablelist>
82 <title>The meaning of the build option:</title>
83
84 <varlistentry>
85 <term><parameter>--bootstrap</parameter></term>
86 <listitem>
87 <para>This parameter forces Ninja to rebuild itself for the current
88 system.</para>
89 </listitem>
90 </varlistentry>
91
92 </variablelist>
93
94 <para>To test the results, issue:</para>
95
96<screen><userinput remap="test">./ninja ninja_test
97./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
98
99 <para>Install the package:</para>
100
101<screen><userinput remap="install">install -vm755 ninja /usr/bin/
102install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
103install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja</userinput></screen>
104
105 </sect2>
106
107 <sect2 id="contents-ninja" role="content">
108 <title>Contents of Ninja</title>
109
110 <segmentedlist>
111 <segtitle>Installed programs</segtitle>
112
113 <seglistitem>
114 <seg>ninja</seg>
115 </seglistitem>
116 </segmentedlist>
117 <variablelist>
118 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
119 <?dbfo list-presentation="list"?>
120 <?dbhtml list-presentation="table"?>
121
122 <varlistentry id="ninja">
123 <term><command>ninja</command></term>
124 <listitem>
125 <para>is the Ninja build system</para>
126 <indexterm zone="ch-system-ninja ninja">
127 <primary sortas="b-ninja">ninja</primary>
128 </indexterm>
129 </listitem>
130 </varlistentry>
131
132 </variablelist>
133
134 </sect2>
135
136</sect1>
137
Note: See TracBrowser for help on using the repository browser.