Sun WorkShop 入門

dmake ホスト

dmake ユーティリティは、実行時構成ファイルを探して、各ジョブをどこに分散させるかを判断します。通常、このファイルは dmake ホストのホームディレクトリに、.dmakerc というファイル名で置かれています。dmake ユーティリティは、以下の順序に従って、実行時構成ファイルを探します。

  1. -c オプションで、 コマンド行 (CLI) から指定されたパス名

  2. DMAKE_RCFILE という名のメークファイルマクロにより、CLI から指定されたパス名

  3. DMAKE_RCFILE 環境変数で指定されたパス名

  4. $(HOME)/.dmakerc

実行時構成ファイルが見つからない場合、dmake ユーティリティはデフォルトとして dmake ホストに 2 つのジョブを分散させます。

実行時構成ファイルをユーザー自身が編集して、各構築サーバーのリストと各構築サーバーに分散させるジョブの数を記述することができます。次に、.dmakerc ファイルの例を示します。


# 自分のマシン。この行のため、dmake は自分のマシンへジョブを分散する。
falcon     { jobs = 1 }
hawk
eagle      { jobs = 3 }
# 上司のマシン。たいてい、会議中。
heron      { jobs = 4 }
avocet

実行時構成ファイルには、複数の構築サーバーを記述することができます。これにより、状況に応じて構築サーバーを柔軟に切り換えることができます。たとえば、異なるオペレーティングシステムでの構築処理ごとに、複数の異なる構築サーバーを定義することができます。また、専用のソフトウェアがインストールされた複数の異なる構築サーバーを定義することもできます。

次に、一連の構築サーバーを記述した実行時構成ファイルの例を示します。


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 }
}

dmake ユーティリティは次の順序に従って、各ジョブを分散させます。

  1. -g オプションへの CLI 引数として指定された形式グループ

  2. DMAKE_GROUP という名のメークファイルマクロで指定された形式グループ

  3. DMAKE_GROUP 環境変数で指定された形式グループ

  4. 実行時構成ファイルで指定された最初のグループ

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"                }
}