如果源是最新的,如何回显消息

时间:2016-11-28 06:35:04

标签: makefile gnu-make

如果源程序是最新的,我想用一些突厥语言显示消息。

all: compile program message

compile: hello.cc

hello: hello.cc
    g++ hello.cc -o hello

program: hello

message:
    @echo Selam! Ne var ne yok?
    @echo Selam! Hər şey yaxşıdır. Sizdə nə var, nə yox?

.PHONY: program compile

这是我的makefile。当源代码是最新的时,它会显示消息

Selam! Ne var ne yok?
Selam! Hər şey yaxşıdır. Sizdə nə var, nə yox?

但是当源代码更改时,它会再次显示" Selam .."

make
g++ hello.cc -o hello
Selam! Ne var ne yok?
Selam! Hər şey yaxşıdır. Sizdə nə var, nə yox?

有没有办法阻止这种情况。

如果您不知道答案,请不要发布不必要的评论。

我是程序员,我知道如何更改区域设置。我想彻底理解这个主题或概念。

1 个答案:

答案 0 :(得分:1)

您可以使用-q命令行开关检查给定目标是否已更新。要执行此操作,您需要先在message列表中移动all:,以便在制作其他目标之前进行检查。

示例:

all: message compile program

...

message:
    @make -q compile program && echo Everything up to date! || true