ING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS))
MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.c,$(MISSING_DEPS))
$(patsubst %.d,%.cc,$(MISSING_DEPS))) CPPFLAGS += -MD
.PHONY : everything deps objs clean veryclean rebuild
everything :
$(EXECUTABLE)
deps : $(DEPS)
objs : $(OBJS)
clean : @$(RM-F) *.o @$(RM-F) *.d
veryclean: clean @$(RM-F) $(EXECUTABLE)
rebuild: veryclean everything
ifneq ($(MISSING_DEPS)
$(MISSING_DEPS) : @$(RM-F) $(patsubst %.d,%.o,$@) endif
-include $(DEPS)
$(EXECUTABLE) : $(OBJS)
gcc -o $(EXECUTABLE) $(OBJS) $(addprefix -l,$(LIBS))
=== makefile
结束 ===
有几个地方值得解释一下的。首先,我在定义大部分变量的时候使 用的 |