我希望根据Automake版本,在我AM_INIT_AUTOMAKE
的{{1}}调用中有选择地省略某些标记。有没有办法做到这一点?
我正在处理的具体问题是Automake 1.12引入了一些我想要禁用的与可移植性相关的警告(configure.ac
和-Wextra-portability
)(因为我使用-Wportability
和-Wall
所以我不能忽视不相关的警告):
-Werror
这适用于Automake 1.12,但早期版本的Automake错误输出,因为他们不知道这些标志。如果我们使用Automake> = 1.12?
运行,是否有办法只包含这些标志?我尝试使用AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability -Wno-portability gnu foreign])
但是没有用(加上我认为使用它甚至没有意义,因为它检查了Autoconf版本,而不是Automake版本......)
Here是类似问题的解决方案,涉及在m4_version_compare
中修补configure.ac
,我希望避免...
答案 0 :(得分:2)
简短的回答是否定的,你不能在automake中干净利落地做到这一点。如果你想要这样的东西,你必须在引导脚本(configure.ac
)中修补autogen.sh
。
更简单,只需要automake 1.12。
问题是您要比较的(与configure
写为am__api_version
)的automake版本号是M4sugar层中提供的不。没有那些信息使得很难修复过去版本的automake。
configure.ac
修补autogen.sh
的情况下,我想到了一种不同的方式来做同样的事情,但最终的结果是一样的。 make dist
tarball仍然会在"基于构建tarball的任何人的automake版本的automake选项版本。但实际上这与仅设置带有选项的automake版本没有什么不同。