TARGET := rpivendor

CXX=g++
BUILD_DIR ?= ./build
SRC_DIRS ?= ./src

SRCS := $(shell find $(SRC_DIRS) -name *.cpp -or -name *.c)
OBJS := $(SRCS:%=$(BUILD_DIR)/%.o)
DEPS := $(OBJS:.o=.d)

INCS=\
	./src \
	./include \
	./external \

LIBS=\
	cpprest \
	boost_system \
	crypto \
	glfw	\
	GLEW	\
	GL	\
	X11	\
	pigpiod_if2 \
	pthread \
	dl

CPP_FLAGS ?= \
	-MMD -MP \
	-Wno-psabi

#$(warning $(INC_DIRS))

ifeq ($(DEBUG), 1)
	CPP_FLAGS += -g -O0
else
	CPP_FLAGS += -O2
endif

$(TARGET): $(OBJS)
	$(CXX) -o $@ $^ $(LDFLAGS) $(addprefix -l,$(LIBS))

$(BUILD_DIR)/%.cpp.o: %.cpp
	@mkdir -p $(dir $@)
	$(CXX) $(CPP_FLAGS) $(addprefix -I,$(INCS)) -c $< -o $@


.PHONY: clean

clean:
	$(RM) -r $(BUILD_DIR)

-include $(DEPS)

