2017-01-20 4 views
0

にリダイレクトする方法はありますか?すべて出力をファイルにリダイレクトしないように注意してください。 $(警告)コマンドの出力のみをファイルに書きたいだけです。

someTarget: 
    $(warning building [email protected] using $?) >> someLogFile.txt 

私の例では、上記多分?それを行うための方法はあります(someLogFileに警告。$からの出力をリダイレクトし、それを変数にリダイレクトしてファイルにすることをエコーし​​ません? ありがとう。

答えて

0

ファイルに$(警告)または$(情報)文をリダイレクトする方法は、ここで

GNUは作るための一つだが存在し、それはかなりありません。

Makefileは

LOG := log.txt 
TARGET_ACQUIRED = \ 
    $(shell echo 'NO_SUCH_TARGET:' | $(MAKE) --eval='$$(info Target acquired: [email protected])' -s -f - >> $(LOG)) 

target_a: target_b 
    $(TARGET_ACQUIRED) 
    touch [email protected] 

target_b: 
    $(TARGET_ACQUIRED) 
    touch [email protected] 

clean: 
    rm -f target_* $(LOG) 

これを使用すると、取得します:

$ make 
touch target_b 
touch target_a 
$ cat log.txt 
Target acquired: target_b... 
Target acquired: target_a... 

GNU make commandline optionsを参照してください、この策略を理解します。

メークファイルをデバッグする目的でこれをしたいのであれば、同じ場所に文書化されているオプションで の方が良いでしょう。

関連する問題