检查configure.ac中AX_PYTHON_MODULE的结果

时间:2010-03-15 16:33:48

标签: python autotools configure

在configure.ac(AX_PYTHON_MODULE)中使用m4_ax_python_module.m4宏时,可以在配置时知道是否安装了给定模块。它需要两个参数,模块名称和第二个参数,如果不为空,将导致退出,当模块是必须的时候很有用。

如果你不想要致命的退出,你如何在configure.ac中测试是否找到了哪些模块?当配置运行时,它们输出“是”或“否”,但这是我迄今为止发现的全部内容。基本上如果我在configure.ac中有这些行:

编辑:在模块名称周围添加方括号

AX_PYTHON_MODULE([json],[])
AX_PYTHON_MODULE([simplejson],[])

如何测试找到两个模块中的哪一个?

有关此宏的文档,请参阅http://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module

1 个答案:

答案 0 :(得分:1)

好的,我到目前为止找到的最佳解决方案是:

编辑:使用AS_IF代替if test

AS_IF([test "x${HAVE_PYMOD_JSON}" = "xno"], 
    AS_IF([test "x${HAVE_PYMOD_SIMPLEJSON}" = "xno"],
        [AC_MSG_ERROR([Requires one of json or simplejson])]))

通过宏,AS_TR_CPP将其参数转换为#define样式宏,即全部大写。