Sun WorkShop 入門

入れ子構造の分散メークの呼び出し

dmake が、さらに別の dmake コマンドを呼び出すターゲットを検出すると、並列ではなく、直列形式でターゲットが作成されます。これにより、 2 つの異なる dmake の呼び出しが、同じディレクトリ中の同じターゲットを作成することはなくなります。このような問題は、 2 つの異なるプログラムを同時に作成して、両方が同じライブラリにアクセスする場合などに起きます。それぞれの dmake の呼び出しで、必ず最新のライブラリを適用するには、dmake を繰り返し呼び出して、このライブラリを作成する必要があります。dmake ユーティリティは、CLI で $(MAKE) マクロが使用されている場合に、入れ子になった呼び出しを認識します。

入れ子のコマンドを使用した場合でも、必ず正しい結果が得られる確信があれば、.PARALLEL: 構文を使用して、並列的に処理することができます。

メークファイルの中に、並列的に実行する入れ子のコマンドが多数含まれている場合は、負荷平均化アルゴリズムのために、ローカルのマシンに割り当てられる構築ジョブが超過する場合があります。この結果、スワップ空間の不足といった別の問題が生じたり、処理負荷が高くなったりすることも考えられます。こうした問題が起きた場合は、入れ子にしたコマンドをすべて直列形式で実行するように変更してください。