0

automake に非標準の C++ サフィックス ファイルの依存関係の追跡を強制的に生成させるにはどうすればよいですか? 特に、.deps ディレクトリ ファイルの内容を生成することを意味します。私もlibtoolを使用しています。

ありがとう

4

2 に答える 2

2

automake マニュアルの default に関するこのセクションを_SOURCES見てください。次のように言っているようです。

bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo

最初のステップを通過させます。これで、automake は最初の依存関係 ( ) を探す場所を認識し、そのファイルに含まれるヘッダー ファイル名に基づいて、target.fooGCC に依存関係を計算するように要求します。target.fooGCC は、推測されたオブジェクト名を吐き出し、含まれている を変換しますstem.h -> stem.o。と、ここで壁にぶち当たりました。%automake スクリプトを完全に移植可能にするために、パターンを使用することはできません。wallyk が回答で示したように、接尾辞の積み重ねを使用する必要があります。

移植性の要件によっては、それを無視して、Makefile.in で暗黙のルールを次のように定義することができます。

%.o : %.foo
    $(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<

移植性が厳密な要件である場合、多くのハッキングなしでは運が悪いと思います。

于 2009-12-17T07:47:26.950 に答える
0

暗黙のルールを追加します。たとえば*.foo、foo コンパイラを使用してファイルをコンパイルするには、次のようにしますfoocc

.foo.o:
      foocc -c -o $@ $<
于 2009-12-15T01:13:51.447 に答える