如何防止makefile重建两次?

时间:2015-01-10 07:07:27

标签: makefile gnu-make

我有一个makefile(GNU Make),其规则如下:

Makefile: dep1
    ...rebuild makefile...

config:
    ...rebuild makefile...

但是,有时当我运行make config时,dep1Makefile更新,因此Makefile会重建两次。这是浪费我的时间。我该如何防止这种情况发生?

为了澄清,当用于生成文件的文件发生变化时,Makefile目标将重建makefile。 config目标允许您强制重建makefile并忽略缓存,例如,当系统配置发生更改时。

1 个答案:

答案 0 :(得分:0)

事实证明,有一个记录很少的变量名为MAKECMDGOALS,它列出了命令行中指定的目标。此变量不会出现在文档索引中的任何位置,并且不会出现在特殊变量的部分中,即使文档将其称为“特殊变量”!

以下是解决方案:

ifneq (config,$(MAKECMDGOALS))
Makefile: dep1
    ...rebuild makefile...
endif

config:
    ...rebuild makefile...