[英]How to conditionally include a file into Makefile?
考慮以下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
此Makefile使用g++ -M
命令創建#include
依賴關系鏈,並包含它。 這可能是一個相當漫長的過程。 問題是,即使調用make clean
,也會生成此文件,無論如何都會刪除此文件。 是否有條件地包含此文件,如果運行干凈的目標,不打擾創建它?
您可以在編譯期間免費 (即,無運行時成本)執行此類依賴項。 當您運行clean
,依賴項自然不會重新生成。 請參閱Paul Smith的高級自動依賴生成論文中的“ 組合編譯和依賴關系生成 ”一節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.