0

如何强制 automake 为非标准 C++ 后缀文件生成依赖跟踪?特别是我的意思是生成 .deps 目录文件内容。我也在使用 libtool。

谢谢

4

2 回答 2

2

看看automake 手册中关于 default 的这一部分_SOURCES。好像在说:

bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo

会让你迈出第一步。所以,现在 automake 知道在哪里寻找第一个依赖项(target.foo),它会要求 GCCtarget.foo根据包含在该文件中的头文件名计算依赖项。GCC 吐出推断的对象名称,转换包含的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 回答