2017-01-20 43 views
0

請注意,我不想重定向所有使輸出生成文件。我只想從$(警告)命令輸出文件。

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

我上面的例子並不重定向從$輸出(警示someLogFile。有沒有辦法做到這一點?也許它重定向到一個變量,然後回顯到一個文件? 感謝。

回答

0

有沒有辦法來重定向$(警告)或$(INFO)語句文件

這裏是一個爲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

如果你想要調試一個makefile,你可能會用 的GNU Make的--debug選項,在同一個地方記錄下來。

相關問題