Ninja - небольшая система сборки ориентированная на скорость.
Этот раздел не обязателен, если LFS не использует systemd. С другой стороны, Ninja вместе с Meson составляет мощную комбинацию систем сборки, которая, вероятно, будет использоваться все чаще и чаще. Ninja требуется для нескольких пакетов в книге BLFS.
При запуске ninja обычно использует максимальное количество процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых случаях это может привести к перегреву процессора или нехватке памяти в системе. Когда ninja вызывается из командной строки, передача параметра -jN ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение ninja и параметр -j не передается.
Использование приведенной ниже необязательной процедуры позволяет пользователю ограничить количество параллельных процессов с помощью переменной окружения NINJAJOBS. Пример, настройки:
export NINJAJOBS=4
ограничит ninja четырьмя параллельными процессами.
По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив следующую команду:
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
Соберите Ninja с помощью команды:
python3 configure.py --bootstrap
Значение параметров сборки:
--bootstrap
Этот параметр перестраивает Ninja под текущую систему.
Чтобы протестировать пакет, выполните:
./ninja ninja_test ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
Установите пакет:
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