VORONOI_DIAGRAM_2D_TARGET=VoronoiDiagram2D
VORONOI_DIAGRAM_2D_SOURCE=VoronoiDiagram2D/VoronoiDiagram2D.cpp VoronoiDiagram2D/glew.c

ifeq ($(OS),Windows_NT)
    detected_OS := Windows
else
    detected_OS := $(shell uname)
endif


CFLAGS += -I. -I.. -std=c++14 -Wunused-result
ifeq ($(detected_OS),Darwin)
	LFLAGS += -L. -lGLEW -framework GLUT -framework OpenGL -ljpeg -lpng -lz
else
	LFLAGS += -L. -lGLEW -lglut -lGLU -lGL -ljpeg -lpng -lz
endif

CFLAGS_RELEASE = -O3 -DRELEASE -funroll-loops -ffast-math -DNDEBUG
LFLAGS_RELEASE = -O3 

SRC = ./
BIN = Bin/Linux/
BIN_O = ./
INCLUDE = /usr/include/ -I.

ifeq ($(detected_OS),Darwin)
	CC=gcc-9
	CXX=g++-9
else
	CC=gcc
	CXX=g++
endif

MD=mkdir

VORONOI_DIAGRAM_2D_OBJECTS=$(addprefix $(BIN_O), $(addsuffix .o, $(basename $(VORONOI_DIAGRAM_2D_SOURCE))))


all: $(BIN)$(VORONOI_DIAGRAM_2D_TARGET)

VoronoiDiagram2D: $(BIN)$(VORONOI_DIAGRAM_2D_TARGET)


clean:
	rm -f $(BIN)$(VORONOI_DIAGRAM_2D_TARGET)

$(BIN):
	mkdir -p $(BIN)

$(BIN)$(VORONOI_DIAGRAM_2D_TARGET): $(VORONOI_DIAGRAM_2D_OBJECTS)
	mkdir -p $(BIN)
	$(CXX) -o $@ $(VORONOI_DIAGRAM_2D_OBJECTS) $(LFLAGS)

$(BIN_O)%.o: $(SRC)%.c
	$(CC) -c -o $@ $(CFLAGS) -I$(INCLUDE) $<

$(BIN_O)%.o: $(SRC)%.cpp
	$(CXX) -c -o $@ $(CFLAGS) -I$(INCLUDE) $<

