通过命令行输入,可以对要编译的文件进行选择
OPTION=value
OPTION就是要从命令行输入的条件
value就是要编译的文件
利用多重选择来对文件进行选择,类似于if - else if- else
.PHONY: all com sim
#OPTION=value, Do not forget!
CASE=file
ifeq ($(CASE),1)
file:=$(shell find -name "*random.sv")
else ifeq ($(CASE),2)
file:=$(shell find -name "*control.sv")
else ifeq ($(CASE),3)
file:=$(shell find -name "*sync.sv")
else ifeq ($(CASE),4)
file:=$(shell find -name "task*.sv")
else
file:=$(shell find -name "*methods.sv")
endif
all:com sim
com:
vcs -sverilog -full64 +v2k $(file)
sim:
./simv -l run.log
$ make all CASE=4
上述命令就可以对名字中带有task的sv文件进行仿真啦
--------------------------更新------------------------------
$(value)
#--------以上为makefile脚本中,以下在命令行中输入-------------
make com value=task.v
#value=task.v
在makefile中,$(value)就可以在命令行中获取value的值,value是自定义的