CXX = mpicxx
CXXFLAGS = -std=c++17 -fopenmp -O3 -lstdc++fs -funroll-loops -ffast-math -finline-functions -fopenmp
INCLUDEDIR = ./include $(HOME)/.Library/spglib/include
SRCDIR := ./src
BUILDDIR := ./build
OBJDIR := $(BUILDDIR)/obj
TARGET := $(BUILDDIR)/Marici.exe


INCLUDE := $(addprefix -iquote, $(INCLUDEDIR))
SRC := $(shell find $(SRCDIR) -name *.cpp)
OBJ := $(SRC:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)

MKDIR = mkdir -p
RM = rm -rf


$(TARGET) : $(OBJ)
	$(CXX) -o $@ $^  -std=c++17 -fopenmp -O3 -lstdc++fs -funroll-loops -ffast-math -finline-functions -fopenmp libsymspg.so

$(OBJDIR)/%.o : $(SRCDIR)/%.cpp
	$(MKDIR) $(OBJDIR)
	$(CXX) $(CXXFLAGS) -o $@ -c $< $(INCLUDE)

.PHONY : clean
clean :
	$(RM) $(OBJDIR)
	$(RM) $(TARGET)

.PHONY : rebuild
rebuild :
	make clean
	make

