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) $(KECC) $(OBJS) $(OBJS_GCC) driver.o bench bench-gcc