考虑以下Makefile:
# <include global configuration Makefile>
INCL = -I../include \
-I<whatever>
CPPFLAGS=$(DEFS) $(INCL)
CXXFLAGS = -O0 -g -Wall -fmessage-length=0
SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)
all: $(OBJS)
%.o: %.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
depend: .depend
.depend: $(SRCS)
$(CPP) $(CPPFLAGS) -M $^ > $@
clean:
rm -f $(OBJS)
rm .depend
-include .depend
Run Code Online (Sandbox Code Playgroud)
此Makefile #include使用该g++ -M命令创建依赖关系链,并包含它.这可能是一个相当漫长的过程.问题是即使make clean被调用也会生成此文件,无论如何都会删除此文件.是否有条件地包含此文件,如果运行干净的目标,不打扰创建它?
Has*_*kun 12
像这样的东西:
ifneq ($(MAKECMDGOALS),clean)
-include .depend
endif
Run Code Online (Sandbox Code Playgroud)
编辑:-include不能缩进制表符,否则忽略.