コンパイルにおいてメイン・ソース・ファイルの依存関係を記述するための make コマンドの記述ファイルへの組み込みに適したターゲットを含む出力ファイルを作成する。 gcc サブオプションが指定されている場合、記述ファイルにはすべての依存関係をリストした単一のターゲットが組み込まれます。そうでない場合は、記述ファイル内にそれぞれの依存関係ごとに別々の規則があります。
>>- -q--makedep--+--------+------------------------------------>< '-=--gcc-'
gcc サブオプションは、GNU C/C++ フォーマットに一致するように、make 規則のフォーマットを制御します。
無効なサブオプションを指定すると、警告メッセージが発行され、オプションは無視されます。
-qmakedep をサブオプションなしで指定すると、機能的に -M オプションを指定することと同等です。
.d ファイルは make ファイルではありません。.d ファイルは、make コマンドに使用する前に編集する必要があります。このコマンドについて詳しくは、ご使用のオペレーティング・システムの資料を参照してください。
-o オプションを指定しない場合は、 -qmakedep オプションで生成される出力ファイルは、 現行ディレクトリーに作成されます。これには .d サフィックスが付きます。例えば、以下のコマンドでは、
xlc++ -qmakedep person_years.C
出力ファイル person_years.d が生成されます。
.d ファイルは、.c、.C、.cpp、または .i サフィックスを持つすべての入力ファイルに対して作成されます。また -+ コンパイラー・オプションを有効にして C++ プログラムをコンパイルした場合は、どのファイル・サフィックスも受け入れられ、.d ファイルが作成されます。そうでない場合は、出力 .d ファイルは他のどのファイルについても作成されません。
例えば、以下のコマンドでは、
xlc++ -qmakedep conversion.C filter.C /lib/libm.a
2 つの出力ファイル、conversion.d と filter.d (および実行可能ファイルも) 作成されます。 ライブラリーについては、.d ファイルは作成されません。
現行ディレクトリーが書き込み可能でない場合は、.d ファイルは作成されません。-o file_name を -qmakedep と共に指定すると、.d ファイルが、-ofile_name によって暗黙指定されたディレクトリーに入れられます。例えば、以下の呼び出しでは、
xlc++ -qmakedep -c t.C -o /tmp/t.o
.d 出力ファイルが /tmp/t.d に入れられます。
出力ファイルには入力ファイルのための行とそれぞれの組み込みファイルのための項目があります。 この一般形式は次の通りです。
file_name.o:include_file_name file_name.o:file_name.C
組み込みファイルは、#include プリプロセッサー・ディレクティブの 検索順序の規則に従ってリストされます。この規則については、相対パス名を使用した組み込みファイルのディレクトリー検索シーケンスに説明があります。 組み込みファイルは検出されない場合、.d ファイルに追加されません。
include 文を持たないファイルは、入力ファイル名だけをリストした 1 行を含む出力ファイルを生成します。
関連情報