49 lines
1.1 KiB
Makefile
49 lines
1.1 KiB
Makefile
ifndef SRCS
|
|
$(error Must define list of test sources as SRCS)
|
|
endif
|
|
|
|
ifndef APP
|
|
$(error Must define application name as APP)
|
|
endif
|
|
|
|
CCFLAGS ?=
|
|
LDSCRIPT ?= ../common/memmap.ld
|
|
CROSS_PREFIX ?= riscv32-unknown-elf-
|
|
TBDIR ?= ../tb_cxxrtl
|
|
INCDIR ?= ../common
|
|
MAX_CYCLES ?= 100000
|
|
|
|
###############################################################################
|
|
|
|
.SUFFIXES:
|
|
.PHONY: all run view tb clean clean_tb
|
|
|
|
all: run
|
|
|
|
run: $(APP).bin
|
|
$(TBDIR)/tb $(APP).bin $(APP)_run.vcd --cycles $(MAX_CYCLES)
|
|
|
|
view: run
|
|
gtkwave $(APP)_run.vcd
|
|
|
|
bin: $(APP).bin
|
|
|
|
tb:
|
|
$(MAKE) -C $(TBDIR) tb
|
|
|
|
clean:
|
|
rm -f $(APP).elf $(APP).bin $(APP).dis $(APP)_run.vcd
|
|
|
|
clean_tb: clean
|
|
$(MAKE) -C $(TBDIR) clean
|
|
|
|
###############################################################################
|
|
|
|
$(APP).bin: $(APP).elf
|
|
$(CROSS_PREFIX)objcopy -O binary $^ $@
|
|
$(CROSS_PREFIX)objdump -h $(APP).elf > $(APP).dis
|
|
$(CROSS_PREFIX)objdump -d $(APP).elf >> $(APP).dis
|
|
|
|
$(APP).elf: $(SRCS) $(wildcard %.h)
|
|
$(CROSS_PREFIX)gcc $(CCFLAGS) $(SRCS) -T $(LDSCRIPT) $(addprefix -I,$(INCDIR)) -o $(APP).elf
|