
CPP=g++
MPICPP=mpic++
CPPFLAGS= -std=c++17 -O3 -march=native -mtune=native -ffast-math -Wall -Wpedantic -pedantic
OUT=main

seriel: main.cpp Matrix.h Solver.h
	$(CPP) main.cpp $(CPPFLAGS) -o $(OUT)_seriel

mpi: main.cpp Matrix.h Solver.h
	$(MPICPP) main.cpp $(CPPFLAGS) -DUSE_MPI -o $(OUT)_mpi

all: seriel mpi

test: seriel mpi
	./$(OUT)_seriel 1D 125 1000
	mpirun -n 4 ./$(OUT)_mpi 2D 125 1000
# for script in *.R; do R --vanilla < $${script}; done

clean:
	rm -f *.o *.R main $(OUT)_seriel $(OUT)_mpi
