【发布时间】:2023-02-23 03:06:18
【问题描述】:
我想在给定范围内生成一个随机值,并使用结果来更新 Makevariable 以及修改文件。
我尝试使用下面的代码,我确实看到了生成的随机值。但我无法在 sed/Make 变量中使用它。
生成文件::
ALL_CPU_IRQ = 1
all:
ifeq ($(ALL_CPU_IRQ),1)
RANDINT=$(shell python -c 'from random import randint; print(randint(1,3));')
@echo $(RANDINT)
override BLOCK_RUN_OPT += +init_cpu=$(RANDINT)
sed -i 's|asm_comp_opt_tl=|\0INIT_CPU=$(RANDINT),|' $(CURDIR)/asm_opt.txt
@echo $(BLOCK_RUN_OPT)
endif
我观察到的输出是:
RANDINT=2
+init_cpu=
和 asm_opt.txt:asm_comp_opt=INIT_CPU=,
预期输出:
RANDINT=2
+init_cpu=2
和 asm_opt.txt:asm_comp_opt=INIT_CPU=2,
我是 Makefile 的新手。任何的意见都将会有帮助。如果这是一个多余的问题,我们深表歉意。
【问题讨论】:
-
什么是预期的输出?您最终期望 Makefile 中的输出是什么?你能帮我们吗?
-
抱歉,我在主线程中错过了它。预期输出:BLOCK_RUN_OPT = +init_cpu=2 和 asm_opt.txt :: asm_comp_opt=INIT_CPU=2,
-
等等,那是脚本中的代码吗?我看不出它如何像在 makefile 中那样发挥作用,无论它是否符合规则。
-
@Beta :它是 Makefile 规则的一部分。我已经用完整的 Makefile 示例更新了主线程
-
如果那是您的完整 makefile,那么
BLOCK_RUN_OPT是做什么用的?