2013-07-09 118 views
3

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

直到现在我一直在调用它没有参数默认在Ubuntu的python 2.7。现在我也想建立它为python3.x(3.3具体)。

有没有一种方法,我可以打电话AM_PATH_PYTHON([3])得到python3.3,使用AC_SUBST所有生成的变量存储在一个python3特定的变量,然后调用AM_PATH_PYTHON([2])python2

我甚至做所有这些第二AM_PATH_PYTHON不能重写变量后做这个

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]) 

。我知道这些是宏,但应该有办法做到这一点。 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 

回答

2

如果你最终会重写最宏观的路线,你可能想利用可变_AM_PYTHON_INTERPRETER_LIST的编写包装宏AM_PATH_PYTHON2AM_PATH_PYTHON3,只是设置_AM_PYTHON_INTERPRETER_LIST并调用AM_PATH_PYTHON一个额外的后缀参数。