diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-09-17 22:10:39 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-09-17 22:10:39 -0600 |
| commit | b0cb20496d88cd017c4c51243d16ac3b060cc1d6 (patch) | |
| tree | b73bb171b9454501a8a3e101ab9d5f05c6b72945 /Makefile | |
| parent | a9aafdf34ed44f115edf43f29a733eb82f366eb6 (diff) | |
Update project structure to match Verilator Makefile
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 36 |
1 files changed, 24 insertions, 12 deletions
@@ -5,24 +5,36 @@ RTL_DIR := rtl TB_DIR := tb VERILATOR := verilator +RTL_FILES = $(shell find $(RTL_DIR)/ ! -path '$(RTL_DIR)/top/*' -type f -name '*.sv') +RTL_FILES += $(shell find $(TB_DIR)/ ! -path '$(TB_DIR)/top/*' -type f -name '*.sv') +TB_FILES = $(shell find $(TB_DIR)/ ! -path '$(TB_DIR)/top/*' -type f -name '*.cpp') + all: trace clean: rm -rf $(OBJ_DIR) $(VCD_DIR) -trace: exe vcd - cd $(VCD_DIR) && ../$(OBJ_DIR)/V$(TOP) +trace: trace/$(TOP) + +trace/%: exe/% $(VCD_DIR)/% + cd $(VCD_DIR)/$* && ../../$(OBJ_DIR)/$*/V$* + +$(VCD_DIR)/%: + mkdir -p $@ + +exe: exe/$(TOP) -$(VCD_DIR): - @mkdir $(VCD_DIR) +exe/%: $(OBJ_DIR)/%/V%.mk + $(MAKE) -C $(OBJ_DIR)/$* -f V$*.mk -exe: $(OBJ_DIR)/V$(TOP) +.SECONDEXPANSION: -$(OBJ_DIR)/V$(TOP): $(OBJ_DIR)/V$(TOP).mk - $(MAKE) -C $(OBJ_DIR) -f V$(TOP).mk $(MAKEFLAGS) +$(OBJ_DIR)/%.mk: \ + $(RTL_DIR)/top/$$(word 1,$$(subst /, ,$$*)).sv \ + $$(shell find $(RTL_DIR)/top/$$(dir $$*) -type f -name '*.sv' 2>/dev/null) \ + $$(shell find $(TB_DIR)/top/$$(dir $$*) -type f -name '*.sv' 2>/dev/null) \ + $(RTL_FILES) $(TB_FILES) $(TB_DIR)/top/$$(word 1,$$(subst /, ,$$*)).cpp \ + $$(shell find $(TB_DIR)/top/$$(dir $$*) -type f -name '*.cpp' 2>/dev/null) -$(OBJ_DIR)/V$(TOP).mk: $(wildcard $(RTL_DIR)/*.sv) $(wildcard $(TB_DIR)/*.cpp) - $(VERILATOR) \ - --cc --exe --trace \ - -y $(RTL_DIR) --Mdir $(OBJ_DIR) \ - rtl/$(TOP).sv $(wildcard $(TB_DIR)/*.cpp) + mkdir -p $(dir $@) + $(VERILATOR) --cc --exe --trace -y $(RTL_DIR) --Mdir $(dir $@) --top $(word 1,$(subst /, ,$*)) $(patsubst tb/%,../tb/%,$^) |
