2010-06-09 44 views
3

我想知道如何僅使用標準makefile操作來匹配給定單詞列表中給定單詞的確切出現位置。在WORD_TO_MATCH = a的下面的例子中,結果是肯定的,顯然是錯誤的。如何匹配生成文件中列表中單詞的出現

INPUT_LIST= aa bb 

WORD_TO_MATCH = aa 
#WORD_TO_MATCH = a 

ifneq ($(findstring $(WORD_TO_MATCH),$(INPUT_LIST)),) 
    $(warning List contains "$(WORD_TO_MATCH)") 
else 
    $(warning List doesnt contain "$(WORD_TO_MATCH)") 
endif 

回答

7

使用過濾器代替 FINDSTRING

... 
ifneq ($(filter $(WORD_TO_MATCH),$(INPUT_LIST)),) 
    $(warning List contains "$(WORD_TO_MATCH)") 
... 
+0

現在獎金的任務 - '$(過濾器...)'名單上的子串(的即不是精確匹配這個詞包含 - 等待它 - 一個模式規則的詞幹,用來指定它的依賴關係。我的意思是:'target_dir /%。o:$(過濾器,$(LIST_OF_SOURCES_IN_DIFFERENT_DIRS))',並且在該規則有'%^'返回正確的文件...我正在考慮提出一個問題,但是這個將是一個困難的。 (順便說一句,我聽說過'.SECONDEXPANSION',但它實際上沒有記錄)。 – 2014-08-07 05:51:48

相關問題