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