我正在尋找一個解決方案,允許我從Python內部修改Makefile
文件。Python庫可以讀寫Makefile文件中的變量賦值嗎?
我不需要任何特殊的功能,通常我只需要更改像這樣的變量:SOMETHING := value
但我寧願能夠使用現有的庫,而不是實現我自己的bug,解析器。
我正在尋找一個解決方案,允許我從Python內部修改Makefile
文件。Python庫可以讀寫Makefile文件中的變量賦值嗎?
我不需要任何特殊的功能,通常我只需要更改像這樣的變量:SOMETHING := value
但我寧願能夠使用現有的庫,而不是實現我自己的bug,解析器。
還沒有聽說過這種面向Makefile的Python庫,但是如果你只需要簡單的替換例如SOMETHING := [something_placeholder]
,那麼你可以加載模板文件,用你的值替換佔位符並將其寫回到磁盤並給出它到make
。
或者您可以使用模板引擎,如Jinja2,但這將是您的應用程序的又一個依賴項。
如果你想在Python中做某些事情,我建議不要使用Makefiles。
改爲使用waf
或scons
。它們是用Python編寫的構建工具來替換Makefiles。 我寧願使用waf
,然後scons
,因爲它更快,它可以與新的Python
版本(以及一些操作系統項目,如ardour
切換到它)一起使用。
這是兩者的比較(和其他類似的CMake,螞蟻): http://code.google.com/p/waf/wiki/WafAndOtherBuildSystems#II._comparison_between_various_build_tools
什麼是你真正想解決這個問題?也許我們可以建議一個更好的替代解析和修改源代碼。 – SingleNegationElimination
是的,你並不是真的想嘗試以編程方式解析Makefiles。 Timo建議的簡單模板是您最好的選擇......或者只是在環境或命令行中傳遞值。 – larsks