【发布时间】:2013-03-31 02:51:43
【问题描述】:
在创建 configure.ac 文件时,标准做法似乎是明确硬编码应从相应的 Makefile.in 创建的 Makefile 列表。然而,这似乎不是必需的,该列表可以很容易地从某种 glob 规范(例如 */Makefile.in)或从 shell 命令(例如 find -name Makefile.in)生成。
不幸的是,这个工具似乎没有内置在 autoconf 中!我是 m4 的新手,但我没有遇到任何关于运行 shell 命令来生成 m4 输入值的信息。显然,它可以通过cat-ing 文件和 shell 命令生成 configure.ac 文件来破解,但这似乎不必要地复杂。
有这样做的标准方法吗?如果没有,那为什么不呢?有什么问题吗?
【问题讨论】:
-
您不想这样做的原因之一是,如果您添加一个应该由
AC_CONFIG_FILES生成的新文件,它不会在以下时间生成你运行make。当您明确列出文件时,添加新模板会更改configure.ac,这会强制重新运行(以及其他)autoconf(重建configure)、configure(重建config.status)和@987654331 @(重建模板输出)。 -
你可以使用
m4_esyscmd破解一些东西,但请不要。 -
您不需要生成
configure.ac。如果您坚持,请使用find命令并将结果放在AC_CONFIG_FILES的参数列表中,但不要自动执行该过程。这在项目的生命周期中应该很少发生(即一次),并且应该由人来监控。对该列表所做的任何更改都应手动完成,以帮助防止构建膨胀。
标签: unix build-automation autotools autoconf