SRC=src
INC=include
BIN=bin

SRCS=$(wildcard ${SRC}/*.cpp)
OBJS=$(patsubst ${SRC}/%.cpp, ${BIN}/%.o, ${SRCS})
TARGET_BINARY=${BIN}/main #[replace by target_binary_name]

CXX ?= g++  # or clang++
CXXFLAGS += -I${INC} -std=c++14 -pedantic 
CXXFLAGS += -Wall -Wextra -Wno-unused

all: ${TARGET_BINARY}

${TARGET_BINARY} : ${OBJS}
	${CXX} $^ -o $@

${BIN}/%.o: ${SRC}/%.cpp
	${CXX} ${CXXFLAGS} -c $< -o $@

.PHONY: clean
clean:
	rm -f ${OBJS}
	rm -f ${TARGET_BINARY}