0

我想根据 Automake 版本有选择地AM_INIT_AUTOMAKE在我的调用中省略某些标志。configure.ac有没有办法做到这一点?

我正在处理的具体问题是 Automake 1.12 引入了一些我想禁用的与可移植性相关的警告(-Wextra-portability和)(因为我使用,所以我不能忽略不相关的警告):-Wportability-Wall-Werror

AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability -Wno-portability gnu foreign]) 

这适用于 Automake 1.12,但早期版本的 Automake 出错,因为他们不知道这些标志。如果我们使用 Automake >= 1.12 运行,有没有办法只包含这些标志?

我尝试使用m4_version_compare但没有用(另外我认为使用它甚至没有意义,因为它检查 Autoconf 版本,而不是 Automake 版本......)

是涉及修补的类似问题的解决方案configure.acautogen.sh我想避免...

4

1 回答 1

2

简短的回答是否定的,你不能在 automake 中干净地做到这一点。如果您想要类似的东西,则必须configure.ac在引导脚本 ( autogen.sh) 中进行修补。

更简单的是,只需要 automake 1.12。

问题是M4sugar 层中没有提供您要比较的 automake 版本号(写入configureas am__api_version) 。那里没有这些信息,很难修复过去版本的 automake。

编辑:我想到了一种不同的方式来做同样的事情而不用打补丁configure.acautogen.sh但最终结果是一样的。make disttarball 仍将具有基于构建 tarball 的 automake 版本的 automake 选项的“烘焙”版本。但实际上这与仅使用选项设置自动制作版本没有什么不同。

于 2013-08-01T19:04:17.117 回答