由于我们有一个稍微复杂的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表现得像没有收到任何参数。有什么想法吗?
答案 0 :(得分:2)
那是因为如果你对argv进行切片,你就会创建一个嵌套列表。你应该这样做:
call([path_to_gmake, MAKEFILE]+argv[1:5])