Use esses exemplos para entender melhor como é possível usar o Build Catalyst para construções simples, construções paralelas e construções distribuídas.
Para construções simples (construções que não são paralelas ou distribuídas), execute o comando rafmake como a seguir:
rafmake [ -f makefile ] [ options ] ... [ targets ] ...
em que A lista a seguir fornece exemplos por sistema operacional.
% rafmake -u -f project.mk
% rafmake -v -f project.mk a.out
Y:\> rafmake INCL_DIR=C:\src\include
O comando rafmake suporta construções paralelas, que separa construções em componentes independentes que podem ser construídos ao mesmo tempo para reduzir o tempo de construção geral.
A sintaxe para executar construções paralelas é a seguinte:
rafmake -J num [ -f makefile ] [ options ] ... [ targets ] ...
em queExecutar construções paralelas fornece utilização de recurso eficiente, especialmente com processadores multicore. O ganho de desempenho das construções paralelas depende do tipo da construção. Por exemplo, no caso de uma construção com uso intensivo de CPU, o número otimizado de tarefas de construção simultâneas seria o mesmo que o número de processadores (ou núcleos). Se você especificar mais do que isso, pode não perceber um ganho de desempenho significante. Para uma construção com uso intensivo de E/S, porém, aumentar o número de tarefas paralelas reduz o tempo de construção. Tente algumas construções com números diferentes para determinar o número otimizado de tarefas de construção simultâneas para os seus recursos.
A lista a seguir fornece exemplos de construções paralelas por sistema operacional.
% rafmake -J 3 -f project.mk
Y:\> rafmake -J 5 INCL_DIR=C:\src\include software.exe
Construções paralelas podem usar recursos somente em um computador. Distribuir uma construção leva as construções paralelas um passo adiante ao distribuir a carga da construção em vários computadores.
Para distribuir uma construção, o seu ambiente deve satisfazer os seguintes requisitos:
Para todos os computadores nos quais a construção será distribuída, o mesmo código de origem deve ser acessível pelo mesmo caminho. Tipicamente, ter o código de origem em compartilhamentos montados em NFS (e montando-os no mesmo caminho em todos os computadores) garante que o mesmo diretório de origem esteja disponível em todos os computadores de construção no mesmo caminho.
Quando um usuário inicia uma construção distribuída a partir de um computador host, o comando rafmake inicia internamente o mecanismo de construção (rafbe) em todos os computadores nos quais a construção será distribuída. O mecanismo de construção é iniciado usando o comando ssh ou rsh, que é configurado na instalação do Build Catalyst. O arquivo /opt/rational/buildforge/buildcatalyst/etc/rafbe_starter é um link simbólico para o shell remoto que o usuário escolheu durante a instalação. O usuário que inicia a construção deve ser capaz de efetuar login sem uma senha em todos os computadores que estão usando o shell remoto escolhido. Ao efetuar login sem uma senha, o mecanismo de construção pode ser iniciado silenciosamente nos vários computadores. Consulte o manual dos comandos rsh ou ssh para configurar um login que não necessite de senha.
Um arquivo hosts de construção tipicamente contém várias linhas com os nomes de host ou endereços IP de muitos computadores. São nesses computadores em que as construções serão distribuídas. O arquivo também contém linhas que descrevem outras opções, como -idle num. Esse tipo de linha especifica o quão inativo um computador deve estar para que as construções sejam planejadas nos computadores que estão listados abaixo dele. Supõem-se que a inatividade seja 50 se ela não for explicitamente mencionada. Aqui está um arquivo hosts de construção de exemplo:
### Contents of build hosts file
host1.mydomain.com
-idle 25
host2.mydomain.com
host2.mydomain.com
192.168.0.200
-idle 75
host3.mydomain.com
### End of build hosts file
Nesse exemplo, a construção é distribuída para quatro computadores: host1, host2, host3 e 192.168.0.200. Supõem-se que a inatividade para o computador seja 50, porque ela não é explicitamente mencionada. Para os computadores host2 e 192.168.0.200, a inatividade é especificada como 25. Isso significa que se um desses computadores estiver menos de 75% carregado ou ocupado (ou pelo menos 25% inativo), as construções são planejadas nesse computador. Se os computadores estiverem menos de 25% inativos, as construções não serão planejadas nesses computadores. Também, o exemplo lista o computador host2 duas vezes. Como resultado, dois encadeamentos de construção paralela podem ser iniciados no computador host2. Dependendo das configurações do computador, é possível ajustar o seu arquivo de hosts de construção para usar recursos de forma otimizada para as construções.
Após criar o arquivo de hosts de construção, é possível iniciar a construção distribuída usando a seguinte sintaxe de comando:
rafmake -J num -B build_hosts_file [ -f makefile ]
[ options ] ... [ targets ] ...
O valor num para a opção -J especifica o número total de encadeamentos de construção para todos os computadores.
Sem a opção -B , o comando rafmake executaria uma construção paralela em vez de uma construção distribuída. Ao especificar a opção -B e um arquivo de hosts de construção válido, o mecanismo de construção planeja as construções distribuídas nos diferentes computadores que são especificados no arquivo hosts de construção.