2016-11-28 3 views
1

ソースプログラムが最新の場合は、いくつかのトルコ語でメッセージを表示したいと思います。ソースが最新の場合、メッセージをエコーする方法

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 

これは私のメークファイルです。ソースコードが最新のものであるとき、それはメッセージ

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

'作るのデフォルトのメッセージと間違って何: 'こんにちは' date.'までですか? – user657267

+0

英語ですが、トルコ語でメッセージを表示したいと思います。 – Erdem

+0

メイクにはすでに[トルコ語](http://translationproject.org/PO-files/tr/make-4.2.1.tr.po)の翻訳があります。システムロケールを設定するだけで済みます。 – user657267

答えて

1

コマンドラインスイッチ-qを使用して、指定したターゲットが最新のものであるかどうかを確認できます。これを行うには、最初にall:リストのmessageを移動して、他のターゲットが作成される前にチェックが行われるようにします。

例:

all: message compile program 

... 

message: 
    @make -q compile program && echo Everything up to date! || true 
関連する問題