Sun WorkShop では、同時に複数の構築ジョブを実行することができます。この章では、時間で 1 つのアプリケーションを構築する方法と 、「構築」ウィンドウや Sun WorkShop エディタで構築エラーを修正する方法について説明します。
この章は、次の各節で構成されています。
Sun WorkShop でプログラムを構築すると、実際には WorkShop ターゲットが構築されます。WorkShop ターゲットは、以下の要素で構成されています。
構築ディレクトリ − 構築プロセスを起動するディレクトリ。メークファイル用のデフォルトディレクトリでもあります。
構築コマンド − make ユーティリティを起動するコマンド。メークファイルを読み取り、make のターゲットを構築します。
メークファイル − make のターゲットの更新方法を記述したエントリが格納されているファイル。更新は、どのファイルに依存するか (依存関係) に基づいて行われます。各依存関係が make のターゲットになるので、独自の依存関係を持たせることができます。ターゲットとファイルの依存関係や下位依存関係によってツリー構造が形成され、make ターゲットを再構築するかどうかが決定します。
構築 (make) のターゲット − 特定のメークファイルに格納されている指示 (規則) に基づいて構築されるオブジェクト。make は、メークファイルから、この構成方法を認識します。make のターゲットには、all や clean があります。通常、メークファイルは、デフォルトターゲットが最も一般的なターゲットになるように設計されています。
構築された WorkShop ターゲットは、「構築」メニューのリストと、「ターゲットを編集」コマンドにある WorkShop ターゲットのリストに追加されます。構築を開始すると、Sun WorkShop は、ターゲットリスト中の最初のターゲットを構築します。
make ユーティリティ、メークファイル、make ターゲットの詳細については、付録 B 「make ユーティリティとメークファイル」を参照してください。
「構築」ウィンドウには、プログラムのコンパイルに関する情報が表示されます。Sun WorkShop メインメニューから「構築」⇒「構築ウィンドウの表示」を選択するか、構築の操作を開始すると、「構築」ウィンドウが開きます。
「構築」ウィンドウから以下の操作を行うことができます。
実行中の構築の停止
構築パラメータの編集
構築出力の別ファイルへの保存
構築エラーの表示
図 4-1 に「構築」ウィンドウを示します。
「構築」メニュー |
一般的な構築処理のコマンドを実行することができます。 |
「編集」メニュー |
データの蓄積や構築出力表示区画の消去を行うコマンドを実行することができます。 |
「表示」メニュー |
構築出力表示区画に表示された構築エラー間を移動したり、分散メークの実行中に複数の構築プロセスに関する情報を表示することができます。 |
「構築」ボタン |
現在の WorkShop ターゲットの構築を開始します。 |
「構築を中止」ボタン |
進行中の構築を中止します。 |
「前のエラー」ボタン |
構築出力表示区画でカーソルを前の構築エラーに移動し、そのエラーの位置をテキストエディタに表示します。 |
「次のエラー」ボタン |
構築出力表示区画で、カーソルを次の構築エラーに移動し、そのエラーの位置をテキストエディタに表示します。 |
「分散メークのジョブグラフ」ボタン |
「分散メークのジョブグラフ」ウィンドウを開きます。 |
「ディレクトリ」フィールド |
現在の構築ディレクトリのパス名を表示します。 |
「ターゲット」フィールド |
現在の make ターゲットの名前を表示します。 |
構築出力表示区画 |
現在の構築操作の出力を表示します。 |
構築情報フィールド |
現在の構築に関する情報を表示します。 |
構築コマンド、メークファイル、ターゲットを指定しなくても、構築を開始することができます。また、make オプションや構築モードを指定したり、メークファイルマクロを無効化したり、環境変数を編集することによって、構築をカスタマイズすることもできます。「構築のカスタマイズ」を参照してください。
構築パラメータは、「ターゲットの新規定義」ダイアログボックスと「ターゲットの編集」ダイアログボックスで指定します。2 つのダイアログボックスは基本的には同一ですが、前者では新しい WorkShop ターゲットを指定し、後者では既存の WorkShop ターゲットを編集します。図 4-2 に、「ターゲットの新規定義」ダイアログボックスを示します。
「ディレクトリ」テキストフィールド |
構築ディレクトリのパスを入力します。ブラウズボタンをクリックして選択することもできます。 |
「メークファイル」テキストフィールド |
メークファイル (デフォルトのファイル名は makefile または Makefile) を指定します。ブラウズボタンをクリックして選択することもできます。 |
「ターゲット」テキストフィールド |
make ターゲットを指定します。ブラウズボタンをクリックして選択することもできます。 |
ブラウズボタン (...) |
構築ディレクトリ、メークファイル、make ターゲットを選択するためのダイアログボックスを表示します。 |
「コマンド」テキストフィールド |
make コマンドを入力します。デフォルトのコマンドは dmake です。詳細については、「分散構築の実行」を参照してください。 |
「オプション」ボタン |
「メークオプション」ダイアログボックスを開きます (「make オプションの指定」を参照)。このダイアログボックスでは、オプションを使って構築のパラメータを変更することができます。 |
「マクロ」ボタン |
「マクロ作成」ダイアログボックスを開きます (「メークファイルマクロの使い方」を参照)。このダイアログボックスでは、構築に使用するマクロの追加、変更、削除が可能です。 |
「環境変数」ボタン |
「環境変数」ダイアログボックスを開きます (「環境変数の使い方」を参照)。構築に使用する環境変数の追加、変更、削除が可能です。 |
「適用」ボタン |
構築パラメータを適用します。 |
「了解」ボタン |
構築パラメータを適用し、ダイアログボックスを閉じます。 |
「構築」ボタン |
構築パラメータを適用し、ターゲットを構築します。 |
「取り消し」ボタン |
変更を適用しないでダイアログボックスを閉じます。 |
「ヘルプ」ボタン |
ダイアログボックスのオンラインヘルプを表示します。 |
Sun WorkShop には、デフォルトのメークファイル名 (makefile)、デフォルトの構築ターゲット、デフォルトの make コマンド dmake が用意されています (「分散構築の実行」を参照してください)。このため、構築コマンド、メークファイル、ターゲットを指定しなくても構築を開始することができます。ただし、構築ディレクトリの名前は指定する必要があります。
「ターゲットの新規定義」ダイアログボックスの「メークファイル」と「ターゲット」テキストフィールドには、<デフォルト> という値が入っています。特定のメークファイルや構築ターゲットを指定しないと、構築ディレクトリ内で makefile というメークファイルが検索され、そのメークファイル内の最初の構築ターゲットの構築が行われます。ただし、makefile という名前のファイルよりも新しい SCCS 履歴ファイル (s.makefile) があるときは、最新バージョンの s.makefile が使用されます。makefile が存在しない場合は、Makefile という名前のファイルの構築が行われます。より新しい SCCS 履歴ファイル (s.Makefile) があるときは、s.Makefile の最新バージョンが使用されます。
デフォルトの構築値を使用してプログラムを構築するには、次の手順に従ってください。
「構築」ウィンドウの「ディレクトリ」フィールドで、構築ディレクトリセットが正しいことを確認します。
現在の構築ディレクトリが正しければ、Sun WorkShop のメインウィンドウや「構築」ウィンドウで「構築」ボタンを押すか、「構築」⇒「構築」を選択します。または、ウィンドウの「構築」メニューから WorkShop ターゲットを選択します。
「ディレクトリ」フィールドに構築ディレクトリが表示されていない場合や、構築ディレクトリを変更したい場合は、「構築」⇒「新規ターゲット」を選択して「ターゲット新規定義」ダイアログボックスを開き、「ディレクトリ」テキストフィールドに構築パスを入力します。
ブラウズボタンをクリックして、「構築ディレクトリ設定」ダイアログボックスでディレクトリを選択することもできます。「了解」をクリックすると、選択したディレクトリが「ディレクトリ」テキストフィールドに読み込まれます。「ターゲットの新規定義」ダイアログボックスの下部にある「構築」ボタンをクリックしてください。
構築の出力は、構築ウィンドウの構築出力表示区画に表示されます。「構築」ウィンドウの「構築を中止」ボタンをクリックすると、構築処理が停止します。
次回「構築」ウィンドウを開くときは、最後に構築ジョブを実行したディレクトリが構築ディレクトリに設定され、そのパス名が「ディレクトリ」フィールドに表示されます。
構築したいディレクトリの名前を入力して「適用」をクリックします。
「構築ディレクトリ設定」ダイアログボックスから別のディレクトリを選択することもできます。構築ディレクトリを指定していないと、「ディレクトリ」フィールドに現在表示されているディレクトリ内で構築が試行されます。ディレクトリが表示されていない場合は、エラーメッセージが表示されます。
「メークファイル」テキストフィールドにメークファイルの名前を入力します。
現在の構築ディレクトリにある別のメークファイルを選択したい場合、「メークファイル」テキストフィールドにメークファイル名を入力するか、「メークファイル選択」ダイアログボックスでメークファイルを選択して、「了解」をクリックします。
「ターゲット」テキストフィールドに構築ターゲットの名前を入力します。
「ターゲット」テキストフィールドに構築ターゲット名を入力するか、「ターゲット選択」ダイアログボックスで現在のメークファイル内の別のターゲットを指定して、「了解」をクリックします。
「コマンド」テキストフィールドに構築コマンドの名前を入力します。
make、dmake 以外の構築コマンドを指定する場合は、「コマンド」テキストフィールドに、コマンドとともに引数を指定することができます。「環境変数」ダイアログボックスで指定した環境変数に対応する setenv コマンド、構築コマンド、「メークオプション」および「マクロ作成」ダイアログボックスで指定した任意の make オプションの順に指定してください。
PATH 環境変数に構築コマンドが含まれない場合は、コマンドの絶対パスを指定する必要があります。
「ターゲットの編集」ダイアログボックス内の「構築」ボタンをクリックすると、指定した設定を使って構築処理を開始します。
構築の出力は、「構築」ウィンドウの構築出力表示区画に表示されます。構築処理を停止したい場合は、「構築」ウィンドウの「構築を中止」ボタンをクリックします。
構築出力の内容は、構築ジョブを実行するたびに、構築出力表示区画から消去されます。以前の構築出力を保持したい場合は、「前の結果を消去しない」スイッチをオンにします。
構築出力を収集するには、「編集」⇒「前の結果を消去しない」を選択します。
「前の結果を消去しない」コマンドで、スイッチのオンとオフを切り替えます。構築が実行されると、その構築の出力は以前の構築出力の下に表示されます。区画をスクロールすると、これまでの構築出力を確認できます。構築ジョブを識別するために、各構築の出力は構築ターゲットの構築パスと名前で始まります。
構築出力ログを消去するには、「編集」⇒「結果を消去」を選択します。
出力情報をファイルに保存すると、1 つ以上の構築ジョブの構築出力情報の履歴を保持できます。
構築出力を保存するには、次の手順に従ってください。
既存の WorkShop ターゲットを編集するには、まず「構築」⇒「ターゲットの編集」を選択し、リストから WorkShop ターゲットを選択します。すると「ターゲットの編集」ダイアログボックスが開き、構築ディレクトリ、メークファイル、構築ターゲット、構築コマンドの現在の設定が表示されます。「ターゲットの編集」ダイアログボックスの各フィールドは、「デフォルト以外の値を使った構築」の説明に従って編集できます。「構築」をクリックすると、新しい設定で WorkShop ターゲットが再構築されます。
「構築」メニューの WorkShop ターゲットリストと「ターゲットの編集」リストからターゲットを削除することができます。
ターゲットを削除するには、次の手順に従ってください。
Sun WorkShop メインウィンドウまたは「構築」ウィンドウで、「構築」⇒「メニューからターゲットを削除」を選択します。
「メニューからターゲットを削除」ダイアログボックスのリストから、ターゲットを 1 つ以上選択します。
Control キーを押しながら、ターゲット名をクリックすると選択できます。
「了解」をクリックします。
make オプションを変更したり、構築モードを指定したり、メークファイルマクロや環境変数を使用することによって、構築をカスタマイズすることができます。構築をカスタマイズするには、まず「構築」⇒「ターゲットの編集」を選択し、リストから WorkShop ターゲットを選択します。「ターゲットの編集」ダイアログボックスが開いたら、変更を加えて「構築」をクリックします。すると、新しい設定で WorkShop ターゲットが再構築されます。
表 4-1 の「オプション」ダイアログボックスを使って make オプションを指定することができます。
「カテゴリ」プルダウンリスト |
make オプションを選択することができます。 |
「了解」ボタン |
変更を適用して、ダイアログボックスを閉じます。 |
「適用」ボタン |
変更を適用します。このときダイアログボックスは開いたままにしておきます。 |
「取り消し」ボタン |
変更を適用しないでダイアログボックスを閉じます。 |
「ヘルプ」ボタン |
ダイアログボックスのオンラインヘルプを表示します。 |
表 4-1 に、このダイアログボックスから設定可能な make オプションを示します。
表 4-1 「メークオプション」ダイアログボックスで設定可能なオプション
カテゴリ |
オプション |
---|---|
基本 |
コマンド行を表示するが、実行はしない (-n)。 |
|
エラーが生じた場合は、そのターゲットに依存しない依存関係に対して構築処理を継続する (-k)。 |
コマンドの実行と表示 |
make がターゲットの再構築を選択する理由を表示する。ここでは、より新しいすべての依存関係が表示される。make 表示オプションは、MAKEFLAGS 環境変数からも読み取られる (-d)。 |
|
依存関係の確認と処理に関する詳細な情報を表示する (-ss)。 |
|
読み込まれるメークファイルのテキストが表示される (-D)。 |
|
メークファイル、make.rules ファイル、状態ファイルのテキストと、すべての隠し依存関係のレポートを表示する (-DD)。 |
|
サイレントモード。コマンド行を実行する前に表示しない。特殊機能ターゲット .SILENT: と同じ (-s)。 |
実行せず表示だけするためのオプション |
マクロの定義とターゲットの記述の完全なセットを出力する (-p)。 依存関係をレポートするだけで、構築はしない (-P)。 |
|
質問モード。ターゲットファイルが最新のものであるかどうかに応じて、make はゼロまたはそれ以外の状態コードを返す (-q)。 |
その他 |
ターゲットファイルの規則を実行する代わりに、ターゲットファイルを処理する (ターゲットファイルの表示を更新する)。複数のユーザーがファイルを保守していると、この手順は危険を伴うことがある。このオプションを指定すると、メークファイルに.KEEP_STATE: ターゲットがある場合に、規則が実行されたかのように状態ファイルが更新される (-t)。 |
|
デフォルトのメークファイルのデフォルトの規則 /usr/share/lib/make/make.rules を使用しない (-r)。 |
|
環境変数によって、メークファイル内のマクロ定義を無効にする (-e)。 |
|
コマンドが返すエラーコードを無視する。特殊関数ターゲット .IGNORE: と同じ (-i)。 |
分散メーク |
モード: 実行する make プロセスのタイプを逐次モード、並列モード、分散モードの中から選択する (図 4-3「構築モードの指定」を参照) (-m)。 |
|
最大ジョブ数: 構築サーバーに分散されるジョブの最大数を指定する (-j)。 |
|
実行時の構成ファイル: 実行時構成ファイルを指定する。 |
|
構築サーバーグループ: ジョブの分散先のサーバーグループ名を指定する。 |
|
一時出力ディレクトリ: 一時出力の書き込み先のディレクトリ名を指定する。 |
make オプションを指定するには、次の手順に従ってください。
「オプション」をクリックして、「メークオプション」ダイアログボックスを開きます。
「オプション」ダイアログボックスから必要なオプションを選択します。
「カテゴリ」プルダウンリストをクリックして、make オプションのカテゴリを選択します。「メークオプション」ダイアログボックスでは、make および dmake のオプションをすべて使用することができます。分散メークのオプションについては、「構築モードの指定」を参照してください。
「構築」をクリックしてオプションを適用し、構築を開始します。
「構築」メニューの「新規ターゲット」コマンドから「ターゲットの新規定義」ダイアログボックスを開いて make オプションを指定することもできます。
dmake のデフォルト構築モードを逐次モードから並列モード、分散モードに変更できます。
「オプション」をクリックして、「オプション」ダイアログボックスを開きます。
「カテゴリ」リストから、「分散メーク」を選択します。
必要な構築モードをクリックして、「オプション」ダイアログボックス (図 4-4) のテキストフィールドに入力します。
「構築」をクリックしてオプションを設定し、構築を開始します。
逐次モードで構築するには、「逐次」ラジオボタンをクリックします。テキストフィールドに入力する必要はありません。
並列モードで構築するには、「並列」ラジオボタンをクリックした後、実行する構築ジョブの最大数を「最大ジョブ数」テキストフィールドに指定します。ジョブの最大数を指定しないと、dmake はデフォルト値である 2 を使用します。
分散モードで構築するには、「分散」ラジオボタンをクリックした後、実行する構築ジョブの最大数を「最大ジョブ数」テキストフィールドに指定します。ジョブの最大数を指定しないと、dmake はグループ内のサーバに対して指定されたジョブの合計数を使用します。
「実行時の構成ファイル」テキストフィールドに設定されているデフォルトの名前やパスを使用しない場合には、使用する .dmakerc ファイルの名前やパスを入力します。 .dmakerc ファイルについては、「.dmakerc ファイル」を参照してください。
「構築サーバーグループ」テキストフィールドにグループ名を入力しない場合、dmake は .dmakerc ファイルのリストから最初のグループを選択して使用します。分散モードで実行しているとき、dmake は次のグループ (優先順位の高い順) にジョブを分散させます。優先順位は次のように決められています。
-g オプションの引数としてコマンド行で指定されたグループ
DMAKE_GROUP メークファイルマクロで指定されたグループ
DMAKE_GROUP 環境変数で指定されたグループ
実行時構成ファイルで指定された最初のグループ
「一時出力ディレクトリ」テキストフィールドに設定されたデフォルトの名前やパスを使用しない場合には、出力ディレクトリの名前やパスをこのフィールドに入力します。
分散構築の詳細については、「分散構築の実行」を参照してください。
メークファイルマクロを使用すると、記述ファイル内に繰り返し出現するファイルオプションやコマンドオプションを簡単に参照できます。マクロの定義については、付録 B 「make ユーティリティとメークファイル」 を参照してください。
「マクロ作成」ダイアログボックス (図 4-5 を参照) で、WorkShop ターゲットの「持続的構築マクロ」リストにメークファイルマクロを追加したり、削除して、リスト中のメークファイルマクロに値を割り当て直すことができます。また、メークファイルに現在定義されているマクロをリストに追加して、元々の値を無効にすることもできます。
「持続的構築マクロ」リスト中のすべてのマクロは、ワークセットとともに保存されます。
「マクロ作成」ダイアログボックスを開くには、「ターゲットの編集」ダイアログボックスで「マクロ」をクリックします。
「持続的構築マクロ」区画 |
ワークセットとともに保存されるマクロを一覧する。 |
「詳細」ボタンと「隠す」ボタン |
「フィルタを通す」テキストフィールドと「メークファイルマクロ」リストが表示されます。「隠す」では、リストの区画を閉じます。 |
「<<追加」ボタン |
「メークファイルマクロ」リストのマクロを「持続的構築マクロ」リストに追加します。 |
「名前」テキストフィールド |
新しいマクロに名前を割り当てたり、「持続的構築マクロ」リストで選択されているマクロの名前を変更します。 |
「値」テキストフィールド |
「名前」テキストフィールドで名前を付けたマクロに値を割り当てます。 |
「追加」ボタン |
「名前」と「値」のテキストフィールドで定義されているマクロを「持続的構築マクロ」リストに追加します。 |
「変更」ボタン |
「名前」と「値」のテキストフィールドの値を、「持続的構築マクロ」リストで選択されているマクロに適用します。 |
「削除」ボタン |
「持続的構築マクロ」リストで選択されているマクロを削除します。 |
「すべてを削除」ボタン |
「持続的構築マクロ」リスト内のすべてのマクロを削除します。 |
「消去」ボタン |
「名前」と「値」のテキストフィールドを消去します。 |
「フィルタを通す」テキストフィールド |
「メークファイルマクロ」リストにフィルタをかけるための検索パターンを入力します。 |
「メークファイルマクロ」リスト |
現在のワークセットのメークファイルに定義されているマクロを一覧表示します。 |
「了解」ボタン |
変更を適用して、ダイアログボックスを閉じます。 |
「適用」ボタン |
変更を適用して、ダイアログボックスは開いたままにしておきます。 |
「取り消し」ボタン |
変更を適用しないで、ダイアログボックスを閉じます。 |
「ヘルプ」ボタン |
ダイアログボックスのオンラインヘルプを表示します。 |
「持続的構築マクロ」リストにマクロを追加するには、次の手順に従ってください。
「名前」テキストフィールドにマクロの名前を入力します。
「値」テキストフィールドにマクロの値を入力します。
間違えて入力した場合は、「消去」をクリックして「名前」と「値」のテキストフィールドからエントリを削除します。
「<<追加」をクリックして、リストに新しいマクロを追加します。
上記の 3 つの手順を繰り返して、他のマクロをすべて追加します。
「了解」をクリックして、ダイアログボックスを閉じます。
「持続的構築マクロ」リストからマクロを削除するには、次の手順に従ってください。
「持続的構築マクロ」リストからマクロの値を変更するには、次の手順に従ってください。
リストからマクロを選択します。
「値」テキストフィールドに新しい値を入力して、「変更」をクリックします。
「了解」をクリックして変更を確定し、ダイアログボックスを閉じます。
「ターゲットの編集」ダイアログボックスをクリックして、新しい値で構築を開始します。
「持続的構築マクロ」リストに表示されているマクロ定義と同じ名前のマクロがメークファイルにある場合、メークファイルの方のマクロは無効になります。
現在のマクロ定義を確認するには、「詳細」をクリックして、「メークファイルマクロ」一覧を開きます。メークファイルで定義されているマクロのうち、構築ターゲットと関連するものがすべて表示されます。また、「フィルタを通す」テキストフィールドを使用すれば、リストにフィルタをかけることができます。
メークファイルマクロの値を無効にするには、次の手順に従ってください。
「メークファイルマクロ」リストからマクロを選択します。
「<<追加」をクリックして、「持続的構築マクロ」リストにマクロを追加します。
「値」テキストフィールドに新しい値を入力して、「変更」をクリックします。
「了解」をクリックして、変更を確定し、ダイアログボックスを閉じます。
「持続的構築マクロ」リスト中のマクロ定義が、メークファイルのマクロ定義を上書きして、ワークセットとともに保存されます。
「ターゲットの編集」ダイアログボックスで「構築」をクリックして、新しい値で構築を開始します。
構築時の環境変数を指定することができます。構築を開始すると、各環境変数に対応する setenv コマンドが構築コマンドの前に付加されます。
「環境変数」ダイアログボックスを使用して、WorkShop ターゲットの「持続的環境変数」リストに環境変数を追加したり、リストから削除することによって、リスト中の環境変数に値を割り当て直すことができます。
「持続的環境変数」リスト中のすべてのマクロは、ワークセットとともに保存されます。
プログラムを構築するための「持続的環境変数」リストの内容は、プログラムを実行するための「持続的環境変数」リストの内容とは一致していません。これについては、「環境変数の設定」を参照してください。
「環境変数」ダイアログボックスを開くには、「ターゲットの編集」ダイアログボックスで「環境変数」をクリックします。
「持続的環境変数」リストに環境変数を追加するには、次の手順に従ってください。
「名前」テキストフィールドに環境変数の名前を入力します。
「値」テキストフィールドに変数の値を入力します。
間違えて入力した場合、「消去」をクリックして「名前」と「値」のテキストフィールドからエントリを削除します。
「追加」をクリックして、「持続的環境変数」リストに環境変数を追加します。
上記の手順を繰り返して、他の環境変数を追加します。
「了解」をクリックして、ダイアログボックスを閉じます。
「持続的環境変数」リストから環境変数を削除するには、次の手順に従ってください。
「持続的環境変数」リスト内の環境変数の値を変更するには、次の手順に従ってください。
一覧から環境変数を選択します。
「値」テキストフィールドに新しい値を入力して、「変更」をクリックします。
「了解」をクリックして変更を確定し、ダイアログボックスを閉じます。
「構築」をクリックして、新しい構築環境で構築を開始します。
「持続的構築マクロ」リストに表示されている環境変数定義と同じ名前の環境変数が現在の WorkShop プロセス環境にある場合、現在の WorkShop プロセス環境の環境変数の方が無効になります。
現在の WorkShop プロセス環境の変数を確認するには、「詳細」をクリックして、「現在の環境」リストを開きます。ここには、WorkShop プロセス環境で現在定義されているすべての環境変数が表示されます。また、「フィルタを通す」テキストフィールドを使用すれば、リストにフィルタをかけることができます。
環境変数の値を無効にするには、次の手順に従ってください。
「現在の環境」リストから環境変数を選択します。
「<<追加」をクリックして、「持続的環境変数」リストに環境変数を追加します。
「値」テキストフィールドに新しい値を入力して、「変更」をクリックします。
「了解」をクリックして、変更を確定し、ダイアログボックスを閉じます。
「持続的環境変数」リスト中の環境変数定義が、現在の WorkShop プロセス環境の環境変数定義を上書きし、ワークセットとともに保存されます。
「ターゲットの編集」ダイアログボックスで「構築」をクリックして、新しい値で構築を開始します。
Sun WorkShop では、テキストエディタと構築処理が統合され、構築エラーの修正処理が効率化されています。構築に失敗すると、「構築」ウィンドウの表示区画に構築エラーが表示されます (図 4-6)。ソースファイルにエラーが含まれている場合に報告される構築エラーメッセージは、下線付きで強調表示されます。認識されないエラーは、これ以外の構成出力と一緒に、強調表示されず、下線も付かない状態で表示されます。
編集済みソースファイルの再コンパイルを構築ジョブと並行して実行しないでください。2 つのジョブの出力が、「構築」ウィンドウの表示区画で混ざり合い、ジョブの出力の識別が難しくなります。
各エラーには、エラーを含むファイルの名前、エラーが発生した行番号、エラーメッセージが表示されます。
C コンパイラのみによって発行されたエラーメッセージでは、構築エラーメッセージにグリフ () が追加されます。グリフをクリックすると、対応するエラーメッセージがポップアップウィンドウに表示されます。
FORTRAN、C++ では、グリフは表示されません。
ハイパーテキストリンクに変換できるような出力を生成できるのは、サンのコンパイラだけです。サンのコンパイラを呼び出さない構築コマンドを使用する場合は、「構築」ウィンドウに一覧表示された構築エラーからソースファイルへのリンクは表示されません。
下線付きのエラーをクリックすると、即座にテキストエディタが起動し、該当エラーを含むソースファイルが表示されます。ソースファイルのエラーが含まれる行が強調表示され、その行の左側にエラーグリフが表示されます (図 4-8 を参照)。
構築エラー間を移動する場合に、ショートカットキーの F4 (次のエラー) と Shift+F4 (前のエラー) を使用すると、テキストエディタウィンドウにフォーカスを保持しておくことができます。
「構築」ウィンドウとテキストエディタを使用して、構築エラーを簡単に修正するには、次の手順に従ってください。
「構築」ウィンドウの表示区画で、強調表示されているエラーをクリックします。
エディタウィンドウが開き、エラーを含むソースファイルが表示されます。エラーを含む行を検索する必要はありません。エディタ内でそのエラー行は強調表示されており、カーソルもすでにその行に置かれています。エラーメッセージは、テキストエディタのメッセージ表示領域にも表示されています。
テキストエディタで、ソースファイルを編集できるようにします。
ファイルが SCCS 管理下にある場合は、テキストエディタで適切なメニューコマンドを使用してチェックアウトします。
vi エディタで、「バージョン」⇒「チェックアウト」を選択する
XEmacs エディタで、「ツール」⇒「VC」⇒「Check Out File file」を選択する (file はファイル名)
GNU Emacs エディタで、「ツール」⇒「バージョン管理」⇒「チェックアウト」を選択する
エラーを含むソースファイルを編集します。
「構築」ウィンドウのツールバーにある「次のエラー」ボタンをクリックして (または、ショートカットキー F4 を使用して)、テキストエディタで次の構築エラーの位置に移動します。
「次のエラー」ボタンをクリックすると、構築出力内のエラーが順に強調表示され、テキストエディタ内の対応するソース行も強調表示されます。
編集内容をファイルに保存します。
vi エディタで、「ファイル」⇒「保存」を選択する
XEmacs エディタで、「ファイル」⇒「保存 file」を選択する (file はファイル名)
GNU Emacs エディタで、「ファイル」⇒「未保存バッファを保存」を選択する
SCCS コントロールで制御されているファイルについては、テキストエディタで適切なメニューコマンドを使ってチェックインします。
vi エディタで、「バージョン」⇒「チェックイン」を選択する
XEmacs エディタで、「ツール」⇒「バージョン管理」⇒「Check in File file」を選択する
GNU Emacs エディタで、「ツール」⇒「バージョン管理」⇒「チェックイン」を選択する
テキストエディタのツールバーにある「構築」ボタンをクリックし、再構築します。
「構築」ウィンドウのツールバーにある「構築」ボタンをクリックするか、ショートカットキー F3 を使用しても、構築を行うことができます。
「構築」ウィンドウの表示区画に出力される内容で、構築の進捗状況を確認することができます。
分散メーク (dmake) を使用すると、多数のプログラムから成る大規模なプロジェクトの構築プロセスを複数のワークステーションに分散させ、並行して処理することができます。また、マルチプロセッサシステムの場合は、複数の CPU に処理を分散させることができます。分散メークの詳細については、付録 C 「dmake ユーティリティ の使用」を参照してください。
デフォルトの Sun WorkShop 構築コマンド (dmake) には、3 種類の構築モードが用意されています。
逐次モード − ローカルホストで 1 回につきジョブを 1 つだけ実行する
並列モード − ローカルホストで複数のジョブを並行して実行する
分散モード − 複数の構築サーバーで複数のジョブを実行する
分散モードでは、多数のプログラムから成る大規模なプロジェクトの構築処理を複数のサーバーに分散させ、並行して処理することができます。dmake は、メークファイルを構文解析し、並行して構築することができるターゲットを判別するほか、指定の構築サーバーに各ターゲットの構築を分散させます。
dmake は、デフォルトでは逐次モードで実行されますが、「オプション」ダイアログボックスで並列モードか分散モードを設定できます (「make オプションの指定」を参照してください)。
初めて分散構築を実行するときは、構成ファイルを作成して、どのマシンを dmake 構築サーバーとするかを指定する必要があります。また、マシンを構築サーバーに設定する場合は、ジョブを分散させることができるように構成しておく必要があります。
構築サーバーは、dmake ホストと同じアーキテクチャーであり、dmake ホストと同じバージョンのオペレーティングシステムを稼働している必要があります。デフォルトでは、構築サーバーと dmake ホストからの dmake 実行可能ファイルへのパスは、同一であると見なされます。そうでない場合は、このサーバーの PATH 属性をカスタマイズする必要があります。詳細については、dmake(1) マニュアルページを参照してください。
.dmakerc ファイルは実行時構成ファイルです。分散構築を実行するには、実行時構成ファイルを設定する必要があります。実行時構成ファイルには、各構築サーバーのグループ (リスト) と各構築サーバーに分散されるジョブの数が記述されています。dmake ユーティリティは、このファイルを dmake ホスト上で検索して、ジョブをどの構築サーバーに分散させるかを判断します。このファイルは通常ホームディレクトリにあります。
.dmakerc ファイル内のグループ名とホスト名は、二重引用符で囲むことができます。二重引用符で囲むことで、グループ名やホスト名の一部として指定する場合に、指定できる文字列の種類が多くなります。たとえば、次に示すように、グループ名が数字で始まる場合は、二重引用符で囲んでください。
group "123_sparc"
dmake ユーティリティは、次に示す場所と順序で実行時構成ファイルを検索します。
-c オプションによって、 コマンド行 (CLI) で指定されたパス名
メークファイルマクロ DMAKE_RCFILE に指定されたパス名
環境変数 DMAKE_RCFILE に指定されたパス名
$ (HOME)&/.dmakerc
実行時構成ファイルが見つからない場合、dmake は 2 つのジョブをローカルホストに分散させます。
実行時構成ファイルの設定については、dmake マニュアルページを参照してください。
次に、構築サーバー jupiter、venus、mercury、pluto を使用する場合の単純な実行時構成ファイルの例を示します。
# 自分のマシン。dmake にジョブを分散させる。 jupiter {jobs = 1} venus # マネージャのマシン。たいてい会議中。 mercury {jobs = 4} pluto
earth { jobs = 2 } mars { jobs = 3 } group sunos4.x { host parasol host summer } 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 } }
マシンを構築サーバーとして使用するには、サーバーのファイルシステム上に構成ファイル /etc/opt/SPROdmake/dmake.conf を作成する必要があります。このファイルがない構築サーバー上では、構築ジョブを実行できません。
dmake.conf ファイルには、構築サーバー上で並行して実行可能な全ユーザーからのジョブの最大数を指定します。さらに、すべての dmake ジョブを実行する上で最適な優先順位を指定することもできます。次に示すのは、dmake.conf ファイルの例です。
max_jobs: 8 nice_prio: 5
分散メーク (任意のモードの dmake) を実行している場合、「Jobs Graph」ウィンドウを使って dmake の進行やジョブの状況を確認することができます。
グラフ中では、各構築サーバーは区別して表示されます。構築ジョブは、サーバー別のクラスタ単位でグラフ化されます。グラフには、各構築処理にかかった時間が表示されます。各ジョブは、グラフ中に線で表示されます。実行中の構築ジョブは点線、完了した構築ジョブは青色の実線、失敗した構築ジョブは赤の点線で表示されます。
「構築」ウィンドウから「分散メークのジョブグラフ」ウィンドウを開くには、「分散メークのジョブグラフ」ボタン(図 4-1) をクリックするか、「表示」⇒「分散メークのジョブグラフ」を選択します。
グラフに含まれているいずれかのジョブの一部を選択すると、ウィンドウ下部の「選択されているジョブ」区画に、構築出力を表示することができます。
現在の構築プロセスを強制終了して、すべての構築ウィンドウを閉じるには、「構築」ウィンドウで「構築」⇒「構築終了」を選択します。
現在の構築処理を強制終了しないで構築ウィンドウを閉じるには、「構築」⇒「閉じる」を選択します。