如果我有一个调用另一个makefile的makefile,如何让master makefile正确检查下级makefile的依赖项是否已更改?
例如,如果我有规则
server: @cd $(SERVERDIR) && $(MAKE)
这会在我构建可执行文件"server"的子目录中调用make.但是,如果我更改组成服务器的其中一个文件,则父make不会看到更改并拒绝重建服务器 - "make:`server'是最新的."
如何让master makefile正确检测其中一个相关文件(例如$(SERVERDIR)/server.c)的变化?
看起来你想要使用虚假的目标
.PHONY: server server: @cd $(SERVERDIR) && $(MAKE)
还有的假目标的详细说明在这里,但简短的描述是你告诉生成文件永远不会有一个与此服务器的目标相对应的文件,因此它不会考虑服务器上的日期是否有目录中的文件名为server.