Makefile中的字符串處理函數
參考:https://seisman.github.io/how-to-write-makefile/functions.html#patsubst
subst
功能:把字串 <text>
中的 <from>
字符串替換成 <to>
。
$(subst <from>,<to>,<text>)
返回:函數返回被替換過后的字符串。
patsubst
功能:以模式匹配的方式來替換字符串,查找 <text>
中的單詞是否符合模式 <pattern>
,如果匹配的話,則以 <replacement>
替換。這里, <pattern>
可以包括通配符 %
,表示任意長度的字串。如果 <replacement>
中也包含 %
,那么, <replacement>
中的這個 %
將是 <pattern>
中的那個 %
所代表的字串。
$(patsubst <pattern>,<replacement>,<text>)
返回:函數返回被替換過后的字符串。
strip
功能:去掉空格
$(strip <string>)
返回:返回被去掉空格的字符串值。
findstring
功能:在字串 <in>
中查找 <find>
字串。
$(findstring <find>,<in>)
返回:如果找到,那么返回 <find>
,否則返回空字符串。
filter
功能:以<pattern>模式過濾<text>中的單詞,保留符合<pattern>的單詞,可以有多個模式。
$(filter <pattern...>,<text>)
返回:返回符合<pattern>的字符串
filter-out
功能:反過濾函數,和上面filter正好相反。
$(filter-out <pattern...>,<text>)
返回:返回不符合模式 <pattern>
的字串。
sort
功能:給字符串 <list>
中的單詞排序(升序)。
$(sort <list>)
返回:返回排序后的字符串。
word
功能:取字符串 <text>
中第 <n>
個單詞。(從1開始)
$(word <n>,<text>)
返回:返回字符串 <text>
中第 <n>
個單詞。如果 <n>
比 <text>
中的單詞數要大,那么返回空字符串。
wordlist
功能:從字符串 <text>
中取從 <ss>
開始到 <e>
的單詞串。 <ss>
和 <e>
是一個數字。
$(wordlist <ss>,<e>,<text>)
返回:返回字符串 <text>
中從 <ss>
到 <e>
的單詞字串。如果 <ss>
比 <text>
中的單詞數要大,那么返回空字符串。如果 <e>
大於 <text>
的單詞數,那么返回從 <ss>
開始,到 <text>
結束的單詞串。
words
功能:統計 <text>
中字符串中的單詞個數。
$(words <text>)
返回:返回 <text>
中的單詞數。
firstword
功能:取首個單詞
$(firstword <text>)
返回:返回字符串 <text>
的第一個單詞。