summaryrefslogtreecommitdiff
path: root/c/randomcolor/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'c/randomcolor/Makefile')
-rw-r--r--c/randomcolor/Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/c/randomcolor/Makefile b/c/randomcolor/Makefile
new file mode 100644
index 0000000..fbf70fd
--- /dev/null
+++ b/c/randomcolor/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: randomcolor.hex
+
+randomcolor.o: randomcolor.c
+ ${CC} -I../rvcontroller-libraries ${CFLAGS} -ffreestanding -c -o randomcolor.o randomcolor.c
+
+
+randomcolor.elf: ../rvcontroller-libraries/rvcontroller-init-be.o ../rvcontroller-libraries/rvcontroller-ecalls-be.o randomcolor.o
+ ${CC} -T rvcontroller.ld -nostdlib -nostartfiles -Xlinker --no-warn-rwx-segments -o randomcolor.elf ../rvcontroller-libraries/rvcontroller-init-be.o ../rvcontroller-libraries/rvcontroller-ecalls-be.o randomcolor.o
+
+dump: randomcolor.elf
+ riscv32be-none-elf-objdump -d randomcolor.elf
+
+randomcolor.hex: randomcolor.elf
+ riscv32be-none-elf-objcopy -O ihex randomcolor.elf randomcolor.hex
+
+load: randomcolor.hex
+ bash -c "wl-copy < randomcolor.hex"
+
+clean:
+ rm -f randomcolor.bin randomcolor.elf randomcolor.o
+