Blame


1 28b38de8 2024-02-18 benni .SUFFIXES:
2 28b38de8 2024-02-18 benni .SUFFIXES: .c .S .o .elf
3 074dbafb 2024-02-18 benni
4 52a430f3 2024-02-18 benni PREFIX = /usr/local
5 d83e2c2b 2024-02-19 benni TARGET = riscv64-unknown-linux-musl
6 d86f6f86 2024-04-06 benni HOSTOS != if test -e 'config.mk.local'; then echo 'local'; else uname; fi
7 d83e2c2b 2024-02-19 benni CROSS = ./tools/bin/${TARGET}
8 3528385d 2024-04-06 benni CONFIG = config.mk.${HOSTOS}
9 3528385d 2024-04-06 benni
10 3528385d 2024-04-06 benni include ${CONFIG}
11 3528385d 2024-04-06 benni
12 3528385d 2024-04-06 benni COPT = -g -O2
13 3528385d 2024-04-06 benni CFLAGS = ${CFLAGS_OS} ${COPT} -std=c2x
14 3528385d 2024-04-06 benni LDFLAGS = ${LDFLAGS_OS} -lpthread
15 3528385d 2024-04-06 benni
16 a8ceaca4 2024-02-20 benni OBJ = src/rvemu.o src/ecall.o src/cpu.o src/exec.o
17 6bf04703 2024-04-05 benni T = asm
18 e46639b3 2024-02-20 benni PROGS = examples/test.elf \
19 e46639b3 2024-02-20 benni examples/echo.elf \
20 b4cef989 2024-02-21 benni examples/cat.elf \
21 6bf04703 2024-04-05 benni examples/hello.elf \
22 6bf04703 2024-04-05 benni examples/asm.elf
23 074dbafb 2024-02-18 benni
24 28b38de8 2024-02-18 benni all: rvemu ${PROGS}
25 074dbafb 2024-02-18 benni
26 e46639b3 2024-02-20 benni od: examples/$T.elf
27 e46639b3 2024-02-20 benni ${CROSS}-objdump -d examples/$T.elf | less
28 a67f2fcd 2024-02-20 benni
29 e46639b3 2024-02-20 benni run: rvemu ${PROGS}
30 e46639b3 2024-02-20 benni mkdir -p rootfs/bin
31 e46639b3 2024-02-20 benni cp -f rvemu rootfs/bin
32 e46639b3 2024-02-20 benni cp -f ${PROGS} rootfs/bin
33 b4cef989 2024-02-21 benni cp -f test.txt rootfs/
34 d86f6f86 2024-04-06 benni ${CHROOT} rootfs /bin/rvemu /bin/$T.elf
35 e46639b3 2024-02-20 benni
36 3528385d 2024-04-06 benni distclean: clean
37 3528385d 2024-04-06 benni (cd tools; ${MAKE} distclean)
38 3528385d 2024-04-06 benni
39 074dbafb 2024-02-18 benni clean:
40 e46639b3 2024-02-20 benni rm -f rvemu src/*.o examples/*.elf *.core src/syscalls.h
41 52a430f3 2024-02-18 benni rm -rf rootfs
42 074dbafb 2024-02-18 benni
43 52a430f3 2024-02-18 benni install: rvemu
44 52a430f3 2024-02-18 benni mkdir -p ${DESTDIR}${PREFIX}/bin
45 52a430f3 2024-02-18 benni cp -f rvemu ${DESTDIR}${PREFIX}/bin/
46 074dbafb 2024-02-18 benni
47 074dbafb 2024-02-18 benni
48 28b38de8 2024-02-18 benni rvemu: ${OBJ}
49 28b38de8 2024-02-18 benni ${CC} -o $@ ${OBJ} ${LDFLAGS}
50 28b38de8 2024-02-18 benni
51 a8ceaca4 2024-02-20 benni src/ecall.o: src/syscalls.h
52 52a430f3 2024-02-18 benni
53 a8ceaca4 2024-02-20 benni src/syscalls.h: src/syscalls.inc
54 52a430f3 2024-02-18 benni sed 's/^\.set \(SYS_[a-z0-9_]*\), \([0-9]*\)$$/#define \1 \2/' \
55 a8ceaca4 2024-02-20 benni < src/syscalls.inc > $@
56 52a430f3 2024-02-18 benni
57 ced16aa5 2024-04-06 benni .c.o:
58 28b38de8 2024-02-18 benni ${CC} -c -o $@ $< ${CFLAGS}
59 28b38de8 2024-02-18 benni
60 28b38de8 2024-02-18 benni
61 a8ceaca4 2024-02-20 benni .c.elf:
62 6bf04703 2024-04-05 benni ${CROSS}-gcc -g -o $@ $< -Og
63 6bf04703 2024-04-05 benni
64 6bf04703 2024-04-05 benni .S.elf:
65 6bf04703 2024-04-05 benni ${CROSS}-gcc -g -o $@ $<