使make重建成为依赖于已删除文件的目标

时间:2017-12-04 21:09:19

标签: makefile incremental-build

假设我有make这样的规则:

SOURCES := $(wildcard ./text/*.txt)

$(INDEX) : $(SOURCES)
    $(COMPILER) $(SOURCES)

然后删除其中一个文本文件./text/foo.txt。目标$(INDEX)似乎没有重建。在这种情况下如何进行make重建?

1 个答案:

答案 0 :(得分:2)

如果您的./text目录仅包含您的来源及所有来源,则可以将其添加为目标的先决条件:

$(INDEX) : $(SOURCES) ./text

目录与常规文件不同:当您在其中添加,删除或重命名文件(或子目录)时,它们的上次修改日期会更新,而不是在修改现有文件时。可以将其视为包含所包含文件列表的文件。