matmul.c

Matrix multiplication helper library
git clone git://git.finwo.net/lib/matmul.c
Log | Files | Refs | README | LICENSE

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 {} +