将参数从Python传递到makefile

时间:2014-06-20 06:24:42

标签: python makefile

由于我们有一个稍微复杂的makefile设置,我使用Python作为一系列makefile中的一个中间步骤来提供这样的设置 - 顶级makefile识别需要构建的库并调用Python脚本每一个。 Python对选项进行一些处理并调用库makefile。

在顶级我们这样做:

$(LIBS_ALL):
    $(PYTHON) config/buildtools.py $(MAKEFILE) BACON=YES EGGS=YES MUESLI=NO

然后最终Python脚本buildtools.py执行此操作以使用MAKEFILE调用gmake:

call([path_to_gmake, MAKEFILE, argv[1], argv[2], argv[3], argv[4]])

这是一个转义,但你明白了。我调用gmake并传递从顶层传入的参数。如上所述,每个明确列出的argv都可以很好地工作,但是切片argv [1:]不起作用。被调用的gmake表现得像没有收到任何参数。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

那是因为如果你对argv进行切片,你就会创建一个嵌套列表。你应该这样做:

call([path_to_gmake, MAKEFILE]+argv[1:5])