CXX = clang++
CXXFLAGS = -std=c++14 -Wall -Iinclude -I../FLTK/include 
CXXFLAGS += -mmacosx-version-min=10.11 -mmacos-version-min=10.11
LINK = $(CXX)

CXXFLAGS += $(shell fltk-config --use-images --cxxflags)
LDFLAGS  += $(shell fltk-config --use-images --ldflags)
LDSTATIC = $(shell fltk-config --use-images --ldstaticflags)

SOURCES := $(wildcard src/*.cpp)

ifdef DEBUG
OBJECTS := $(SOURCES:src/%.cpp=lib/%d.o)
CXXFLAGS += -g -Og -DDEBUG
else
OBJECTS := $(SOURCES:src/%.cpp=lib/%.o)
CXXFLAGS += -O3 -DNDEBUG
endif

lib:
	@mkdir -p $@

lib/%.o: src/%.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@
lib/%d.o: src/%.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

lib/%.a: lib $(OBJECTS)
	$(AR) -r $@ $(filter-out $<, $^)

.PHONY: clean
clean:
	$(warning Cleaning all build files)
	@$(RM) -rf lib


# Helper targets to ease build of debug and release versions
.PHONY: debug release
debug:
	DEBUG=1 $(MAKE) lib/libGraph_libd.a
release:
	$(MAKE) lib/libGraph_lib.a

