Mesmo que ninja
não seja make
, seu ebuild deve reconhecer e respeitar qualquer parâmetro -j
especificado na variável de ambiente MAKEOPTS
. Isso significa que você deve ser capaz de forçar no máximo um trabalho via MAKEOPTS=-j1
. Você pode fazer isso de uma só vez:
MAKEOPTS=-j1 emerge -a llvm
Você também pode definir essa alteração global / permanente para todos os pacotes em seu sistema, editando a linha MAKEOPTS=
em /etc/portage/make.conf
.
No entanto, se você definir MAKEOPTS=-j1
via shell ou make.conf
, as configurações de paralelização serão aplicadas a todos os pacotes que emerge
instala. Se você quiser aplicá-lo apenas para aquele pacote, você pode criar o arquivo chamado /etc/portage/env/sys-devel/llvm
(criar quaisquer diretórios ausentes, se necessário) e colocar estes conteúdos nele:
MAKEOPTS=-j1
Isso aplicará a variável somente ao próprio pacote llvm.
Como fazer isso no shell:
mkdir -p /etc/portage/env/sys-devel
echo MAKEOPTS=-j1>>/etc/portage/env/sys-devel/llvm
Ninja e MAKEOPTS
No Gentoo, porque as pessoas confiam em MAKEOPTS=-j«n»
para controlar o número de empregos, vários eclasses e ebuilds mapearão o parâmetro -j
desta variável para o equivalente do sistema de construção acutal em uso. Você pode ver isso em eclass/ninja-utils.eclass
(que é usado por cmake-utils.eclass
, que é usado por llvm
). Esse fragmento extrai apenas o parâmetro -j
e passa-o para ninja
porque ninja
suporta esse parâmetro, embora possa não suportar outras coisas que as pessoas colocam em MAKEOPTS
.
Isenção de responsabilidade: na verdade, eu não testei isso com a última llvm
ebuild. Por favor, comente se existem problemas com esta resposta!