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}