5

我正在尝试编辑一个配置脚本,如果它高于 Automake 版本 x.xx,它将执行这段代码,如果不是,它将执行另一段代码。

因此,我需要版本为 1.10 或更高版本,然后在这种情况下我想这样做:

m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])

并且,否则:

m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])

所以我会假设它看起来像这样(在configure.in):

if test GET_AUTOMAKE_VERSION >= 1.10; then
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
else
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
fi

另外,我应该检查 autoconf 或 automake 版本吗?可能两者兼而有之?

4

2 回答 2

4

在配置时检查 automake 版本没有任何意义。配置脚本在 automake 之后很长时间运行,并且可能在根本没有安装 automake 的机器上运行。编写您的 configure.ac(不是 configure.in)以使用现代 automake。运行 autoconf 以生成配置脚本的开发人员需要安装现代 automake。调用配置脚本的用户根本不需要安装任何自动工具。

于 2010-01-31T17:18:00.317 回答
1

为了测试 autoconf 版本,我认为这样的事情会起作用。

m4_version_prereq ( 1.10, 
     m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]), 
     m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
)

我不知道如何为 automake 做同样的事情。

于 2010-01-23T02:04:40.093 回答