Ninja - небольшая система сборки ориентированная на скорость.
Этот раздел необязателен, если LFS не использует systemd. С другой стороны, связка ninja/meson - это мощная система сборки, которая, скорее всего, будет использоваться все чаще и чаще. Она необходима для нескольких пакетов из книги BLFS.
При работе 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