all: drawercalc.hex

drawercalc.o: drawercalc.c
	riscv32-none-elf-gcc -I../rvcontroller-libraries -march=rv32imcb_zicsr_zbkx -ffreestanding -O3 -c -o drawercalc.o drawercalc.c

drawercalc.elf: ../rvcontroller-libraries/rvcontroller-init.o ../rvcontroller-libraries/rvcontroller-ecalls.o drawercalc.o
	riscv32-none-elf-ld -T rvcontroller.ld --no-warn-rwx-segments -o drawercalc.elf ../rvcontroller-libraries/rvcontroller-init.o drawercalc.o ../rvcontroller-libraries/rvcontroller-ecalls.o

dump: drawercalc.elf
	riscv32-none-elf-objdump -d drawercalc.elf

drawercalc.hex: drawercalc.elf
	riscv32-none-elf-objcopy -O ihex drawercalc.elf drawercalc.hex

load: drawercalc.hex
	bash -c "wl-copy < drawercalc.hex"

clean:
	rm -f drawercalc.bin drawercalc.elf drawercalc.o init.o

