CXXFLAGS += -std=c++11 CXXFLAGS_debug := -g -O0 CXXFLAGS_release := -O2 CXXFLAGS += ${CXXFLAGS_${CONFIG}} CFLAGS += CFLAGS_debug := -g -O0 CFLAGS_release :=- O2 CFLAGS += ${CFLAGS_${CONFIG}} LFLAGS += LFLAGS_release := LFLAGS_debug := -g LFLAGS += ${LFLAGS_${CONFIG}} CXX_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .cpp,.o,$(CXX_SRCS))) GCC_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .c,.o,$(GCC_SRCS))) OBJS := $(CXX_OBJS) $(GCC_OBJS) DEPS := $(OBJS:%.o=%.d) .PHONY: test ${CXX_OBJS}: $(BUILD_DIR)/%.o : %.cpp $(CXX_SRCS) | $(BUILD_DIR) @echo create $(dir $@) @mkdir -p $(dir $@) g++ -MMD ${CXXFLAGS} ${DEFINES} ${INCLUDES} -o $@ -c $< ${GCC_OBJS}: $(BUILD_DIR)/%.o : %.c $(GCC_SRCS) | $(BUILD_DIR) @echo create $(dir $@) @mkdir -p $(dir $@) gcc -MMD ${CFLAGS} ${DEFINES} ${INCLUDES} -o $@ -c $< $(BUILD_DIR): @echo create $@ @mkdir -p $(dir $@)