我有tcsh shell。我想编译一次VCS
,然后使用SIMV
运行多个测试用例。早期单个测试VCS = vcs -sverilog -timescale=1ns/1ps \ +acc +vpi ..
和SIMV = ./simv +UVM_VERBOSITY=$(UVM_VERBOSITY) +UVM_TESTNAME=$(TESTNAME) ${vcs_waves_cmd} -l $(TESTNAME).log
被定义为常量。
我必须通过在数组上循环来替换$(TESTNAME)。我通过切换到bash尝试如下,但最终导致其他失败,例如make clean
无效。
TESTS = ext_reg_write_read reg_write_read
regress: $(TESTS)
$(VCS)\
for t in $(TESTS); do\
./simv +UVM_VERBOSITY=$(UVM_VERBOSITY) +UVM_TESTNAME=$$t ${vcs_waves_cmd} -l $$t.log;\
done
另外我想添加export shell命令export SHELL = /bin/csh -f
我的问题类似于以下 - Implementing `make check` or `make test`
我用过@J。 C.萨洛蒙回答制作这段代码
答案 0 :(得分:1)
问题在于export SHELL = /bin/csh -f
我正在更改为export SHELL = /bin/bash -f
。
但最终SHELL := /bin/bash
的工作方式与How can I use Bash syntax in Makefile targets? @derobert