-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
30 lines (27 loc) · 1.12 KB
/
Makefile
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
.PHONY: all check clean
CFLAGS = -g -O2
MFLAGS = SPIKE=$(SPIKE) TESTS=$(TESTS) XLEN=$(XLEN)
SPIKE = spike
TESTS = riscv-tests
XLEN = 32
all: mini repl rvui
mini: mini.o pcuart.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmach.o rvmies.ld rvmisa.ld rvmult.o syscon.o
repl: repl.o rvbase.o rvcsrs.o rvexec.o rvmult.o
rvui: rvui.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmach.o rvmisa.ld rvmult.o
rvui.o: elf.h
mini.o pcuart.o repl.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmach.o rvmult.o rvui.o syscon.o: riscv.h
mini.o pcuart.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmult.o syscon.o: rvexec.h
repl.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmult.o: rvinsn.h
check: check.mk rvui
+$(MAKE) $(MFLAGS) -f check.mk $@
check.mk: check.sh $(TESTS)
+$(SHELL) ./check.sh $(TESTS) $(XLEN) > $@
clean: clean-check
rm -f mini repl rvui mini.o pcuart.o repl.o rvatom.o rvbase.o rvcsrs.o rvexec.o rvmach.o rvmult.o rvui.o syscon.o check.mk
clean-check: check.mk
+$(MAKE) $(MFLAGS) -f check.mk clean
install:
mkdir -p $(DESTDIR)$(prefix)/bin
install -m 755 mini repl rvui $(DESTDIR)$(prefix)/bin
.c.o:
$(CC) -DXWORD_BIT=$(XLEN) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<