我们正在开发一个使用autotools的软件包(准确地说是autoconf 2.69和automake 1.13.3)。这个包需要wxwidgets,这个库提供了自己的m4文件,允许在最终安装系统中测试wxwidgets的安装。 wxwidgets最近将版本从2.8更改为3.0,在此更改中,它们还更改了用于确定可用性的宏(即宏从AM_PATH_WXCONFIG更改为WX_CONFIG_CHECK)及其参数化。这也意味着如果我们从包中分发源代码并且外部开发人员想要重建configure,那么configure.ac文件应该知道应该使用哪两个。
所以问题是:我们的包有没有机会在执行之前检查m4宏是否存在?如果那是不可能的,那么我们应该将wxwidgets中的m4文件包含到我们的包中吗?
答案 0 :(得分:3)
正如您在评论中所建议的那样,请使用m4_ifdef
:
m4_ifdef([AM_PATH_WXCONFIG], [
AM_PATH_WXCONFIG(parameters)
], [
m4_ifdef([WX_CONFIG_CHECK], [
WX_CONFIG_CHECK(parameters)
], [
AC_MSG_ERROR([You need to install the wxWidgets development package.])
])
])