mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-15 06:58:50 +00:00
39 lines
876 B
Makefile
39 lines
876 B
Makefile
CC=riscv64-linux-gnu-gcc
|
|
CXX=riscv64-linux-gnu-g++
|
|
KECC=../target/release/kecc
|
|
CFLAGS=-O
|
|
RM=rm -f
|
|
|
|
SRCS=$(shell find . -name "*.c")
|
|
OBJS=$(subst .c,.s,$(SRCS))
|
|
OBJS_GCC=$(subst .c,.o,$(SRCS))
|
|
|
|
all: bench bench-gcc
|
|
|
|
bench: $(OBJS) driver.o
|
|
$(CXX) -o bench $(OBJS) driver.o
|
|
|
|
run: bench
|
|
qemu-riscv64-static -L /usr/riscv64-linux-gnu ./bench
|
|
|
|
bench-gcc: $(OBJS_GCC) driver.o
|
|
$(CXX) -o bench-gcc $(OBJS_GCC) driver.o
|
|
|
|
run-gcc: bench-gcc
|
|
qemu-riscv64-static -L /usr/riscv64-linux-gnu ./bench-gcc
|
|
|
|
driver.o: $(SRCS) driver.cpp
|
|
$(CXX) $(CFLAGS) -fsigned-char -o driver.o -c -I. driver.cpp
|
|
|
|
%.s: %.c $(KECC)
|
|
($(KECC) -O $< -o $@) || (rm $@ -rf; exit 1)
|
|
|
|
%.o: %.c
|
|
($(CC) -O -fsigned-char -c $< -o $@) || (rm $@ -rf; exit 1)
|
|
|
|
$(KECC):
|
|
cargo build --manifest-path=../Cargo.toml --features=build-bin --release --bin kecc
|
|
|
|
clean:
|
|
$(RM) $(OBJS) $(OBJS_GCC) driver.o bench bench-gcc
|