非标准 C++ 的 automake 依赖性跟踪后缀
我如何强制 automake 为非标准 C++ 后缀文件生成依赖项跟踪? 特别是我的意思是生成 .deps 目录文件内容。 我也在使用 libtool。
谢谢
how can i force automake to generate dependency tracking for nonstandard C++ suffix files?
in particular I mean generating .deps directory file content.
I am using libtool as well.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看 automake 手册中有关默认值的部分
_SOURCES
。看起来就像是在说:
会让你迈出第一步。所以,现在automake知道在哪里寻找第一个依赖项(
target.foo
),它会要求GCC根据头文件计算target.foo
的依赖项该文件中包含的名称。 GCC 吐出推断的对象名称,转换包含的stem.h ->干.o。这就是我碰壁的地方。为了让你的 automake 脚本完全可移植,你不能使用
%
模式。您必须使用后缀 stacking,正如 wallyk 在他的回答中所演示的那样。根据您的可移植性要求,您可以忽略它并在 Makefile.in 中定义隐式规则,如下所示:
如果可移植性是严格的要求,那么恐怕您会运气不好,没有大量的黑客攻击。
Take a look at this section in the automake manual regarading default
_SOURCES
. It looks like saying:will get you past the first step. So, now automake knows where to look for the first dependency (
target.foo
), and it will ask GCC to compute the dependencies oftarget.foo
based upon the header file names that are included in that file. GCC spits out the inferred object names, transforming the includedstem.h -> stem.o
. And here's where I hit a wall. To have your automake script be completely portable, you cannot use the%
patterns. You must use the suffix stacking, as wallyk demonstrated in his answer.Depending upon your portability requirements, you could just ignore that and define the implicit rule in Makefile.in to be something like:
If portability is a strict requirement I'm afraid you're out of luck without a lot of hacking.
添加隐式规则。例如,要使用 foo 编译器
foocc
编译*.foo
文件:Add an implicit rule. For example, to compile
*.foo
files using a foo compilerfoocc
: