Sun Studio 12: 分散メイク (dmake)

dmake ホスト

dmake は、実行を開始すると、実行時構成ファイルを検索して、ジョブを分散する場所を調べます。

一般に、このファイルは dmakerc という名前で、dmake ホスト上のユーザーのホームディレクトリにあります。

dmake は、次の場所と順序で実行時構成ファイルを検索します。

  1. -c オプションを使ってコマンド行で指定されたパス名

  2. DMAKE_RCFILE というメイクファイルのマクロを使って指定されたパス名

  3. 環境変数 DMAKE_RCFILE を使って指定されたパス名

  4. $(HOME)/.dmakerc

実行時構成ファイルが見つからない場合は、dmake は並行モードに切り替え、(デフォルトの) 2 つのジョブを dmake ホストに分散します。-j オプションまたは DMAKE_MAX_JOBS を使用してこの設定を変更することもできます。

実行時構成ファイルには、構築サーバーのリストと、各構築サーバーに分散したいジョブ数を含めることができます。

次は、単純な実行時構成ファイルの例です。


# 自分のマシン。このエントリにより dmake はこのマシンにジョブを分散します。
falcon { jobs = 1 }
hawk
eagle { jobs = 3 }
# マネージャーのマシン。マネージャーはいつも会議中です
heron { jobs = 4 }
avocet

falconhawkeagleheronavocet の各エントリが構築サーバーとして一覧表示されています。

各構築サーバーに分散したいジョブ数を指定することができます。デフォルトのジョブ数は 2 です。

"#" 文字で始まる行はコメントとして解釈されます。


注 –

この構築サーバーの一覧には、 dmake ホストでもある falcon が含まれています。dmake ホストは構築サーバーとしても指定することができます。実行時構成ファイルに falcon を含めない場合、falcon には dmake ジョブが分散されません。


実行時構成ファイルには、構築サーバーのグループも構成することができます。

こうすると、状況に応じて、構築サーバーのグループを簡単に切り替えられるという柔軟性が得られます。たとえば、異なるオペレーティングシステムでの構築用に別々の構築サーバーのグループを定義したり、特殊なソフトウェアがインストールされている構築サーバーのグループを定義したりすることができます。ただし、構築サーバーは、すべて同じアーキテクチャーで、同じ SunOS をインストールしている必要があります。

次の実行時構成ファイルには、いくつかのグループが含まれています。


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