Ninja est un petit système de construction qui met l'accent sur la rapidité.
Cette section n'est pas obligatoire si LFS n'utilise pas systemd. Cependant, Ninja associé à Meson devient un système de construction puissant, utilisé de plus en plus fréquemment. Il est requis par plusieurs paquets dans le livre BLFS.
Lorsqu'il est exécuté, ninja lance un nombre maximum de processus en parallèle. Par défaut c'est le nombre de cœurs du système plus deux. Dans certains cas, cela peut surchauffer le CPU ou épuiser la mémoire. Si ninja est exécuté depuis la ligne de commande, passer le paramètre -jN limitera le nombre de processus en parallèle, mais certains paquets incluent l'exécution de ninja et ne passent pas le paramètre -j.
Utiliser la procédure facultative ci-dessous permet à l'utilisateur de limiter le nombre de processus en parallèle via une variable d'environnement, NINJAJOBS. Par exemple initialiser :
export NINJAJOBS=4
limitera ninja à 4 processus en parallèle.
Si vous le souhaitez, ajoutez la possibilité à ninja d'utiliser la variable d'environnement NINJAJOBS en lançant l'éditeur de flux :
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
Construisez Ninja avec :
python3 configure.py --bootstrap
Voici la signification des options de construction :
--bootstrap
Ce paramètre force ninja à se reconstruire pour le système actuel.
Pour tester les résultats, lancez :
./ninja ninja_test ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
Installez le paquet :
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