SHELL := bash

BIN=./bin

ARCH     = native
ARCHFLAG = march

$(shell  mkdir -p $(BIN))

CFLAGS_BASE = -std=c99 -O3 -fopenmp -Wall

CFLAGS_gcc   = -march=native
CFLAGS_clang = $(CFLAGS_GNU)
CFLAGS_icc   = -march=core-avx2

CFLAGS += $(CFLAGS_BASE) $(CFLAGS_$(CC))

LDFLAGS = -lm

EXES = $(patsubst %.c, %.x, $(wildcard *.c))

all: $(EXES)

$(EXES): %.x : %.c
	$(CC) $(CFLAGS) -o $(BIN)/$@ $^ $(LDFLAGS) 

clean:
	rm -rf $(BIN)

run: $(EXES)
	for i in $(EXES); do                          \
		echo -e "\n---> Running $$i on 1 thread\n"; \
		OMP_NUM_THREADS=1 $(BIN)/$$i;               \
		echo -e "\n---> Running $$i on 8 thread\n"; \
		OMP_NUM_THREADS=8 $(BIN)/$$i;               \
	done