指定した C++ プログラムに対してプリプロセッサだけを実行します。その際、メイクファイル用の依存関係を生成してその結果を標準出力に出力します (make ファイルと依存関係についての詳細は make(1) のマニュアルページを参照してください)。
ただし、-xM を指定すると、インクルードされているヘッダーの依存関係のみを報告し、関連付けられているテンプレート定義ファイルの依存関係を報告しません。メイクファイルの中で .KEEP_STATE 機能を使用して、make ユーティリティが使用する .make.state ファイルの中にあるすべての依存関係を使用することもできます。
たとえば、次のようにします。
#include <unistd.h> void main(void) {} |
この例で出力されるものは、次のとおりです。
e.o: e.c e.o: /usr/include/unistd.h e.o: /usr/include/sys/types.h e.o: /usr/include/sys/machtypes.h e.o: /usr/include/sys/select.h e.o: /usr/include/sys/time.h e.o: /usr/include/sys/types.h e.o: /usr/include/sys/time.h e.o: /usr/include/sys/unistd.h |
-xM と -xMF を指定する場合、-xMF で指定したファイルに、コンパイラはすべてのメイクファイルの依存関係情報を書き込みます。プリプロセッサがこのファイルへの書き込みを行うたびに、このファイルは上書きされます。
メイクファイルおよび依存関係についての詳細は、make(1S) のマニュアルページを参照してください。