6
我有幾個C和C++項目,它們都遵循我已經使用了一段時間的基本結構。我的源文件進入src/*.c
,中間文件obj/*.[do]
,以及頂層目錄中的實際可執行文件。跳過某些目標的makefile依賴關係生成(例如`clean`)
我的makefile文件大致遵循此模板:
# The final executable
TARGET := something
# Source files (without src/)
INPUTS := foo.c bar.c baz.c
# OBJECTS will contain: obj/foo.o obj/bar.o obj/baz.o
OBJECTS := $(INPUTS:%.cpp=obj/%.o)
# DEPFILES will contain: obj/foo.d obj/bar.d obj/baz.d
DEPFILES := $(OBJECTS:%.o=%.d)
all: $(TARGET)
obj/%.o: src/%.cpp
$(CC) $(CFLAGS) -c -o [email protected] $<
obj/%.d: src/%.cpp
$(CC) $(CFLAGS) -M -MF [email protected] -MT $(@:%.d=%.o) $<
$(TARGET): $(OBJECTS)
$(LD) $(LDFLAGS) -o [email protected] $(OBJECTS)
.PHONY: clean
clean:
-rm -f $(OBJECTS) $(DEPFILES) $(RPOFILES) $(TARGET)
-include $(DEPFILES)
現在我在哪裏,我這包裝爲Debian系統的地步。我使用debuild
來構建Debian源代碼包,並使用pbuilder
來構建二進制包。 debuild
步驟只需執行clean
目標,但即使這樣也會生成幷包含依賴文件。
總之,我的問題是:當我想要運行clean
目標時,能否以某種方式防止生成依賴關係?