![]() |
![]() |
TOP > Makefile > 関数 |
![]() |
![]() |
filter関数
fileter関数は、文字列を空白で区切られた単語の列とみなし、パターンにあったものを返す。%文字は、任意の文字としてパターンに使用できる。
(書式) $(fileter pattern, text)
filter関数の例
text := abc def ghi jkl test : @echo $(filter a%c, $(text)) filter-out関数
fileter関数と逆の働きをする。すなわち、マッチしない単語を返す。
(書式) $(fileter-out pattern, text)
filter-out関数の例
text := abc def ghi jkl test : @echo $(filter-out mno, $(text)) findstring関数
対象文字列を検索し、マッチしたらパターンを返す。findstring関数では、ワイルドカード(%)は使えない
(書式) $(findstring pattern, text)
findstring関数の例
text := abc def ghi jkl test : @echo $(findstring ab, $(text)) subst関数
subst関数は、検索と置換を行なう。また、ワイルドカードは使えない。
(書式) $(subst search-str, rep_str, target)
findstring関数の例
text := test1.c test2.c test3.c test : @echo $(subst .c,.o $(text)) #置換文字列の前のカンマの後に空白を入れると、「 .o」で置換される patsubst関数
substと違いワイルドカードが指定できる関数。検索文字列にワイルドカードを使って、ワイルドカードにマッチした部分を置換文字列に使う事ができる。
(書式) $(patsubst search-str, rep_str, target)
patsubst関数の例
text := /home/usr/ test : @echo $(pstsubst %/,% $(text)) #最後の"/"だけ取り除かれる words関数
引数にとった単語の数を返す
(書式) $(words text)
words関数の例
text := abc def ghi jkm test : @echo $(words $(text)) word関数
引数にとったn番目の単語の数を返す。最初の単語を1番目として返すので、Cとかの配列とは違うので注意が必要。
(書式) $(word, n, text)
word関数の例
text := abc def ghi jkm test : @echo $(word 2, $(text)) firstword関数
先頭の単語を返す。$(word 1, text)と同義。
(書式) $(firstword, text)
firstword関数の例
text := abc def ghi jkm test : @echo $(firstword $(text)) wordlist関数
指定した範囲の単語のリストを返す。
(書式) $(wordlist start, end, text)
startが単語の総数より大きかった場合は何も返さない。また、endよりstartの方が大きい場合も何も返さない。endが単語の総数より大きかった場合は、startから最後までの単語の総数を返す。
wordlist関数の例
text := abc def ghi jkm test : @echo $(wordlist 2, 3, $(text)) sort関数
引数で与えられたリストの重複を取り除き並びかえる。
(書式) $(sort text)
wordlist関数の例
text := def ghi jkm abc test : @echo $(sort $(text)) call関数
引数を展開し、その後の値で展開した値を置き換える。
(書式) $(call macro-name, [param...])
macro-name内に$1...$nが存在している時、後の引数で最初のマクロ内の$nを置き換える
call関数の例
define call-test @echo "paramter test $1" endif default: $(call call-test, dayo) #call-testが展開され、$1がdayoに置き換わり、表示される shell関数
引数をひとつとり、サブシェルを実行する
(書式) $(shell cmd)
shell関数の例
TEST := $(shell ls -al) all: @echo $(TEST) wildcard関数
パターンのリストを受け取り、展開する。パターンは複数あっても構わない。
(書式) $(wildcard pattern)
wildcard関数の例
SRC_FILES := $(wildcard *.cpp *.h) dir関数
引数の単語リストのディレクトリ部分を返す。
(書式) $(dir list)
dir関数の例
SRC_LIST := $(sort $(dir $(shell find . -name '*.cpp'))) #findコマンドでソースファイルを検索し、その文字列からディレクトリ名を取りだし、ソートする notdir関数
引数のリストから、ファイル名だけを返す。
(書式) $(notdir list)
suffix関数
各引数からサフィックスのリストを作って返す
(書式) $(suffix list)
basename関数
ファイル名からサフィックスを取り除いた部分を返す。パスはそのまま残る
(書式) $(basename name)
addsuffix関数
ある単語のリストに対して指定したサフィックスを付加する
(書式) $(addsuffix suffix, name)
|
![]() |
![]() |
Copyright 2007 ためになるホームページ All Rights Reserved. |