You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.0 KiB

  1. PLATFORM ?= pqvexriscvsim
  2. RISCV_ARCH ?= rv32im
  3. RISCV_ABI ?= ilp32
  4. RISCV_CMODEL ?= medany
  5. RISCV_ARCHFLAGS += -march=$(RISCV_ARCH)
  6. RISCV_ARCHFLAGS += -mabi=$(RISCV_ABI)
  7. RISCV_ARCHFLAGS += -mcmodel=$(RISCV_CMODEL)
  8. CFLAGS += -Os -Wall -Wextra
  9. CFLAGS += $(RISCV_ARCHFLAGS)
  10. CFLAGS += -fstrict-volatile-bitfields
  11. CFLAGS += --specs=nosys.specs
  12. ifeq ($(PLATFORM),pqvexriscvup5k)
  13. CFLAGS += -DVEXRISCV_VOLATILE -DVEXRISCV_RWMTVEC
  14. endif
  15. ifeq ($(PLATFORM),pqvexriscvulx3s)
  16. CFLAGS += -DVEXRISCV_VOLATILE -DVEXRISCV_RWMTVEC
  17. endif
  18. ifeq ($(PLATFORM),pqvexriscvicoboard)
  19. CFLAGS += -DVEXRISCV_VOLATILE -DVEXRISCV_RWMTVEC
  20. endif
  21. ifeq ($(PLATFORM),pqvexriscvsim)
  22. CFLAGS += -DVEXRISCV_RWMTVEC
  23. endif
  24. CROSS_PREFIX ?= riscv64-unknown-elf
  25. CC = $(CROSS_PREFIX)-gcc
  26. AR = $(CROSS_PREFIX)-ar
  27. SRCS = init.c start.s
  28. OBJS = $(PLATFORM)_init.o $(PLATFORM)_start.o
  29. TARGET = lib$(PLATFORM)bsp.a
  30. all: $(TARGET)
  31. $(TARGET): $(OBJS)
  32. $(AR) rcs $@ $^
  33. $(PLATFORM)_%.o: %.c
  34. $(CC) $(CFLAGS) -c -o $@ $<
  35. $(PLATFORM)_%.o: %.S
  36. $(CC) $(CFLAGS) -c -o $@ $<
  37. clean:
  38. rm -rf $(OBJS) $(TARGET)