我应该如何从 Makefile.am 运行预构建的 Makefile?
Posted
技术标签:
【中文标题】我应该如何从 Makefile.am 运行预构建的 Makefile?【英文标题】:How should I run a prebuilt Makefile from a Makefile.am? 【发布时间】:2009-10-19 15:41:07 【问题描述】:我是 automake/autoconf 构建系统的新手。我正在为其实现 autotools 的包有几个库和每个库的测试可执行文件。一些库是自动生成的 ASN1C 代码,带有预构建的 makefile。我不确定在 Makefile.am 中说“使用预构建的 makefile 构建 ASN1C 库”的最佳方式。
由于大量的 makefile 文档,尝试用这样的东西搜索 google 有点困难。
谢谢, 陈兹
【问题讨论】:
【参考方案1】:这对于完整构建来说相对容易,但对于增量构建来说要困难得多。
库是否支持树外构建也很重要。
要记住的重要一点是 automake 文件可以包含 make 规则,因此您可以创建一组规则来构建库,然后在构建所需的位置添加/复制该构建的输出。
为库构建分配一个目录。编写 make 规则来包装库构建过程。将库构建的输出绑定为构建的依赖项。
我们唯一没有做的是使用默认的 automake 规则进行分发/安装 - 我不确定您如何将库添加到这些列表中,但我认为有一种方法,因为您必须能够在您的发行版中分发随机文件,例如翻译。
增量构建要困难得多,因为您必须在 您的 make 规则中捕获适当的依赖项,以覆盖库 makefile 中的依赖项。
【讨论】:
【参考方案2】:Automake 手册有a section about this。
【讨论】:
以上是关于我应该如何从 Makefile.am 运行预构建的 Makefile?的主要内容,如果未能解决你的问题,请参考以下文章
如何影响目标的顺序,为 Makefile.am 添加额外的步骤等?