gpt4 book ai didi

makefile - 从 makefile 运行 python 脚本并将 python 脚本的输出返回到 makefile 内的变量

转载 作者:行者123 更新时间:2023-12-04 17:35:27 26 4
gpt4 key购买 nike

很有可能从嵌入在 makefile 中的目标内的规则运行 python 脚本(以便对 mkaefile 组件的输出进行后处理)。但是是否可以将一些值从 python 脚本返回到 makefile 并将其分配给 makefile 中的一些变量。

所以我认为可以通过两种方式来完成:流程一:1.从makefile调用python脚本2. 允许 python 脚本将输出存储在某个已知文件中3.从makefile中读取值并赋值给里面的变量

我已经尝试过这种方法并且能够执行第 1 步和第 2 步但无法执行第 3 步。

过程 2:1.从makefile调用python脚本2. 让 python 脚本返回一些值,该值分配给 makefile 中的变量

我无法尝试,因为我找不到任何例子来做这件事

----------------- makefile----------------
help: detect_term_type

file := term_type
TERM_TYPE := $(cat ${file})

detect_term_type:
python configure_things.py



-------configure_things.py-----
import platform

class TerminalType:

def __init__(self):
self.find_terminal_name()

def find_terminal_name(self):
f= open("term_type","w+")
f.write(platform.system())
f.write('\n')
f.close()

我希望将可能是“Linux”或“Cygwin”的 python 脚本的输出分配给 makefile 变量 TERM_TYPE。

最佳答案

It is very well possible to run a python script from rule embedded inside a target in makefile (in order to do post processing on output of mkaefile components). But is it possible to return some vales from python script back to makefile and assign it to some varibale inside the makefile.

make 的 POSIX 规范没有定义任何可用于此目的的功能。但是,如果您碰巧特别依赖 GNU make,它有一个 $(shell) 函数可以达到以下目的:

TERM_TYPE := $(shell python figure_it_out.py)

在任何情况下,您都不能通过构建文件然后将其读回来执行此操作,因为变量在构建任何内容之前就获得了它们的值。

关于makefile - 从 makefile 运行 python 脚本并将 python 脚本的输出返回到 makefile 内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com