dmake ユーティリティは、実行時構成ファイルを探して、各ジョブをどこに分散させるかを判断します。通常、このファイルは dmake ホストのホームディレクトリに、.dmakerc というファイル名で置かれています。dmake ユーティリティは、以下の順序に従って、実行時構成ファイルを探します。
-c オプションで、 コマンド行 (CLI) から指定されたパス名
DMAKE_RCFILE という名のメークファイルマクロにより、CLI から指定されたパス名
DMAKE_RCFILE 環境変数で指定されたパス名
$(HOME)/.dmakerc
実行時構成ファイルが見つからない場合、dmake ユーティリティはデフォルトとして dmake ホストに 2 つのジョブを分散させます。
実行時構成ファイルをユーザー自身が編集して、各構築サーバーのリストと各構築サーバーに分散させるジョブの数を記述することができます。次に、.dmakerc ファイルの例を示します。
# 自分のマシン。この行のため、dmake は自分のマシンへジョブを分散する。 falcon { jobs = 1 } hawk eagle { jobs = 3 } # 上司のマシン。たいてい、会議中。 heron { jobs = 4 } avocet
falcon、hawk、eagle、heron、avocet は構築サーバー
各構築サーバーに分散させるジョブの数を指定
デフォルトのジョブ数は 2 です。
"#" 文字で始まる行はコメントと解釈される
構築サーバー falcon は、同時に dmake ホストにもなっています。dmake ホストを構築サーバーとして指定することもできます。実行時構成ファイルで構築サーバーの指定がないと、dmake ジョブは分散されません。
実行時構成ファイルには、複数の構築サーバーを記述することができます。これにより、状況に応じて構築サーバーを柔軟に切り換えることができます。たとえば、異なるオペレーティングシステムでの構築処理ごとに、複数の異なる構築サーバーを定義することができます。また、専用のソフトウェアがインストールされた複数の異なる構築サーバーを定義することもできます。
次に、一連の構築サーバーを記述した実行時構成ファイルの例を示します。
earth { jobs = 2 } mars { jobs = 3 } group lab1 { host falcon { jobs = 3 } host hawk host eagle { jobs = 3 } } group lab2 { host heron host avocet { jobs = 3 } host stilt { jobs = 2 } } group labs { group lab1 group lab2 } group sunos5.x { group labs host jupiter host venus { jobs = 2 } host pluto { jobs = 3 } }
group 指令によって形式上のグループを指定する
グループの各メンバーは中括弧 ({ }) で区切ります。
グループのメンバーになっている構築サーバーは省略可能な host 指令で指定
あるグループが別のグループのメンバーになっていてもかまわない
個々の構築サーバーは、構築サーバーのグループをリストした実行時構成ファイルにも記述できる
この場合、dmake はこれらの構築サーバーを「無名の」グループのメンバーとして扱います。
dmake ユーティリティは次の順序に従って、各ジョブを分散させます。
-g オプションへの CLI 引数として指定された形式グループ
DMAKE_GROUP という名のメークファイルマクロで指定された形式グループ
DMAKE_GROUP 環境変数で指定された形式グループ
実行時構成ファイルで指定された最初のグループ
dmake ユーティリティを使用すると、構築サーバーごとに異なる実行パスを指定することができます。デフォルトでは、dmake は、論理サーバー内の dmake ホストと同じ論理パス上にある dmake サポートバイナリを検索します。構築サーバーの代替パスは、たとえば次のように、ホスト属性として .dmakerc ファイルに指定することができます。
group lab1 { host falcon{ jobs = 10 , path = "/set/dist/sparc-s2/bin" } host hawk{ path = "/opt/SUNWspro/bin" }
.dmakerc ファイル内のグループ名とホスト名は、二重引用符で囲むことができます。二重引用符で囲むことで、グループ名として使用できる文字列の柔軟性が増し、英字だけでなく、数字も使用できるようになります。たとえば、次に示すように、グループ名が数字で始まる場合は、二重引用符で囲んでください。
group "123_lab" { host "456_hawk"{path = "/opt/SUNWspro/bin" } }