CC ?= clang CFLAGS_MARCH ?= -march=rv32imacbzicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt CFLAGS_OPT ?= -O3 CFLAGS ?= ${CFLAGS_MARCH} ${CFLAGS_OPT} # Big-endian just for the sake of being weird ifeq (${CC}, clang) CC := ${CC} -target riscv32be-none-elf endif .PHONY: all dump load clean all: blankscreen.hex blankscreen.o: blankscreen.c ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o blankscreen.o blankscreen.c blankscreen.elf: ../rvcontroller-libraries/rvcontroller-init-be.o ../rvcontroller-libraries/rvcontroller-ecalls-be.o blankscreen.o ${CC} -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o blankscreen.elf ../rvcontroller-libraries/rvcontroller-init-be.o ../rvcontroller-libraries/rvcontroller-ecalls-be.o blankscreen.o dump: blankscreen.elf riscv32be-none-elf-objdump -d blankscreen.elf blankscreen.hex: blankscreen.elf riscv32be-none-elf-objcopy -O ihex blankscreen.elf blankscreen.hex load: blankscreen.hex bash -c "wl-copy < blankscreen.hex" clean: rm -f blankscreen.bin blankscreen.elf blankscreen.o