autotools 和 python setup.py
我有一个项目,主要是用C++写的,但里面有一些用Python写的辅助脚本。目前,这些脚本里有一些变量是通过autotools来替换的:
#!@PYTHON@
# -*- coding: utf-8 -*-
...
try:
datapath = os.environ['DATA_PATH']
except KeyError:
datapath = '@pkgdatadir@'
这里是Makefile.am的一部分:
BUILT_SOURCES = script.py
nodist_python_PYTHON = script.py
CLEANFILES = $(python_PYTHON)
EXTRA_DIST = script.py.in
do_subst = sed -e 's,[@]PYTHON[@],$(PYTHON),g'\
-e 's,[@]pkgdatadir[@],$(pkgdatadir),g'
script.py: script.py.in
$(do_subst) < $< > $@
chmod +x $@
这些脚本还依赖了一些模块,可能用一个setup.py脚本来处理会更好。
那么,最好的办法是如何将autotools和Python的distutils工具结合起来呢?我应该完全依赖autotools吗?如果不这样的话,我该如何在Makefile.am中整合setup.py的执行呢?
1 个回答
1
我会用autoconf来设置script.py,而不是你展示的'make'。可以这样做:
AC_CONFIG_FILES([script.py], [chmod +x script.py])
在configure.ac文件中的AC_OUTPUT之前加上这个就可以了。