| CPUS ?= $(shell bash -c 'nproc --all') |
| $(TARGET): $(VOBJ)/V$(TARGET)__ALL.a |
| SUBMAKE := $(MAKE) --no-print-directory --directory=$(VOBJ) -f |
| ifeq ($(VERILATOR_ROOT),) |
| VERILATOR := $(VERILATOR_ROOT)/bin/verilator |
| VFLAGS := -Wall -Wno-fatal -MMD --trace -cc -I../rtl |
| VFLAGS += +define+VERBOSE=1 |
| $(VOBJ)/V$(TARGET)__ALL.a: $(VOBJ)/V$(TARGET).cpp $(VOBJ)/V$(TARGET).h |
| $(VOBJ)/V$(TARGET)__ALL.a: $(VOBJ)/V$(TARGET).mk |
| $(VOBJ)/V%.cpp $(VOBJ)/V%.h $(VOBJ)/V%.mk: $(FBDIR)/%.v |
| $(VERILATOR) $(VFLAGS) $*.v |
| $(VOBJ)/V%.cpp: $(VOBJ)/V%.h |
| $(VOBJ)/V%.mk: $(VOBJ)/V%.h |
| $(VOBJ)/V%.h: $(FBDIR)/%.v |
| $(VOBJ)/V%__ALL.a: $(VOBJ)/V%.mk |
| $(SUBMAKE) V$*.mk -j$(CPUS) |