summaryrefslogtreecommitdiff
path: root/c/blankscreen/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'c/blankscreen/Makefile')
-rw-r--r--c/blankscreen/Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/c/blankscreen/Makefile b/c/blankscreen/Makefile
new file mode 100644
index 0000000..5d96eeb
--- /dev/null
+++ b/c/blankscreen/Makefile
@@ -0,0 +1,34 @@
+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
+