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

Makefile 如果源是最新的,如何回显消息,makefile,gnu-make,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 co

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

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…”

有没有办法防止这种情况

如果你不知道答案,请不要发表不必要的评论


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

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

例如:

all: message compile program

...

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

默认消息“make:“hello”是最新的。?它是英文的,但我想用土耳其语显示消息。make已经有翻译,您只需要设置系统区域设置。我知道这一点。
all: message compile program

...

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