我有一个要求,我必须通过makefile运行python脚本。 Python脚本执行一些计算并返回一个值。我想在那个makefile变量中获取该值。我该怎么做?
我想要这样的东西:
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
注意,由于配方的每一行都在其自己的子外壳中执行,因此变量的赋值和使用必须在同一行上;它将无法生存到下一行。