• Imagix 4D ユーザガイド
  • 目次

ステップ 2 - ターゲットを Makefile に追加する解析方法

ソフトウェアのビルドに make を使用している場合、Makefile にはソースファイルと、それに関連するプリプロセッサのオプションに関わる情報が格納されます。ターゲットを Makefile に追加する本解析方法では既存の定義を使用することによって、この情報を活用します。Makefile に一連のターゲットを追記することで、これを実現するのです。このため、ソフトウェアのビルドには Makefile を使用することが要求されます。この解析方法において、新しい Makefile のターゲットは順番に、実際の Imagix 4D アナライザを起動します。

Makefile にはコンパイルすべきソースファイルをリスト表示する Makefile のマクロが組み込まれおり、これにはヘッダファイルを検索するディレクトリや、コードをコンパイルする際に使用するマクロの定義が含まれます。Imagix 4D により追加されたターゲットは、このような既存のマクロ上に構成されます。また利用に際し、Imagix 4D に関連するターゲット(ステップ 2g を参照)を編集する必要が生じることがあります。

ターゲットが Makefile に追加される際、[データソース] ダイアログの [オプション] タブにある設定が、Makefile の設定に組み込まれます。これらのオプションを後で変更するには、[オプション] タブで単に変更するのではなく、プロジェクト・データを再生成する前に Makefile を編集する必要があります。

注: 本解析方法は Imagix 4D における作業過程での使用において有効な側面を持ち合わせていますが、Makefile の知識や編集作業が要求され、さらに一般的に他の方法で開始するよりもはるかに難しい処理となるため、ツールの初期評価の段階における使用は推奨されません。Makeシステムを使用している場合 Makelog から展開する解析方法の方が、より簡単に適用でき、同等の精確性を持った結果を得られることが期待されます。

ご使用にあたり

ターゲットを Makefile に追加する解析方法において、Imagix 4D は make(Windows では nmake)コマンドで Makefile を実際に呼び出します。通常は gmake や clearmake など他の方法で make を実行している場合、 それぞれに対応するように Imagix 4D を設定することが求められます。また、[オプション] ダイアログの [データ収集] セクションにある make 名のフィールド([ファイル] > [オプション] > [データ収集] > [Makefileにターゲットを追加])を変更しなければなりません。また、Windows でパスが PATH 環境変数に設定されていない場合に、実行可能な make(または nmake)が格納されたパスを指定する際にも、このダイアログを使用することがあります。

この他に、ターゲットを追加するために使用されるテンプレートをカスタマイズすることができます。説明が記載されているテンプレートは ../imagix/user/mk_trgts にありますので、適宜、ご確認ください。

2a. 追加する新しいデータソースの指定

[データソース] ダイアログ([プロジェクト] > [データソース])を開きます。既存のデータソースの設定を編集することなく、プロジェクトへ新しいデータソースを追加したい場合は、ダイアログ左側の [データソース] セレクター配下にある [データソースを追加] を選択してください。これは新しいプロジェクトとなるため編集できる既存のデータが存在せず、選択肢はこれ以外に存在しません。

2b. ターゲットを Makefile に追加する解析方法の選択

残り5つのステップでは、[データソース] ダイアログの右側を使用して作業を進めます。上部にある [データソースの種類を選択] と表示されたメニューボタンで [ソースファイル] > [makeベース] > [Makefileにターゲットを追加] を選択してください。

2c. Makefile 名の指定

Makefile タブにある Makefile フィールドに、使用する Makefile のフルパスとファイル名を入力してください。

注: Imagix 4D は、指定の Makefile を編集します。この時点で実際に使用する Makefile を編集したくない場合、通常の Makefile として imagix.mak という新しいファイルを同じディレクトリ内に作成し、imagix.mak の最初の行を次のように編集します。

include /実際に使用する Makefile のパスをここに記述
#include ではなく include を使用します。その後 Makefile フィールドに、imagix.mak のフルパスとファイル名を入力してください。

2d. Imagix 4D が Makefile に追加するターゲットのベース名の指定

本来、[Makeターゲット] フィールドの値は「imagix」のままで問題ありません。ただし、Makefile に imagix という名前のターゲットが記述されている場合には、このフィールドを使用されていない名前に変更する必要があります。

2e. コンパイラ用設定ファイルの選択

[コンパイラおよびターゲット] コンボ・ボックスで、ステップ 1でセットアップしたコンパイラ設定ファイルを選択します。ソフトウェアのコンパイラとソフトウェアのターゲット・プラットフォームの設定ファイルをまだ作成していない場合、ここで作成することを強く推奨します。この他の選択肢には [他] があり、これを選択する場合は Makefile(IMAGIX_FLAGS)で、暗黙的なオプションを指定する必要があります。

2f. Makefile を開き編集

[Makefileの編集] にチェックを付けた状態のまま、ダイアログの下部にある [データソースを追加] をクリックします。これにより Imagix 4D は Makefile にデータ収集ターゲットを追加し、さらに Makefile を開いて編集状態とします。

2g. Imagix 4D 固有のターゲットの編集

Makefile には、固有の Makefile マクロを5つ定義するセクションがあります。ベースターゲット名に imagix を指定したと仮定すると、これらの Makefile マクロの最初の3つは、IMAGIX_SRCDIR / IMAGIX_Makefile / IMAGIX_PROJDIR となります。しかし、これらの定義を無視しても問題ありません。Imagix 4D によって自動的に生成され、他の場所で該当の Makefile を複製するために作成される定義だからです(ステップ 7 を参照)。

前述の通り該当のターゲットが imagix と命名されることを前提とし、残りのマクロは IMAGIX_SOURCES と IMAGIX_FLAGS となります。この2つのマクロは修正する必要があります。

IMAGIX_SOURCES

IMAGIX_SOURCES マクロを、ロードしたいソースファイルのリストへ展開するための修正作業を行います。

通常使用する Makefile でソースのリストを検索してください。「SRCS = foo1.c foo2.c foo3.c」のように一連のソースファイルとして表示されることもあれば、「OBJS = foo1.o foo2.o foo3.o」 のように一連のオブジェクト・ファイルとして表示されることもあります。

ソースファイルが表示される場合は、ソースをリストするマクロと同等となるように IMAGIX_SOURCES を定義してください。例えば、ソースが前述のように定義されているときは、IMAGIX_SOURCES の行を「IMAGIX_SOURCES = $(SRCS)」と修正します。

オブジェクト・ファイルが表示される場合は、関連するソースファイルを評価対象するように IMAGIX_SOURCES を編集してください。例えば、オブジェクト・ファイル名がOBJSで、これに関連するソースファイルが .cc の拡張子を使用する環境では、IMAGIX_SOURCES の行を「IMAGIX_SOURCES = $(OBJS:.o.=cc)」と変更します。

IMAGIX_FLAGS

IMAGIX_FLAGS マクロを、コンパイラへ明示的に渡される -I、-D、-U オプションすべてに展開するよう修正します。

通常使用する Makefile で -I、 -D、-U オプションが定義されている箇所を検索します。-I オプションは、-D オプションとは別のマクロに収集されることが多々あります。例えば、-I オプションがすべて記述された INCLUDES とうい名前のマクロが1つあるとします。これとは別に、-D オプションがすべて記述された CCFLAGS とうい名前のマクロが、存在することがあるのです(-U オプションが使用されることは、きわめて稀です)。

IMAGIX_FLAGS の行は、使用するコンパイラ設定ファイルを指定するためにも利用されます。また、Imagix 4D アナライザへ、他のオプションを渡すために活用することも可能です。

前述の例のようなマクロが存在する場合、IMAGIX_FLAGS を「IMAGIX_FLAGS = -inc/コンパイラ設定ファイルのパスをここに記述/file.inc $(INCLUDES) $(CCFLAGS)」のように修正します。設定ファイル(ステップ 5e)で [他] を選択する場合、ここで -inc オプションは表示されませんので、この行でもコンパイラの暗黙的なオプションを指定する必要があります(step 3a を参照)。

2h. 解析処理の開始

以上により、アナライザを起動する準備が整いました。しかし、コードを分析することで -I、-D、-U オプションの指定方法に、エラーが存在することが分かります。このため、まず初めにコードの一部を1つだけロードしたい場合、(行頭に # を付加することで)IMAGIX_SOURCES の行をコメントアウトしてから、「IMAGIX_SOURCES = foo1.c」 のように新しい行を追記してください。

コードを解析する用意が整ったところで、Makefile に加えた変更を保存([ファイル] > [保存])し Makefile を閉じます。続いて [情報] ウィンドウを閉じることで、解析処理が開始されます。