Skip to content

Commit 7522de4

Browse files
authored
feat(build): Prepare for XiangShan docker support (#615)
* feat(verilator): Support override verilator binary * feat(verilator): Use NOOP_HOME as base directory of verilator objs * feat(verilator): Export emu-mk target to outside world
1 parent c9b88ae commit 7522de4

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

verilator.mk

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,11 @@ ifneq ($(FUZZER_LIB), )
3636
EMU = $(BUILD_DIR)/fuzzer
3737
endif
3838

39+
# Verilator binary
40+
VERILATOR ?= verilator
41+
3942
# Verilator version check
40-
VERILATOR_VER_CMD = verilator --version 2> /dev/null | cut -f2 -d' ' | tr -d '.'
43+
VERILATOR_VER_CMD = $(VERILATOR) --version 2> /dev/null | cut -f2 -d' ' | tr -d '.'
4144
VERILATOR_4_210 := $(shell expr `$(VERILATOR_VER_CMD)` \>= 4210 2> /dev/null)
4245
ifeq ($(VERILATOR_4_210),1)
4346
EMU_CXXFLAGS += -DVERILATOR_4_210
@@ -136,7 +139,9 @@ endif
136139
@mkdir -p $(@D)
137140
@echo -e "\n[verilator] Generating C++ files..." >> $(TIMELOG)
138141
@date -R | tee -a $(TIMELOG)
139-
$(TIME_CMD) verilator $(VERILATOR_FLAGS) -Mdir $(@D) $^ $(EMU_DEPS)
142+
$(TIME_CMD) $(VERILATOR) $(VERILATOR_FLAGS) --Mdir $(@D) $^ $(EMU_DEPS)
143+
@sed -i -e 's/$(subst /,\/,$(NOOP_HOME))/$$(NOOP_HOME)/g' \
144+
-e '/^default:/i\NOOP_HOME ?= $(subst /,\/,$(NOOP_HOME))\n' $@
140145
ifneq ($(VERILATOR_5_000),1)
141146
@sed -i 's/private/public/g' $(EMU_DIR)/VSimTop.h
142147
@sed -i 's/const vlSymsp/vlSymsp/g' $(EMU_DIR)/VSimTop.h
@@ -217,6 +222,7 @@ endif # ifdef PGO_WORKLOAD
217222
@sync -d $(BUILD_DIR) -d $(EMU_DIR)
218223

219224
emu: $(EMU)
225+
emu-mk: $(EMU_MK)
220226

221227
COVERAGE_DATA ?= $(shell find $(BUILD_DIR) -maxdepth 1 -name "*.dat")
222228
COVERAGE_DIR ?= $(DESIGN_DIR)/$(basename $(notdir $(COVERAGE_DATA)))

0 commit comments

Comments
 (0)