Makefile (1135B)
1 CC ?= cc 2 OPT ?= -O2 3 4 ARCHFLAGS := $(filter -march=% -mcpu=% -mavx% -mavx2% -mavx512% -msse% \ 5 -mssse3% -msse4% -mfma%,$(OPT)) 6 ifneq ($(ARCHFLAGS),) 7 $(error bench: OPT has arch flags ($(ARCHFLAGS)); the library ships without \ 8 them and the baseline is not comparable. Use OPT=-O2 or OPT=-O3) 9 endif 10 11 CFLAGS ?= -Wall -Wextra -Wpedantic $(OPT) 12 CFLAGS += -std=c11 -I../src 13 BENCH_DESC := $(CC) -std=c11 $(OPT) 14 CFLAGS += -DBENCH_FLAGS='"$(BENCH_DESC)"' 15 16 OUT := build 17 BIN := $(OUT)/bench 18 19 SRC := ../src/keccak-fast.c $(wildcard ../src/backend/*.c) 20 21 DONOR := lib/coruus/keccak-tiny/keccak-tiny.c 22 DONOR_OBJ := $(OUT)/kct.o 23 DONOR_DEFS := -Dshake128=kct_shake128 -Dshake256=kct_shake256 \ 24 -Dsha3_224=kct_sha3_224 -Dsha3_256=kct_sha3_256 \ 25 -Dsha3_384=kct_sha3_384 -Dsha3_512=kct_sha3_512 26 27 .PHONY: all run clean 28 all: $(BIN) 29 30 $(OUT): 31 @mkdir -p $(OUT) 32 33 $(DONOR): 34 @dep install 35 36 $(DONOR_OBJ): $(DONOR) | $(OUT) 37 @$(CC) $(CFLAGS) $(DONOR_DEFS) -c $< -o $@ 38 39 $(BIN): bench.c $(SRC) $(DONOR_OBJ) | $(OUT) 40 @$(CC) $(CFLAGS) bench.c $(SRC) $(DONOR_OBJ) -o $@ 41 42 run: $(BIN) 43 @$(BIN) 44 45 clean: 46 rm -rf $(OUT)