Makefile (896B)
1 SRC=$(wildcard src/*.c) 2 3 FIND=$(shell which gfind find | head -1) 4 5 INCLUDES?= 6 INCLUDES+=-I src 7 8 CFLAGS?=-Wall -std=c99 9 10 include lib/.dep/config.mk 11 12 CFLAGS+=-D_DEFAULT_SOURCE -mfma -mavx2 -mavxvnni -mavx512f -mavx512vnni -mavx512bw -fopenmp -O3 13 14 CFLAGS+=$(INCLUDES) 15 16 OBJ=$(SRC:.c=.o) 17 18 BIN=\ 19 test_matmul \ 20 benchmark 21 22 default: $(BIN) 23 24 test/%.o: test/%.c 25 $(CC) $(CFLAGS) -c $< -o $@ 26 27 test_matmul: $(OBJ) test/test_matmul.o 28 $(CC) $(CFLAGS) $(OBJ) test/test_matmul.o -o $@ -lrt -fopenmp 29 30 benchmark: $(OBJ) test/benchmark.o 31 $(CC) $(CFLAGS) $(OBJ) test/benchmark.o -o $@ -lrt -fopenmp 32 33 .PHONY: clean 34 clean: 35 rm -f $(OBJ) 36 rm -f $(BIN:=.o) 37 38 # README.md: ${SRC} src/matmul.h 39 # stddoc < src/matmul.h > README.md 40 41 .PHONY: format 42 format: 43 $(FIND) src/ -type f \( -name '*.c' -o -name '*.h' \) -exec clang-format -i {} + 44 $(FIND) test/ -type f \( -name '*.c' -o -name '*.h' \) -exec clang-format -i {} +