我有一个主要用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的启动?
答案 0 :(得分:1)
我使用autoconf来设置script.py,而不是像你所示的'make'。类似的东西:
AC_CONFIG_FILES([script.py], [chmod +x script.py])
在configure.ac中的AC_OUTPUT之前应该这样做。