72 lines
1.4 KiB
Makefile
72 lines
1.4 KiB
Makefile
#################################
|
|
# RISCV Toolchain
|
|
#################################
|
|
|
|
TARGET = riscv64-unknown-elf
|
|
|
|
GCC = $(TARGET)-gcc
|
|
CXX = $(TARGET)-g++
|
|
CP = $(TARGET)-objcopy
|
|
OBJDUMP = $(TARGET)-objdump
|
|
DG = $(TARGET)-gdb
|
|
SIZE = $(TARGET)-size
|
|
|
|
|
|
#################################
|
|
# Flags
|
|
#################################
|
|
|
|
# SoC Settings
|
|
ARCH = rv64imafdc
|
|
ABI = lp64d
|
|
ARCHFLAGS = -march=$(ARCH) -mabi=$(ABI)
|
|
|
|
CFLAGS = -std=gnu99 -O2 -fno-common -fno-builtin-printf -Wall
|
|
CFLAGS += $(ARCHFLAGS)
|
|
LDFLAGS = -static
|
|
|
|
include libgloss.mk
|
|
|
|
PROGRAMS = pwm blkdev accum charcount nic-loopback big-blkdev pingd \
|
|
streaming-passthrough streaming-fir nvdla spiflashread spiflashwrite fft gcd \
|
|
hello mt-hello symmetric
|
|
|
|
|
|
.DEFAULT_GOAL := default
|
|
|
|
|
|
#################################
|
|
# Build
|
|
#################################
|
|
|
|
spiflash.img: spiflash.py
|
|
python3 $<
|
|
|
|
%.o: %.S
|
|
$(GCC) $(CFLAGS) -D__ASSEMBLY__=1 -c $< -o $@
|
|
|
|
%.o: %.c mmio.h spiflash.h
|
|
$(GCC) $(CFLAGS) -c $< -o $@
|
|
|
|
%.riscv: %.o $(libgloss)
|
|
$(GCC) $(LDFLAGS) $< -o $@
|
|
|
|
%.dump: %.riscv
|
|
$(OBJDUMP) -D $< > $@
|
|
|
|
|
|
#################################
|
|
# Recipes
|
|
#################################
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f *.riscv *.o *.dump
|
|
$(if $(libgloss),rm -rf $(libgloss_builddir)/)
|
|
|
|
.PHONY: default
|
|
default: $(addsuffix .riscv, $(PROGRAMS)) spiflash.img
|
|
|
|
.PHONY: dumps
|
|
dumps: $(addsuffix .dump, $(PROGRAMS))
|