summaryrefslogtreecommitdiff
path: root/c/blankscreen/Makefile
blob: 5d96eeb1bd9a1a963491ea57310c40d82e5d171f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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