CC=g++
CFLAGS= -Wall -std=c++17
OBJECTS= Main.o ScopedTimer.o FileIO.o MatrixInverse.o ComputationEngine.o
LDLIBS = -lstdc++fs -pthread

dcc: $(OBJECTS)
	$(CC) -o dcc $(OBJECTS) $(LDLIBS)

Main.o : Main.cpp
	$(CC) -c $(CFLAGS) Main.cpp

ScopedTimer.o : ScopedTimer.cpp ScopedTimer.h
	$(CC) -c $(CFLAGS) ScopedTimer.cpp

FileIO.o : FileIO.cpp FileIO.h
	$(CC) -c $(CFLAGS) FileIO.cpp

MatrixInverse.o : MatrixInverse.cpp MatrixInverse.h
	$(CC) -c $(CFLAGS) MatrixInverse.cpp

ComputationEngine.o : ComputationEngine.cpp ComputationEngine.h
	$(CC) -c $(CFLAGS) ComputationEngine.cpp

clean :
	rm dcc Main.o ScopedTimer.o FileIO.o MatrixInverse.o ComputationEngine.o
