ADD?=
OPTIMIZATIONS=-funroll-all-loops
CFLAGS=-O3 -mavx -Wall -fopt-info-vec $(ADD)
CC=gcc

mm: main.o vectors.o
	gcc $(CFLAGS) main.o vectors.o -o mm

mm_profiled: main.c vectors.c avectors.s
	gcc $(CFLAGS) -fprofile-generate main.c vectors.c -o mm
	./mm 3998
	gcc $(CFLAGS) -fprofile-use main.c vectors.c -o mm

clean:
	rm main.o vectors.o mm

perf: mm FORCE
	perf stat -e cycles -e instructions ./mm 1999

check: mm FORCE
	./mm 1999
	diff -s matmul.out matmul.1999x1999x99

dist:
	mkdir effizienz-aufgabe17
	cp -p main.c vectors.c vectors.h Makefile HEADER.html matmul.1999x1999x99 effizienz-aufgabe17
	tar cfz effizienz-aufgabe17.tar.gz effizienz-aufgabe17
	rm -rf effizienz-aufgabe17

vectors.o: vectors.c vectors.h
	gcc $(CFLAGS) $(OPTIMIZATIONS) -o vectors.o -c vectors.c

main.o: main.c vectors.h

FORCE:

