从 python 脚本返回一个值到 makefile 变量



我有一个要求,我必须通过makefile运行python脚本。Python 脚本执行一些计算并返回一个值。我想在该生成文件变量中获取该值。我该怎么做?

我想要这样的东西:

mymakefile.mke

$output = python process.py

process.py

import os
def main():
value = "01.00.00"
return value
if __name__ == "__main__":
main()

如果您希望Make变量中的值,可以执行以下操作:

output := $(shell python process.py)

(请注意使用:=而不是=,因为如果你使用=,Make 会在每次计算变量时运行脚本。

如果您希望配方中的 shell 变量中的值,请查看您将在shell的命令行上使用的语法,这可能是这样的:

output=$(python process.py); echo $output

但是在 makefile 规则中,您必须使用更多美元符号转义美元符号:

some_target:
output=$$(python process.py); echo $$output

请注意,由于配方的每一行都在自己的子 shell 中执行,因此变量的赋值和使用必须在同一行上;它不会存活到下一行。

最新更新