Makefile:make clean调用其他规则而不依赖于它们

时间:2012-02-02 16:11:32

标签: makefile rules

我写了一个奇怪的makefile。您可以在此处找到它:http://pastebit.com/pastie/8215

基本上每当我输入make clean时,make就会在第44,40和25行执行规则(按此顺序)。这很奇怪,因为没有任何依赖干净和干净没有任何依赖。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我认为你需要将它添加到Makefile的底部:

ifneq ($(MAKECMDGOALS),clean)
-include .depend
endif

并从第29行删除“include .depend”。

答案 1 :(得分:1)

这是因为你在第29行include .depend,这取决于$(SRCLIST),而make -d依次是你在问题中提到的规则。

来自How Makefiles Are Remade章节:

  

为此,在阅读所有makefile之后,make会将每个作为目标目标并尝试更新它。如果一个makefile有一条规则说明如何更新它(在那个makefile或另一个中找到)或者隐含规则适用于它(参见使用隐式规则),它将在必要时更新。

另外我想调用{{1}}会告诉你更多相关内容。