SHELL := bash

BIN=./bin

ifeq ($(CC),icc)
  MPICC = mpiicc
endif

MPICC ?= mpicc

$(shell  mkdir -p $(BIN))

CFLAGS_BASE = -std=c99 -O3 -Wall

MPICFLAGS_mpicc   = -march=native
MPICFLAGS_mpiicc   = -march=core-avx2

MPICFLAGS += $(CFLAGS_BASE) $(MPICFLAGS_$(MPICC))

LDFLAGS = -lm

EXES = $(patsubst %.c, %.x, $(filter-out message_matching.c, $(wildcard *.c)))

all: $(EXES) $(MATCHING_EXE)

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

clean:
	rm -rf $(BIN)