我有一个makefile,它使用$(info)
函数调用向用户显示一些信息。但是,makefile还包括通过gcc -M
更新的自动生成的依赖项文件。每当需要重新创建这样的依赖项时,GNU Make会再次重新解析所有内容,从而复制$(info)
和类似调用生成的输出。
有没有办法确定GNU Make是否在makefile中执行第一个或第二个这样的传递,以避免重复$(info)
行?
答案 0 :(得分:5)
我自己就找到了:如果GMake在上述情况下重新启动,则会定义MAKE_RESTARTS
变量。例如,构造:
ifndef MAKE_RESTARTS
$(info Hello!)
endif
只会在Make的第一个传递中显示前面提到的消息。