我正在尝试使用autofoo来测试Python的最大版本,而不是最低限度。例如:
AC_REQUIRE([AM_PATH_PYTHON([2.7])])
...将测试Python> = 2.7,并且可能会出现/ usr / bin / python3。但是,我想让它返回比python2.7更大的东西。
有直接的方法吗?我四处询问,到目前为止我得到的最好的回答是“重写宏。”
提前致谢!
答案 0 :(得分:2)
AM_PATH_PYTHON
的版本参数是可选的。如果需要python,请按以下方式调用:
AM_PATH_PYTHON
如果不需要,请按以下方式调用:
AM_PATH_PYTHON(,, [:])
现在,AM_PATH_PYTHON
将shell变量$PYTHON_VERSION
设置为sys.version[:3]
的值,您可以自行测试。
答案 1 :(得分:2)
1)。添加到acinclude.m4
`# my_CHECK_MAJOR_VERSION(VARIABLE, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])`
`# ---------------------------------------------------------------------------`
`# Run ACTION-IF-TRUE if the VAR has a major version >= VERSION.`
`# Run ACTION-IF-FALSE otherwise.`
AC_DEFUN([my_CHECK_MAJOR_VERSION],
[AC_MSG_CHECKING([whether $1 $$1 major version == $2])
case $$1 in
$2*)
AC_MSG_RESULT([yes])
ifelse([$3], [$3], [:])
;;
*)
AC_MSG_RESULT([no])
ifelse([$4], , [AC_MSG_ERROR([$$1 differs from $2])], [$4])
;;
esac])
2.)添加到zconfigure.inz
my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])
3。)aclocal
,automake
,autoconf
就是这样。
答案 2 :(得分:0)
另一种解决方案是设置_AM_PYTHON_INTERPRETER_LIST的默认值,只包含Python 2二进制文件。