dmake ユーティリティは、実行時構成ファイルを検索し、ジョブの分散先に関する情報を得ます。通常、このファイルは、.dmakerc という名前で dmake ホストのホームディレクトリに置かれている必要があります。dmake ユーティリティは、実行時構成ファイルの場所を次の順序で検索します。
コマンド行で -c オプションを使って指定されたパス名
DMAKE_RCFILE メークファイルマクロを使って指定されたパス名
DMAKE_RCFILE 環境変数を使って指定されたパス名
$(HOME)/.dmakerc
実行時構成ファイルが見つからなかった場合、dmake ユーティリティは dmake ホストに 2 つのジョブを分散します。
実行時構成ファイルは、ユーザーが編集して、構築サーバーのリストと、各構築サーバーに分散させるジョブ数を設定します。次に .dmakerc ファイルの例を示します。
# My machine. This entry causes dmake to distribute to it. falcon { jobs = 1 } hawk eagle { jobs = 3 } # Manager's machine. She's usually at meetings heron { jobs = 4 } avocet
falcon、hawk、eagle、heron、avocet は、構築サーバーのリストです。
構築サーバーごとに、分散させたいジョブ数を指定できます。デフォルトのジョブ数は 2 です。
"#"の文字で始まる行は、コメントとして解釈されます。
この構築サーバーのリストには、dmake ホストである falcon が含まれています。dmake ホストも構築サーバーとして指定することができます。実行時構成ファイルに 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 オプションの引数として指定されたグループ
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” } }