对于简单构建(非并行或分布式的构建),请按如下方式运行 rafmake 命令:
rafmake [ -f makefile ] [ options ] ... [ targets ] ...
其中以下列表按操作系统提供了示例。
% rafmake -u -f project.mk
% rafmake -v -f project.mk a.out
Y:\> rafmake INCL_DIR=C:\src\include
rafmake 命令支持并行构建,其中将构建分离为独立的组成部分,这些组成部分可以同时构建来减少总体构建时间。
用于运行并行构建的语法如下:
rafmake -J num [ -f makefile ] [ options ] ... [ targets ] ...
其中运行并行构建可实现高效的资源利用,尤其是使用多核处理器的情况下。从并行构建实现的性能提高程度取决于构建的类型。例如,在 CPU 密集型构建的情况下,并行构建作业的最佳数量将与处理器(和核心)的数量相同。如果指定数量超过此数字,那么可能无法实现显著的性能提高。 但是,对于 IO 密集型构建,增加并行作业的数量将减少构建时间。以不同的数量尝试一些构建以确定您资源的并行构建作业的最佳数量。
以下列表按操作系统提供了并行构建的示例。
% rafmake -J 3 -f project.mk
Y:\> rafmake -J 5 INCL_DIR=C:\src\include software.exe
并行构建只能使用一台计算机上的资源。分布构建通过跨多台计算机分布构建负载来将并行构建推进一步。
要分布构建,您的环境必须符合以下需求:
对于在其上分布构建的所有计算机,必须能够以相同路径访问相同源代码。通常,在 NFS 安装的共享上具有源代码(在所有计算机上将其安装在相同路径中)将确保相同源目录在所有构建计算机上相同路径中可用。
用户从主计算机启动分布式构建时,rafmake 命令在要分布构建的所有计算机上从内部启动构建引擎 (rafbe)。使用 ssh 或 rsh 命令来启动构建引擎,该引擎在安装 Build Catalyst 时已配置。/opt/rational/buildforge/buildcatalyst/etc/rafbe_starter 文件是安装期间用户选择的远程 shell 的符号链接。启动构建的用户必须无需密码就可以登录使用所选远程 shell 的所有计算机。通过无密码登录,可以在各种计算机上静默启动构建引擎。参考 rsh 或 ssh 命令手册以设置无需密码的登录。
构建主机文件一般包含带有许多计算机的主机名或 IP 地址的若干行。这些计算机是要分布构建的位置。该文件还包含描述其他选项的行,例如 -idle num。 该类型的行指定某台计算机必须达到何等空闲程度,才能在该计算机下方列出的各计算机上调度构建。如果没有明确提及,空闲度假定为 50。以下是构建主机文件的示例:
### 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
在该示例中,将构建分布到四台计算机:host1、host2、host3 和 192.168.0.200。 host1.mydomain.com 计算机的空闲度假定为 50,因为没有明确提及该空闲度。对于 host2 和 192.168.0.200 计算机,将空闲度指定为 25。这意味着如果其中一台计算机的负载或忙碌度低于 75%(或空闲度至少为 25%),那么在该计算机上调度构建。如果计算机空闲度低于 25%,那么不会在这些计算机上安排构建。而且,该示例两次列出 host2 计算机。因此,可以在 host2 计算机上启动两个并行构建线程。根据计算机配置,您可以调节构建主机文件以最佳地将资源用于构建。
创建构建主机文件后,您可以通过使用以下命令语法来启动分布式构建:
rafmake -J num -B build_hosts_file [ -f makefile ]
[ options ] ... [ targets ] ...
-J 选项的 num 值指定所有计算机的构建线程的总数。
不使用 -B 选项,rafmake 命令将执行并行构建而不是分布式构建。指定 -B 选项和有效构建主机文件时,构建引擎在构建主机文件中指定的不同计算机上调度分布式构建。