summaryrefslogtreecommitdiff
path: root/c/menu/Makefile
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2026-05-23 20:14:34 -0500
committercheapie <no-email-for-you@example.com>2026-05-23 20:14:34 -0500
commit85b5fde272be6ab543aa866baebabddc24566bdb (patch)
treeb4f2e3bb634effe51c2bdc5585ca4ea8b98d6dfa /c/menu/Makefile
downloadrvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.gz
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.bz2
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.tar.xz
rvcontroller-85b5fde272be6ab543aa866baebabddc24566bdb.zip
Add initial content
Diffstat (limited to 'c/menu/Makefile')
-rw-r--r--c/menu/Makefile44
1 files changed, 44 insertions, 0 deletions
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
+