重复的$(信息)电话

ale*_*cov 4 makefile gnu-make

我有一个makefile,它使用$(info)函数调用向用户显示一些信息.但是,makefile还包括通过更新自动生成的依赖项文件gcc -M.每当需要重新创建这样的依赖项时,GNU Make会再次重新编译所有内容,从而复制使用$(info)和类似调用生成的输出.

有没有办法确定GNU Make是否在makefile中执行第一个或第二个这样的传递,以避免重复$(info)行?

ale*_*cov 5

我自己就找到了:MAKE_RESTARTS如果GMake在上述情况下重新启动,则定义变量.例如,构造:

ifndef MAKE_RESTARTS
    $(info Hello!)
endif
Run Code Online (Sandbox Code Playgroud)

只会在Make的第一个这样的传递中显示前面提到的消息.