からman gcc
-MTtarget
依存関係の生成によって発行されるルールのターゲットを変更します。デフォルトでは、CPPはメイン入力ファイルの名前を取り、ディレクトリコンポーネントと.cなどのファイルサフィックスを削除し、プラットフォームの通常のオブジェクトサフィックスを追加します。結果がターゲットです。
-MTオプションは、ターゲットを指定した文字列とまったく同じになるように設定します。複数のターゲットが必要な場合は、それらを-MTへの単一の引数として指定するか、複数の-MTオプションを使用できます。
たとえば、-MT'$(objpfx)foo.o'は次のようになります。
$(objpfx)foo.o:foo.c
-MQ target -MTと
同じですが、Makeに特別な文字を引用します。-MQ'$(objpfx)foo.o'は
$$(objpfx)foo.o:foo.c
デフォルトのターゲットは、-MQで指定されたかのように、自動的に引用されます。
だから、あなたは例えば使うことができます
gcc -MM -MT util/test.o util/test.c
gcc -MM -MT ui/resource.o ui/resource.c
更新:
すべての依存関係を1つのファイルにまとめたい場合は、いくつかの可能性があります。
順番に実行しgcc -MM
、出力をリダイレクトできます
( gcc -MM -MT util/test.o util/test.c; gcc -MM -MT ui/resource.o ui/resource.c ) >file.deps
sedまたはperlを使用して出力を後処理できます
gcc -MM util/test.c ui/resource.c | perl -p -e 's,^(.+?)\.o: (.+?)/\1\.c.*,$2/$&,;' >file.deps
最初の出力をリダイレクトして、次のファイルをファイルに追加できます
gcc -MM -MT util/test.o util/test.c >file.deps
gcc -MM -MT ui/resource.o ui/resource.c >>file.deps