make コマンドの記述ファイルの組み込みに適したターゲットを含む出力ファイルを作成する。
-M オプションは、 -qmakedep オプションと機能的に同じです。
.d ファイルは make ファイルではありません。 .d ファイルを編集しなければ、 make コマンドで使用することはできません。このコマンドに関する詳細については、ご使用のオペレーティング・システムの資料を参照してください。
出力ファイルには、入力ファイルに対する行、および各インクルード・ファイルに対する項目が入ります。この一般形式は次のとおりです。
file_name.o:file_name.c file_name.o:include_file_name
インクルード・ファイルは、#include プリプロセッサー・ディレクティブの検索順序の規則に従ってリストされます。この規則については、『相対パス名を使用したインクルード・ファイルのディレクトリー検索順序』で説明しています。インクルード・ファイルが見つからない場合、.d ファイルには追加されません。
include 文がないファイルについては、入力ファイル名のみをリストする 1 行を含む出力ファイルが生成されます。
-o オプションを指定しない場合、 -M によって生成される出力ファイルは、現行ディレクトリーに作成されます。サフィックスとして .d が付きます。例えば、以下のコマンドでは、
xlc -M person_years.c
出力ファイル person_years.d が生成されます。
.c、.C、.cpp、または .i サフィックスが付いた入力ファイルごとに、.d ファイルが作成されます。また、-+ コンパイラー・オプションを有効にした状態で、C++ プログラムをコンパイルすると、どのファイル・サフィックスも受け入れられ、 .d ファイルが生成されます。そうでない場合は、出力の .d ファイルは、他のファイルについては一切作成されません。
例えば、以下のコマンドでは、
conversion.d および filter.d の 2 つの出力ファイル、および実行可能ファイルが作成されます。 .d ファイルは、ライブラリーについては作成されません。xlc -M conversion.c filter.c /lib/libm.a
現行ディレクトリーが書き込み可能でない場合、 .d ファイルは作成されません。 -o file_name を -M とともに指定する場合、.d ファイルは、 -ofile_name で暗黙指定されるディレクトリーに置かれます。例えば、以下の呼び出しでは、
.d 出力ファイルが /tmp/t.d に配置されます。xlc -M -c t.c -o /tmp/t.o
相対パス名を使用したインクルード・ファイルのディレクトリー検索順序