Build Python最大版本的Autofoo测试
我试图让autofoo测试Python的最高版本,而不是最低版本。例如:Build Python最大版本的Autofoo测试,build,autoconf,automake,gnu-toolchain,linux-toolchain,Build,Autoconf,Automake,Gnu Toolchain,Linux Toolchain,我试图让autofoo测试Python的最高版本,而不是最低版本。例如: AC_REQUIRE([AM_PATH_PYTHON([2.7])]) 。。。将测试Python>=2.7,并且可能会出现/usr/bin/python3。但是,我希望它不会返回比python2.7更大的值 有没有一种简单的方法可以做到这一点?我四处询问,到目前为止,我得到的最好的回答是:“重写宏。” 提前谢谢 AM\u PATH\u PYTHON的版本参数是可选的。如果需要python,可以这样调用它: AM_PATH
AC_REQUIRE([AM_PATH_PYTHON([2.7])])
。。。将测试Python>=2.7,并且可能会出现/usr/bin/python3。但是,我希望它不会返回比python2.7更大的值
有没有一种简单的方法可以做到这一点?我四处询问,到目前为止,我得到的最好的回答是:“重写宏。”
提前谢谢 AM\u PATH\u PYTHON的版本参数是可选的。如果需要python,可以这样调用它:
AM_PATH_PYTHON
AM_PATH_PYTHON(,, [:])
如果不是必需的,请这样称呼:
AM_PATH_PYTHON
AM_PATH_PYTHON(,, [:])
现在,AM\u PATH\u PYTHON
将shell变量$PYTHON\u VERSION
设置为sys.VERSION[:3]
,您可以自己测试它。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
就是这样。另一种解决方案是设置默认值,只包括Python 2二进制文件。恐怕您目前为止最好的回答可能是正确的。这不只是复制宏并将
-gt
更改为-lt
的问题吗?对,问题是如果系统上有多个Python安装,例如2.7和3.0,我希望$Python_版本变为2.7,并让其余的变量反映二进制路径,等等,是的,我错过了这一点。即使它没有出现在/configure--help
中,您也可以使用/configure PYTHON=/usr/bin/python2.7
之类的东西设置$PYTHON
。显然,允许用户设置$PYTHON
是正确的行为,请参阅此处的错误报告:。它在当前的automake上运行良好,但将来的版本将向/configure--help
添加帮助信息。因此,您可以根据AM_PATH_PYTHON
的结果进行测试,如果系统版本太新,可以指示用户提供另一个$PYTHON
。