automake に非標準の C++ サフィックス ファイルの依存関係の追跡を強制的に生成させるにはどうすればよいですか? 特に、.deps ディレクトリ ファイルの内容を生成することを意味します。私もlibtoolを使用しています。
ありがとう
automake マニュアルの default に関するこのセクションを_SOURCES
見てください。次のように言っているようです。
bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo
最初のステップを通過させます。これで、automake は最初の依存関係 ( ) を探す場所を認識し、そのファイルに含まれるヘッダー ファイル名に基づいて、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 $@ $<