【发布时间】:2018-07-15 07:58:05
【问题描述】:
我希望我的 makefile 解析下面 $(cfg) 列表中的每个 arg=value 对。然后在 makefile 中使用这些 $(arg) 和 $(value)。这些 arg=value 对可以用空格或逗号分隔。
示例:我想通过命令行覆盖三个测试变量(A、B、C)
make run test=my_test.sv cfg="A=3, B=4, C=5"
Makefile 应该这样做:
foreach $arg,$val in $cfg ----> +uvm_set_config_int=*,$arg,$val
效果:
+uvm_set_config_int=*,A,3
+uvm_set_config_int=*,B,4
+uvm_set_config_int=*,C,5
我上面的目的是允许通过命令行覆盖任何默认测试配置。
我检查了Variable arguments list to a Makefile、Passing arguments to "make run",但它没有回答我的具体问题。
提前感谢您的帮助。
【问题讨论】:
-
你为什么不用
make ... A=3 B=4 C=5?或者变量名(A、B、C)可以是任何名称? -
变量名可以是任何东西。 Madscientist 的解决方案解决了我的问题
标签: makefile system-verilog uvm test-bench