From 85b5fde272be6ab543aa866baebabddc24566bdb Mon Sep 17 00:00:00 2001 From: cheapie Date: Sat, 23 May 2026 20:14:34 -0500 Subject: Add initial content --- c/menu/Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 c/menu/Makefile (limited to 'c/menu/Makefile') diff --git a/c/menu/Makefile b/c/menu/Makefile new file mode 100644 index 0000000..bd92e6a --- /dev/null +++ b/c/menu/Makefile @@ -0,0 +1,44 @@ +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 + -- cgit v1.2.3