Sun WorkShop 入門

基本概念

分散メーク (dmake) を使用することにより、多数のプログラムで構成される大規模なプロジェクトの構築プロセスを複数のワークステーション (マルチプロセッサシステムの場合は複数の CPU) に分散させて、同時に作業を進行させることができます。dmake ユーティリティではメークファイルの構文解析の他に、次の作業を行うことができます。

dmake ユーティリティは、make ユーティリティの拡張版として提供されています。

dmake の概念を理解するには、次の事項に関する知識が必要になります。

構成ファイル

dmake ユーティリティは、実行時構成ファイルと構築サーバー構成ファイルの 2 つを参照して、分散化の候補となる構築サーバーのジョブを特定し、各構築サーバーに分散させるジョブの数を決めます。

実行時構成ファイル

dmake ユーティリティは、dmake ホスト上で実行時構成ファイルを探して、各ジョブをどこに分散させるかを判断します。一般に、この構成ファイルは dmake ホストのホームディレクトリに、.dmakerc というファイル名で置かれています。このファイルには、一連の構築サーバーのリストと、各構築サーバーに分散させる各ジョブの数が記述されています。詳細については、「dmake ホスト」を参照してください。

構築サーバー構成ファイル

各構築サーバーのファイルシステムには、/etc/opt/SPROdmake/dmake.conf という構築サーバー構成ファイルがあります。このファイルでは、dmake の全ユーザーが各構築サーバーに分散できる dmake ジョブの最大数を指定します。さらに、すべての dmake ジョブを実行する際の優先順位を指定することもできます。

詳細については、「構築サーバー」を参照してください。

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

構築サーバー

/etc/opt/SPROdmake/dmake.conf 構成ファイルは、構築サーバーのファイルシステム中に置かれています。このファイルを使用すると、1 つの構築サーバー上で同時に実行できる dmake ジョブの最大数 (全ユーザーのジョブの合計数) を制限したり、すべての dmake ジョブを実行する際の優先順位を指定することができます。次に /etc/opt/SPROdmake/dmake.conf ファイルの例を示します。この例では、 (全 dmake ユーザーから) 1 つの構築サーバー上で実行できる dmake の最大数が 8 個に設定されます。


jobs: 8
nice_prio: 5


注 -

構築サーバーに /etc/opt/SPROdmake/dmake.conf ファイルがないと、そのサーバー上では dmake ジョブは実行できません。