2017-07-12 86 views
2

我想檢查是否所有具有特定名稱的文件都有一個字符串,如果不報告它們。我寫了這個序列並嘗試了多個其他的,但我不知道如何從列表中訪問文件的包含。如何檢查列表中的文件是否包含makefile中的內容?

SOURCES := $(shell find $(SOURCEDIR) -name 'mod.mak')#here I take the list of targeted files (this works fine) 
$(foreach File, Files, 
$(if $(grep -q "aaabbb" "$File"),,@echo "WARNING Missing sequence") 
) 

回答

1

您的腳本有多個問題。首先,你需要need some rule/target。舉例來說,我們可以製作一個PHONY targettest。其次,要遍歷SOURCES中的值,您需要將reference it設爲$(SOURCES)。撥打grep$(file)也是如此。另外,makeif是解釋值,而不是退出代碼,所以你不應該沉默grep

這將做到這一點:

.PHONY: test 

SOURCES := $(shell find "$(SOURCEDIR)" -name 'mod.mak') 

test: 
    $(foreach file,$(SOURCES),$(if $(shell grep "aaabbb" "$(file)"),,@echo "WARNING Missing sequence in $(file)")) 
相關問題