重复的$(信息)电话

时间:2011-08-17 19:48:33

标签: makefile gnu-make

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

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

1 个答案:

答案 0 :(得分:5)

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

ifndef MAKE_RESTARTS
    $(info Hello!)
endif

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