我如何强制 automake 为非标准 C++ 后缀文件生成依赖项跟踪? 特别是我的意思是生成 .deps 目录文件内容。 我也在使用 libtool。
谢谢
最佳答案
看看this section in the automake manual regarading 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) $<
如果可移植性是一个严格的要求,恐怕没有大量的黑客攻击你就不走运了。
关于c++ - 非标准 C++ 后缀的自动依赖跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1751352/