2017-07-12 22 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)")) 
関連する問題