개발 블로그

[Makefile] makefile 에서 사용하는 다양한 함수 본문

개발/Makefile

[Makefile] makefile 에서 사용하는 다양한 함수

영글어가다 2022. 1. 22. 00:13

함수

함수 기본 문법

$(function arguments)

 

파일 이름 관련 함수들

1. dir : name 에서 디렉터리 부분을 추출한다.

-> $(dir name name ...)

all:
	$(dir src/foo.c hacks)

 

 

2. notdir : name 에서 디렉터리 부분이 아닌 것을 추출한다.

-> $(notdir name name ...)

all:
	$(notdir src/foo.c hacks)

 

3. suffix : name 에서 접미사(확장자)를 추출한다.

-> $(suffix src/foo.c src_1/boo.c abcd)

all:
	$(suffix src/foo.c src_1/boo.c abcd)

 

4. basename : name 에서 접미사를 제외한 부분을 추출한다.

-> $(basename src/foo.c src_1/boo.c abcd)

 

5. addsuffix : suffix를 name의 끝에 더한다.

-> $(addsuffix .c, foo boo abcd)

all:
	$(addsuffix .c, foo boo abcd)

 

6. addprefix : prefix를 name의 앞에 더한다.

-> $(addprefix src/, foo boo abcd)

all:
	$(addprefix src/, foo boo abcd)


치환 함수

$(변수 : a = b) : 변수의 끝에 오는 a 를 b 로 치환한다.

-> $(var:.c=.o)

foo = a.c b.c c.c d.c
bar = $(foo:.c=.o)

all :
    cat $(bar)

.c 파일의 이름이 .o 로 바뀌는 것을 확인할 수 있다.