GNU make 指南 (十九)

2010-12-30 20:23:57 · 作者: · 浏览: 14670
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 结束 ===

      有几个地方值得解释一下的。首先,我在定义大部分变量的时候使 用的