CC = gcc
CFLAGS = -O3 -mcpu=native -std=c11 -D_GNU_SOURCE -Wall -Wextra
LDFLAGS = -lm

.PHONY: all check run plot clean

all: cpu_matmul cpu_matmul_opt

cpu_matmul: cpu_matmul.c
	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)

cpu_matmul_opt: cpu_matmul_opt.c
	$(CC) $(CFLAGS) -fopenmp -o $@ $< $(LDFLAGS)

check: all
	./cpu_matmul --check
	./cpu_matmul_opt --check

# Full pipeline (benchmarks + plot); see run_all.sh
run:
	bash run_all.sh

plot:
	python3 plot.py

clean:
	rm -f cpu_matmul cpu_matmul_opt result_*.csv cpu_*.png gpu_*.png
