ただいまコメントを受けつけておりません。
雑記 > codeのメモ > 【Makefile】DPI-C覚書
vcsでDPI-Cを実施したときのMakefile。vcsでのDPI-C立ち上げの参考にも。
最初にsimvの作成を行い、soファイルがされれば問題なくsimvが実行される。
#=========================================
# COMMON options
#-----------------------------------------
TEST = sample
CC = gcc
vpath %.cpp cpp cpp/common
vpath %.h cpp/include
vpath %.o dpi/obj
vpath %.so dpi
#=========================================
# Options for normal function
#-----------------------------------------
CFLAGS = \
-m64
INCLUDE = \
-I ./ \
-I cpp/include
OBJ_DIR = dpi/obj
DPI_DIR = dpi
#=========================================
# .SUFFIXES .PHONY .IGNOEW
#-----------------------------------------
.SUFFIXES : .so .o .c
.PHONY : clean clean_log vcs all
.IGNORE : simv
#=========================================
# all
#-----------------------------------------
all : simv vcs
#=========================================
# simv
#-----------------------------------------
vcs : $(TEST).so
./simv -sv_root ./$(DPI_DIR) -sv_lib $(TEST) -l log/$(TEST).log
#=========================================
# vcs : simvを作成
#-----------------------------------------
simv : test.sv
vcs -full64 -Mupdate -sverilog $<
#=========================================
# gcc
#-----------------------------------------
SOURCES = $(wildcard cpp/$(TEST).cpp cpp/common/*.cpp)
OBJECTS = $(addprefix $(OBJ_DIR)/,$(notdir $(SOURCES:.cpp=.o)))
$(OBJ_DIR)/$(TEST).o : cpp/$(TEST).cpp
mkdir -p $(OBJ_DIR)
$(CC) $(CFLAGS) -o $@ -c -g -fPIC -I${VCS_HOME}/include $(INCLUDE) $<
$(OBJ_DIR)/%.o : cpp/common/%.cpp
mkdir -p $(OBJ_DIR)
$(CC) $(CFLAGS) -o $@ -c -g -fPIC -I${VCS_HOME}/include $(INCLUDE) $<
$(TEST).so : $(OBJECTS)
mkdir -p $(DPI_DIR)
$(CC) $(CFLAGS) -o ./$(DPI_DIR)/$@ -shared $^
#=========================================
# clean
#-----------------------------------------
(略)
ただいまコメントを受けつけておりません。