keccak-fast.c

Minimal SIMD keccak implementation
git clone git://git.finwo.net/lib/keccak-fast.c
Log | Files | Refs | README | LICENSE

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)