Makefile 843 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. BOARD ?= icebreaker
  2. CROSS = riscv-none-embed-
  3. CC = $(CROSS)gcc
  4. OBJCOPY = $(CROSS)objcopy
  5. ICEPROG = iceprog
  6. CFLAGS=-Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section -DBOARD_$(BOARD)
  7. HEADERS=\
  8. config.h \
  9. console.h \
  10. led.h \
  11. mini-printf.h \
  12. spi.h \
  13. usb_priv.h \
  14. usb_desc_data.h
  15. SOURCES=\
  16. start.S \
  17. console.c \
  18. firmware.c \
  19. led.c \
  20. mini-printf.c \
  21. spi.c \
  22. usb.c \
  23. usb_ep0.c \
  24. usb_desc.c
  25. firmware.elf: lnk-app.lds $(HEADERS) $(SOURCES)
  26. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-app.lds,--strip-debug -o $@ $(SOURCES)
  27. boot.elf: lnk-boot.lds boot.S
  28. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-boot.lds,--strip-debug -o $@ boot.S
  29. %.hex: %.bin
  30. ./bin2hex.py $< $@
  31. %.bin: %.elf
  32. $(OBJCOPY) -O binary $< $@
  33. prog_fw: firmware.bin
  34. $(ICEPROG) -o 1M $<
  35. clean:
  36. rm -f *.bin *.hex *.elf