我遇到了一個問題,我整個上午都在打我的腦袋。我是修改makefile的新手,所以我遇到了一個我不知道如何解決的問題。我試圖通過目錄搜索任何以'Findings!'結尾的以'Findings.txt'結尾的文件。包含在裏面。出於某種原因,我無法讓我的條件聲明正常工作。我假設它可能與通配符有關,但我試過的所有東西都不起作用,包括wilcard功能。我唯一的想法是shell可能在路徑中有一個變量。使用shell命令的Makefile grep
GREP_FINDINGS := $(shell grep 'No Findings' $(C_DIR)/*Findings.txt)
我想條件化grep結果的輸出,但我做錯了什麼。
ifeq ($(GREP_FINDINGS),)
@echo "Nothing was found for current build"
else
@echo "***Found string in Findings.txt***"
endif
您使用什麼版本的Make? (如果您不確定,請嘗試'make -v'。)'GREP_FINDINGS'是否包含您認爲應該的內容?您的條件聲明如何出錯?當'GREP_FINDINGS'中有東西時,它是否需要第一個分支,還是當第二個分支不存在時? – Beta 2012-08-09 16:20:57
我在unix中使用GNU make 3.8和tcsh。在目前的形式下,它不會觸發第一個分支,總是需要第二個分支。我只對這個條件使用GREP_FINDINGS,所以我認爲它包含我想要的,因爲我事先在控制檯中測試了命令。我仍然在學習。我總是假設grep返回一個零輸出,如果它發現了字符串,否則返回非零。非常感謝! – 2012-08-09 17:08:03
這看起來不像有效的Make代碼(例如括號不平衡);你能剪切並粘貼實際的代碼嗎? – Beta 2012-08-09 17:23:46