我有一个makefile(GNU Make),其规则如下:
Makefile: dep1
...rebuild makefile...
config:
...rebuild makefile...
但是,有时当我运行make config
时,dep1
比Makefile
更新,因此Makefile
会重建两次。这是浪费我的时间。我该如何防止这种情况发生?
为了澄清,当用于生成文件的文件发生变化时,Makefile
目标将重建makefile。 config
目标允许您强制重建makefile并忽略缓存,例如,当系统配置发生更改时。
答案 0 :(得分:0)
事实证明,有一个记录很少的变量名为MAKECMDGOALS
,它列出了命令行中指定的目标。此变量不会出现在文档索引中的任何位置,并且不会出现在特殊变量的部分中,即使文档将其称为“特殊变量”!
以下是解决方案:
ifneq (config,$(MAKECMDGOALS))
Makefile: dep1
...rebuild makefile...
endif
config:
...rebuild makefile...