Linux/Makefile

patsubst

aucd29 2013. 9. 26. 18:56
[code]$(patsubst pattern,replacement,text)[/code]

text 안에서 공백문자로 분리된 단어들 중 pattern과 매치되는 단어를 찾아서 replacement 에 해당하는 단어로 변경한다. 여기서 pattern 은 와일드 카드 역할을 하는 '%' 를 가질수 있다.즉 여러개의 파일을 replacement 로 변경하능하다는 이야기 이다.

[code]$(patsubst %.c,%.o,x.c.c bar.c)[/code]

상단에 코드로 'x.c.o bar.o' 라는 string을 만들어 낸다.

[code]
objects = foo.o bar.o baz.o
$(patsubst %.o, %.c, $(objects))

result : foo.c bar.c baz.c

ps. 대입참조를 이용해 동일한 효과을 얻을 수도 있다.
$(object:.o=.c)
[/code]