Samurai pakken tilbyr en erstatning for Ninja pakken. Den tar sikte på full kompatibilitet.
Denne pakken fungerer for de fleste pakker som en Ninja
erstatning. Den er kjent for å fungere helt fint for 32-bit og
64-bit og med prosjekter med Rust også. Imidlertid kan den bli
påvirket av noen byggesystemer med potensielt tvetydig
avhengighetsinformasjon, noe som fører til at viktige mål blir
hoppet over som Ninja tar for seg. Hvis du oppdager at et
prosjekt prøver å inkludere en header som dette: #include "xdg-shell.h", men kan ikke, er det
sannsynligvis generert av et mål som ble hoppet over. Du kan
prøve å bruke Ninja for å se om det løser problemet.
Kjente pakker med det problemet:
gnome-keyring (kan ikke inkludere "gkm-marshal.h")
SceneFX-0.4.1 (eksempler er deaktivert,
så dette problemet kan ikke observeres, men hvis det er
aktivert, kan det ikke inkludere "xdg-shell-protocol.h")
Installer samurai ved å kjøre følgende kommandoer:
make CC=cc CFLAGS+=" -std=c99"
Nå, som root bruker:
make PREFIX=/usr install
Hvis du vil at samu
skal brukes når som helst ninja kjøres, lag en
symbolkobling som root bruker:
if [ "$(file /usr/bin/ninja | grep ELF)" ]; then
mv -v /usr/bin/ninja{,.old}
fi &&
ln -svf samu /usr/bin/ninja
samu vil ikke kjøre
på alle logiske CPU-er eller tråder som standard, i likhet med
make. Prosessen for
å få det til å gjøre er den samme: utsted -j, hvor
<x> er antallet
logiske CPU-er du ønsker å bruke, når samu (eller ninja hvis du lagde den
symbolske lenken) kjøres. Du kan unngå å måtte spesifisere det
hver gang ved å inkludere <x>SAMUFLAGS og
inkludere -j til det, som
dette:
<x>
export SAMUFLAGS=-j$(nproc)
Et triks du kan gjøre er å gjøre at SAMUFLAGS inneholder $MAKEFLAGS hvis MAKEFLAGS bare inneholder -j alternativet, som dette:
export SAMUFLAGS=$MAKEFLAGS
Hvis du vil unngå å manuelt sette SAMUFLAGS hver gang du logger inn, legg det til i
et Bash profilskript som ~/.bash_profile.