如何强制automake为非标准C ++后缀文件生成依赖关系跟踪? 特别是我的意思是生成.deps目录文件内容。 我也在使用libtool。
由于
答案 0 :(得分:2)
看看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) $<
如果可移植性是一项严格的要求,我担心如果没有大量的黑客行为,你就会失败。
答案 1 :(得分:0)
添加隐式规则。例如,使用foo编译器*.foo
编译foocc
文件:
.foo.o:
foocc -c -o $@ $<