2 .SUFFIXES: .c .S .o .elf
6 TARGET = riscv64-unknown-linux-musl
7 CROSS = ./tools/bin/${TARGET}
12 CFLAGS = ${CFLAGS_OS} ${COPT} -std=c2x
13 LDFLAGS = ${LDFLAGS_OS} -lpthread
15 OBJ = src/linurv.o src/ecall.o src/cpu.o src/exec.o
17 PROGS = examples/test.elf \
26 ${CROSS}-objdump -d examples/$T.elf | less
30 cp -f linurv rootfs/bin
31 cp -f ${PROGS} rootfs/bin
32 cp -f test.txt rootfs/
33 ${CHROOT} rootfs /bin/linurv /bin/$T.elf
36 (cd tools; ${MAKE} distclean)
39 rm -f linurv src/*.o examples/*.elf *.core src/syscalls.h
43 mkdir -p ${DESTDIR}${PREFIX}/bin
44 cp -f linurv ${DESTDIR}${PREFIX}/bin/
48 ${CC} -o $@ ${OBJ} ${LDFLAGS}
50 src/ecall.o: src/syscalls.h
52 src/syscalls.h: src/syscalls.inc
53 sed 's/^\.set \(SYS_[a-z0-9_]*\), \([0-9]*\)$$/#define \1 \2/' \
54 < src/syscalls.inc > $@
57 ${CC} -c -o $@ $< ${CFLAGS}
61 ${CROSS}-gcc -g -o $@ $< -Og
64 ${CROSS}-gcc -g -o $@ $<