Für einfache Builds (Builds, die nicht parallel oder verteilt sind) führen Sie den Befehl rafmake wie folgt aus:
rafmake [ -f Makefile ] [ Optionen ] ... [ Ziele ] ...
Dabei gilt Folgendes: Die folgende Liste enthält Beispiele nach Betriebssystem.
% rafmake -u -f project.mk
% rafmake -v -f project.mk a.out
Y:\> rafmake INCL_DIR=C:\src\include
Der Befehl rafmake unterstützt parallele Builds, die Builds in unabhängige Komponenten trennen, die gleichzeitig erstellt werden können, um die Gesamtbuildzeit zu reduzieren.
Die Syntax zur Ausführung paralleler Builds lautet:
rafmake -J Anzahl [ -f Makefile ] [ Optionen ] ... [ Ziele ] ...
Dabei gilt Folgendes:Das Ausführen paralleler Builds bewirkt eine effiziente Ressourcenauslastung, insbesondere bei Mehrkernprozessoren. Der Leistungsgewinn durch parallele Builds ist vom Buildtyp abhängig. Im Fall eines CPU-intensiven Builds entspräche z. B. die optimale Anzahl der gleichzeitig ausgeführten Buildvorgänge der Anzahl der Prozessoren (oder Kerne). Wenn Sie mehr angeben, bedeutet das möglicherweise keinen signifikanten Leistungsgewinn. Bei einem ein-/ausgabeintensiven Build wird jedoch durch Erhöhung der Anzahl paralleler Vorgänge die Buildzeit reduziert. Experimentieren Sie mit einigen Builds mit unterschiedlichen Zahlen, um die optimale Anzahl der gleichzeitig ausgeführten Buildvorgänge für Ihre Ressourcen zu ermitteln.
Die folgende Liste enthält Beispiele paralleler Builds nach Betriebssystem.
% rafmake -J 3 -f project.mk
Y:\> rafmake -J 5 INCL_DIR=C:\src\include software.exe
Parallele Builds können Ressourcen nur auf einem Computer verwenden. Das Verteilen eines Builds rückt parallele Builds einen Schritt weiter, indem die Buildlast auf mehrere Computer aufgeteilt wird.
Ihre Umgebung muss die folgenden Voraussetzungen erfüllen, damit ein Build verteilt werden kann:
Für alle Computer, auf denen der Build verteilt werden soll, muss derselbe Quellcode über denselben Pfad zugänglich sein. Normalerweise wird durch Quellcode in über NFS-Mount zugeordneten freigegebenen Verzeichnissen (und die Zuordnung dieser Verzeichnisse in demselben Pfad auf allen Computern) sichergestellt, dass dasselbe Quellenverzeichnis auf allen Build-Computern in demselben Pfad verfügbar ist.
Wenn ein Benutzer einen verteilten Build von einem Host-Computer startet, startet der Befehl rafmake intern die Build-Engine (rafbe) auf allen Computern, auf denen der Build verteilt werden soll. Die Build-Engine wird mit dem Befehl ssh oder rsh gestartet, der bei der Installation von Build Catalyst konfiguriert wird. Die Datei /opt/rational/buildforge/buildcatalyst/etc/rafbe_starter ist ein symbolischer Link zu der Remote Shell, die der Benutzer während der Installation ausgewählt hat. Der Benutzer, der den Build startet, muss sich in allen Computern, die die ausgewählte Remote Shell verwenden, ohne Kennwort anmelden können. Durch Anmeldung ohne Kennwort kann die Build-Engine auf den verschiedenen Computern im Hintergrund gestartet werden. Informationen zur Konfiguration einer Anmeldung, für die kein Kennwort erforderlich ist, finden Sie im Handbuch zu den Befehlen rsh und ssh.
Eine Build-Host-Datei enthält normalerweise mehrere Zeilen mit den Hostnamen oder IP-Adressen zahlreicher Computer. An diese Computer sollen die Builds verteilt werden. Die Datei enthält außerdem Zeilen, die andere Optionen beschreiben, z. B. -idle Anzahl. Diese Zeilenart gibt an, in welchem Maß ein Computer im Leerlauf sein muss, damit Builds auf den Computern geplant werden, die darunter aufgelistet sind. Falls nicht explizit angegeben, wird als Leerlauf 50 angenommen. Das folgende Beispiel zeigt eine Build-Host-Datei:
### Inhalt einer Build-Host-Datei
host1.mydomain.com
-idle 25
host2.mydomain.com
host2.mydomain.com
192.168.0.200
-idle 75
host3.mydomain.com
### Ende der Build-Host-Datei
In diesem Beispiel wird der Build an vier Computer verteilt: host1, host2, host3 und 192.168.0.200. Als Leerlauf für den Computer host1.mydomain.com wird 50 angenommen, weil nicht explizit angegeben. Für die Computer host2 und 192.168.0.200 ist der Leerlauf als 25 angegeben. Das heißt, wenn die Auslastung eines dieser Computer geringer als 75 % ist (oder mindestens 25 % im Leerlauf), werden Builds auf diesem Computer geplant. Wenn die Computer weniger als 25 % im Leerlauf sind, werden keine Builds auf diesen Computern geplant. In dem Beispiel ist der Computer host2 außerdem zweimal aufgelistet. Folglich können zwei parallele Build-Threads auf dem Computer host2 gestartet werden. Je nach Computerkonfiguration können Sie Ihre Build-Host-Datei feinabstimmen, um Ressourcen für Builds optimal zu nutzen.
Nach der Erstellung der Build-Host-Datei können Sie den verteilten Build mit folgender Befehlssyntax starten:
rafmake -J num -B build_hosts_file [ -f makefile ]
[ options ] ... [ targets ] ...
Der Anzahl-Wert der Option -J gibt die Gesamtzahl der Build-Threads für alle Computer an.
Ohne die Option -B würde der Befehl rafmake einen parallelen Build anstelle eines verteilten Builds ausführen. Wenn Sie die Option -B und eine gültige Build-Host-Datei angeben, plant die Build-Engine die verteilten Builds auf den verschiedenen Computern, die in der Build-Host-Datei angegeben sind.