Autofoo测试最大版本的Python

时间:2011-01-06 20:45:40

标签: build autoconf automake gnu-toolchain linux-toolchain

我正在尝试使用autofoo来测试Python的最大版本,而不是最低限度。例如:

AC_REQUIRE([AM_PATH_PYTHON([2.7])])

...将测试Python> = 2.7,并且可能会出现/ usr / bin / python3。但是,我想让它返回比python2.7更大的东西。

有直接的方法吗?我四处询问,到目前为止我得到的最好的回答是“重写宏。”

提前致谢!

3 个答案:

答案 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。)aclocalautomakeautoconf

就是这样。

答案 2 :(得分:0)

另一种解决方案是设置_AM_PYTHON_INTERPRETER_LIST的默认值,只包含Python 2二进制文件。