CC ?= clang CFLAGS_MARCH ?= -march=rv32imacb_zicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt CFLAGS_OPT ?= -O3 CFLAGS ?= ${CFLAGS_MARCH} ${CFLAGS_OPT} ifeq (${CC}, clang) CC := ${CC} -target riscv32-none-elf endif .PHONY: all dump load clean all: menu.hex menu.o: menu.c calculator.h digilines.h games.h screensaver.h ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o menu.o menu.c calculator.o: calculator.c ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o calculator.o calculator.c digilines.o: digilines.c ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o digilines.o digilines.c games.o: games.c ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o games.o games.c screensaver.o: screensaver.c ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o screensaver.o screensaver.c menu.elf: ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o menu.o calculator.o digilines.o games.o screensaver.o # riscv32-none-elf-ld -T rvcontroller.ld --no-warn-rwx-segments -o menu.elf ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o menu.o calculator.o digilines.o games.o ${CC} -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o menu.elf ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o menu.o calculator.o digilines.o games.o screensaver.o dump: menu.elf riscv32-none-elf-objdump -d menu.elf menu.hex: menu.elf riscv32-none-elf-objcopy -O ihex menu.elf menu.hex load: menu.hex bash -c "wl-copy < menu.hex" clean: rm -f menu.bin menu.elf menu.o init.o calculator.o digilines.o games.o screensaver.o