可以在Makefile文件中读写变量赋值的Python库?
我正在寻找一种解决方案,允许我从Python内部修改可以在Makefile文件中读写变量赋值的Python库?,python,makefile,Python,Makefile,我正在寻找一种解决方案,允许我从Python内部修改Makefile文件 我不需要任何特殊的功能,通常我只需要更改变量,比如:SOMETHING:=value,但我更希望能够使用现有的库,而不是实现我自己的、有缺陷的解析器。没有听说过这种面向Makefile的Python库,但是如果您只需要简单的替换,例如SOMETHING:=[SOMETHING\u placeholder],那么您可以加载模板文件,用您的值替换占位符,然后将其写回磁盘,并将其交给make 或者您可以使用模板引擎,例如,但这将
Makefile
文件
我不需要任何特殊的功能,通常我只需要更改变量,比如:
SOMETHING:=value
,但我更希望能够使用现有的库,而不是实现我自己的、有缺陷的解析器。没有听说过这种面向Makefile的Python库,但是如果您只需要简单的替换,例如SOMETHING:=[SOMETHING\u placeholder]
,那么您可以加载模板文件,用您的值替换占位符,然后将其写回磁盘,并将其交给make
或者您可以使用模板引擎,例如,但这将是应用程序的另一个依赖项。如果您想在Python中执行操作,我建议您不要使用Makefiles 改用
waf
或scons
。它们是用Python编写的用于替换Makefiles的构建工具。
我宁愿使用waf
而不是scons
,因为它速度更快,而且可以与新的Python
版本一起使用(一些操作系统项目,如ardour
也切换到了它)
下面是这两种方法的比较(以及其他方法,如CMake、Ant):
您真正想解决的问题是什么?也许我们可以建议一个更好的替代方法来解析和修改源代码。是的,你真的不想尝试用编程的方式解析makefile。Timo建议的简单模板是最好的选择……或者只是在环境或命令行中传入值。