8.51. Ninja-1.10.2

#### Linux From Scratch - Version 11.1

### Chapter 8. Installing Basic System Software

- Prev

  Python-3.10.2

- Next

  Meson-0.61.1

- Up
- Home

# 8.51. Ninja-1.10.2

Ninja is a small build system with a focus on speed.

Approximate build time: 0.2 SBU
Required disk space: 64 MB

### Tip

This section is not strictly required for LFS if not using systemd. On the other hand, ninja associated to meson makes a powerful build system combination, which is expected to be used more and more often. It is required for several packages in the BLFS book.

## 8.51.1. Installation of Ninja

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.

Using the optional procedure below allows a user to limit the number of parallel processes via an environment variable, NINJAJOBS. For example, setting:

    export NINJAJOBS=4

will limit ninja to four parallel processes.

If desired, add the capability to use the environment variable NINJAJOBS by running:

    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

Build Ninja with:

    python3 configure.py --bootstrap

The meaning of the build option:

`--bootstrap`

  This parameter forces ninja to rebuild itself for the current system.

To test the results, issue:

    ./ninja ninja_test
    ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots

Install the package:

    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

## 8.51.2. Contents of Ninja

Installed programs: ninja

### Short Descriptions

ninja | is the Ninja build system

- Prev

  Python-3.10.2

- Next

  Meson-0.61.1

- Up
- Home