我正在寻找一种允许我Makefile
从 Python 内部修改文件的解决方案。
我不需要任何特殊功能,通常我只需要更改变量,例如:SOMETHING := value
但我更愿意能够使用现有的库而不是实现我自己的、错误的、解析器。
如果您想在 Python 中做事,我建议您远离 Makefile。
使用waf
或scons
代替。它们是用 Python 编写的用于替换 Makefile 的构建工具。我宁愿使用waf
then scons
,因为它更快并且它适用于新Python
版本(以及一些操作系统项目,比如ardour
切换到它)。
以下是两者(以及 CMake、Ant 等其他)的比较: http ://code.google.com/p/waf/wiki/WafAndOtherBuildSystems#II._comparison_between_various_build_tools
还没有听说过这种面向 Makefile 的 Python 库,但是如果您只需要简单的替换,例如SOMETHING := [something_placeholder]
,那么您可以加载模板文件,将占位符替换为您的值并将其写回磁盘并将其提供给make
.
或者您可以使用诸如Jinja2之类的模板引擎,但这将是您的应用程序的另一个依赖项。