From d22f0cab683b2808dc16c5e1f768ba2dac2ca0cb Mon Sep 17 00:00:00 2001 From: Howard Mao Date: Thu, 27 Oct 2016 16:57:00 -0700 Subject: [PATCH] split verilator compilation into phases --- verisim/Makefile | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/verisim/Makefile b/verisim/Makefile index 2594f8d4..466d616a 100644 --- a/verisim/Makefile +++ b/verisim/Makefile @@ -7,8 +7,8 @@ CONFIG ?= DefaultExampleConfig CFG_PROJECT ?= $(PROJECT) TB ?= TestDriver -sim = simulator-$(PROJECT)-$(CONFIG) -sim_debug = simulator-$(PROJECT)-$(CONFIG)-debug +sim = $(sim_dir)/simulator-$(PROJECT)-$(CONFIG) +sim_debug = $(sim_dir)/simulator-$(PROJECT)-$(CONFIG)-debug default: $(sim) @@ -36,17 +36,26 @@ model_dir_debug = $(build_dir)/$(long_name).debug model_header = $(model_dir)/V$(MODEL).h model_header_debug = $(model_dir_debug)/V$(MODEL).h -$(sim): $(sim_vsrcs) $(sim_csrcs) $(INSTALLED_VERILATOR) +model_mk = $(model_dir)/V$(MODEL).mk +model_mk_debug = $(model_dir_debug)/V$(MODEL).mk + +$(model_mk): $(sim_vsrcs) $(INSTALLED_VERILATOR) mkdir -p $(build_dir)/$(long_name) $(VERILATOR) $(VERILATOR_FLAGS) -Mdir $(build_dir)/$(long_name) \ - -o $(sim_dir)/$@ $< $(sim_csrcs) -LDFLAGS "$(LDFLAGS)" \ + -o $(sim) $< $(sim_csrcs) -LDFLAGS "$(LDFLAGS)" \ -CFLAGS "-I$(build_dir) -include $(model_header)" + touch $@ + +$(sim): $(model_mk) $(sim_csrcs) $(MAKE) VM_PARALLEL_BUILDS=1 -C $(build_dir)/$(long_name) -f V$(MODEL).mk -$(sim_debug): $(sim_vsrcs) $(sim_csrcs) $(INSTALLED_VERILATOR) +$(model_mk_debug): $(sim_vsrcs) $(INSTALLED_VERILATOR) mkdir -p $(build_dir)/$(long_name).debug $(VERILATOR) $(VERILATOR_FLAGS) -Mdir $(build_dir)/$(long_name).debug --trace \ - -o $(sim_dir)/$@ $< $(sim_csrcs) -LDFLAGS "$(LDFLAGS)" \ + -o $(sim_debug) $< $(sim_csrcs) -LDFLAGS "$(LDFLAGS)" \ -CFLAGS "-I$(build_dir) -include $(model_header_debug)" + touch $@ + +$(sim_debug): $(model_mk_debug) $(sim_csrcs) $(MAKE) VM_PARALLEL_BUILDS=1 -C $(build_dir)/$(long_name).debug -f V$(MODEL).mk