DEPFLAGS := -MMD CXXFLAGS_debug ?= -g -O0 CXXFLAGS_release ?= -O2 CXXFLAGS += ${CXXFLAGS_${CONFIG}} CFLAGS_debug ?= -g -O0 CFLAGS_release ?=- O2 CFLAGS += ${CFLAGS_${CONFIG}} DEFINES += ${DEFINES_${CONFIG}} CXX_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .cpp,.o,$(CXX_SRCS))) GCC_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .c,.o,$(GCC_SRCS))) OBJS = $(shell find ${BUILD_DIR} -name *.o 2>/dev/null) DEPS := $(OBJS:%.o=%.d) compile: pkg_info ${CXX_OBJS} ${GCC_OBJS} ${CXX_OBJS}: $(BUILD_DIR)/%.o : %.cpp $(CXX_SRCS) | $(BUILD_DIR) @mkdir -p $(dir $@) @echo Compiling $< $(CXX) ${DEPFLAGS} ${CXXFLAGS} ${DEFINES} ${INCLUDES} -o $@ -c $< ${GCC_OBJS}: $(BUILD_DIR)/%.o : %.c $(GCC_SRCS) | $(BUILD_DIR) @mkdir -p $(dir $@) @echo Compiling $@ $(CC) ${DEPFLAGS} ${CFLAGS} ${DEFINES} ${INCLUDES} -o $@ -c $< $(BUILD_DIR): @mkdir -p $(dir $@) pkg_info: @echo Package $(NAME) .PHONY: clean clean: rm -rf ${BUILD_DIR}/* -include $(DEPS)