4

我正在使用 automake 的宏AM_PATH_PYTHON来查找pythondir变量。

到目前为止,我一直在不带参数地调用它,在 Ubuntu 上默认为 python 2.7。现在我也想为python3.x(特别是3.3)构建它。

有没有一种方法可以调用AM_PATH_PYTHON([3])get python3.3,将所有生成的变量存储AC_SUBSTpython3特定变量中,然后调用AM_PATH_PYTHON([2])for python2

我正在这样做

AM_PATH_PYTHON([3])
AC_SUBST(PYTHON3,$PYTHON)
AC_SUBST(HAVE_PYTHON3,$HAVE_PYTHON)
AC_SUBST(PYTHON3_VERSION,$PYTHON_VERSION)
AC_SUBST(PYTHON3_PREFIX,$PYTHON_PREFIX)
AC_SUBST(PYTHON3_EXEC_PREFIX,$PYTHON_EXEC_PREFIX)
AC_SUBST(PYTHON3_PLATFORM,$PYTHON_PLATFORM)
AC_SUBST(python3dir,$pythondir)
AC_SUBST(pkgpython3dir,$pkgpythondir)
AC_SUBST(py3execdir,$pyexecdir)
AC_SUBST(pkgpy3execdir,$pkgpyexecdir)

unset PYTHON
unset HAVE_PYTHON
unset PYTHON_VERSION
unset PYTHON_PREFIX
unset PYTHON_EXEC_PREFIX
unset PYTHON_PLATFORM
unset pythondir
unset pkgpythondir
unset pyexecdir
unset pkgpyexecdir
AM_PATH_PYTHON([2])

即使在完成所有这些之后,第二个AM_PATH_PYTHON也不会重写变量。我知道这些是宏,但应该有办法做到这一点。Makefile 显示

py3execdir = ${exec_prefix}/lib/python3.3/site-packages
pyexecdir = ${exec_prefix}/lib/python3.3/site-packages
python3dir = ${prefix}/lib/python3.3/site-packages
pythondir = ${prefix}/lib/python3.3/site-packages
4

1 回答 1

3

如果您最终选择了重写宏路线,您可能希望使用变量_AM_PYTHON_INTERPRETER_LIST来编写包装宏AM_PATH_PYTHON2,并使用额外的后缀参数进行AM_PATH_PYTHON3设置_AM_PYTHON_INTERPRETER_LIST和调用。AM_PATH_PYTHON

于 2013-10-04T04:07:54.937 回答