Makefile 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. CROSS_COMPILE ?= riscv64-unknown-linux-gnu-
  2. INCLUDES := -I../../ -I../../micropython/ports -I../../core_jpeg/c_model
  3. ASFLAGS := -g -ggdb -Wall -O3
  4. CFLAGS := -g -ggdb -Wall -O3
  5. CPPFLAGS := -g -ggdb -Wall -O3
  6. LDFLAGS := -T linker.ld -nostdlib
  7. MCFLAGS := -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c906 -mcmodel=medlow -fno-stack-protector -mstrict-align
  8. MCPPFLAGS = $(MCFLAGS)
  9. DEFINES += -D__RISCV64__
  10. ASFLAGS += -ffunction-sections -fdata-sections -ffreestanding -std=gnu99 $(DEFINES)
  11. CFLAGS += -ffunction-sections -fdata-sections -ffreestanding -std=gnu99 $(DEFINES)
  12. CPPFLAGS += -ffunction-sections -fdata-sections -ffreestanding $(DEFINES) -fno-threadsafe-statics
  13. LDFLAGS += -Wl,-gc-sections
  14. AS := $(CROSS_COMPILE)gcc -x assembler-with-cpp
  15. CC := $(CROSS_COMPILE)gcc
  16. CXX := $(CROSS_COMPILE)g++
  17. LD := $(CROSS_COMPILE)ld
  18. AR := $(CROSS_COMPILE)ar
  19. SZ := $(CROSS_COMPILE)size
  20. OC := $(CROSS_COMPILE)objcopy
  21. OD := $(CROSS_COMPILE)objdump
  22. MKDIR := mkdir -p
  23. CP := cp -af
  24. RM := rm -fr
  25. CD := cd
  26. FIND := find
  27. CPIO := cpio -o -H newc --quiet
  28. all: output.bin
  29. xfel ddr f133
  30. xfel write 0x40000000 output.bin
  31. xfel exec 0x40000000
  32. output.bin: start.o main.o sys.o driver_uart.o driver_framebuffer.o memcpy.o memset.o printf.o rawdata.o sw_accel_cores.o c_model_jpeg_test.o
  33. @echo [LD] Linking $@
  34. @$(CC) $(LDFLAGS) $^ -o $@.elf -Wl,--cref,-Map=$@.map
  35. @echo [OC] Objcopying $@
  36. @$(OC) -O binary $@.elf $@
  37. @echo [SZ] Listing $@
  38. @$(SZ) $@.elf
  39. main.o: main.c
  40. @echo [CC] $<
  41. $(CC) $(INCLUDES) $(CFLAGS) $(MCFLAGS) -c $< -o$@
  42. sys.o: sys.c
  43. @echo [CC] $<
  44. @$(CC) $(INCLUDES) $(CFLAGS) $(MCFLAGS) -c $< -o$@
  45. driver_uart.o: driver_uart.c
  46. @echo [CC] $<
  47. @$(CC) $(INCLUDES) $(CFLAGS) $(MCFLAGS) -c $< -o$@
  48. driver_framebuffer.o: driver_framebuffer.c
  49. @echo [CC] $<
  50. @$(CC) $(INCLUDES) $(CFLAGS) $(MCFLAGS) -c $< -o$@
  51. printf.o: printf.c
  52. @echo [CC] $<
  53. @$(CC) $(INCLUDES) $(CFLAGS) $(MCFLAGS) -c $< -o$@
  54. sw_accel_cores.o: sw_accel_cores.cpp
  55. @echo [CXX] $<
  56. @$(CXX) $(INCLUDES) $(CPPFLAGS) $(MCPPFLAGS) -c $< -o$@
  57. c_model_jpeg_test.o: c_model_jpeg_test.cpp
  58. @echo [CXX] $<
  59. @$(CXX) $(INCLUDES) $(CPPFLAGS) $(MCPPFLAGS) -c $< -o$@
  60. start.o: start.S
  61. @echo [AS] $<
  62. @$(AS) $(ASFLAGS) -I. -c $< -o $@
  63. memcpy.o: memcpy.S
  64. @echo [AS] $<
  65. @$(AS) $(ASFLAGS) -I. -c $< -o $@
  66. memset.o: memset.S
  67. @echo [AS] $<
  68. @$(AS) $(ASFLAGS) -I. -c $< -o $@
  69. rawdata.o: rawdata.S splash640x480.data splash640x480.jpeg
  70. @echo [AS] $<
  71. @$(AS) $(ASFLAGS) -I. -c $< -o $@
  72. clean:
  73. @$(RM) *.o output.bin* *.map