在 GNU makefile 中使用依赖项

Using dependencies in a GNU makefile

我对如何在我的 GNU makefile 中使用依赖项有疑问。
考虑以下生成文件:

// Building all my dependency files
$(OUTDIR)/%.dep: %.c
    $(DPP) $(CPPFLAGS) $(DPPFLAGS) $(@:dep=o) $< $@

现在,我有这些依赖文件,其中包含指向 files/dependencies 的列表或“指针”。

然后我想根据这些依赖项(当它们发生变化时)创建我的目标文件。
我可以做以下事情吗:

$(OUTDIR)/%.o $(OUTDIR)/%.orc: %.c $(OUTDIR)/%.dep
   $(AS) $(COMMONFLAGS) $(CPPFLAGS) $(ASFLAGS) -o $@ $<

然而,这是否意味着我将仅在我的 *.dep 文件实际更改时(不是那些依赖文件中列出的文件)才重建我的对象。 这是正确的做法吗?如果不是,那是什么?
我觉得我不是 using/understanding 这些依赖文件是如何被工具解释的。

依赖文件本身是makefile格式,输入到make,而不是gcc。要使用它们,您需要将它们包含在您的 makefile 中(如果尚未创建则忽略该文件):

-include $(wildcard *.dep)

唯一需要注意的是,它会在需要构建任何内容(包括“清理”)时构建 dep 文件,因此您需要在目标上设置包含条件:

ifneq ($(MAKECMDGOALS),clean)
-include $(wildcard *.dep)
endif