非標準C ++接尾辞の依存関係追跡を自動化します
質問
非標準C ++サフィックスファイルの依存関係追跡を自動化するにはどうすればよいですか?特に、.depsディレクトリファイルコンテンツを生成することを意味します。私もLibtoolを使用しています。
ありがとう
解決
を見てみましょう Automake Manual Regaradingデフォルトのこのセクション _SOURCES
. 。言っているように見えます:
bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo
最初のステップを過ぎてしまいます。したがって、自動車は最初の依存関係をどこで探すべきかを知っています(target.foo
)、そしてそれはGCCにの依存関係を計算するように求めます target.foo
そのファイルに含まれるヘッダーファイル名に基づいています。 GCCは推測されたオブジェクト名を吐き出し、含まれているものを変換します stem.h -> stem.o
. 。そして、ここが私が壁にぶつかったところです。 Automakeスクリプトを完全にポータブルにするには、使用することはできません %
パターン。 Wallykが彼の答えで示したように、あなたは接尾辞スタッキングを使用する必要があります。
携帯性の要件に応じて、それを無視し、makefile.inの暗黙のルールを次のように定義できます。
%.o : %.foo
$(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<
移植性が厳格な要件である場合、私はあなたが多くのハッキングなしで運が悪いのではないかと心配しています。
他のヒント
暗黙のルールを追加します。たとえば、コンパイルします *.foo
FOOコンパイラを使用したファイル foocc
:
.foo.o:
foocc -c -o $@ $<
所属していません StackOverflow