2. Wildcard, Phony Target, Empty Target Usage
Program Lang./Makefile 2012. 12. 8. 14:571. Wildcard를 이용한 Target, Prerequisite 구성
make에서 wildcard (~, *, ?, [...], [^...]) 사용은 Born Shell상에서 사용법과 동일하다.
$(CC) -o $@ $^ # $@ : 현재 Target , $^ : 현재 Prerequisite
2. Phony Targets
일반적으로 Target과 Prerequisite에는 업데이트될 파일에 대한 파일 이름을 기술하였다. 하지만 Phony Target 은
파일 이름이 아닌 단순 라벨(Label)로 기술된다. Phony Target은 파일 이름을 기술하지 않기 때문에 항상 업데이트
되야할 타겟이다. 일반적으로 Prerequisite를 가지지 않는 구조이다.
실제 make는 Phony Target과 일반 파일 이름의 타겟을 구분하지 못한다. 이를 구분하기 위해서 make는
Phony Target을 지정하는 지정자 (.PHONY)를 통해서 명시적으로 Phony Target를 지정할 수 있다. (아래 예제 참조)
clean :
rm -rf *.o *.exe
이미 make에 지정된 표준 Phony Target이 존재한다. 이는 아래와 같다.
Target |
설명 |
all |
일반적으로 실행파일을 빌드하기 위해 필요한 타겟리스트를 명시한다. |
install |
실행파일을 설치할 목적 |
clean |
소스 파일로부터 생성된 바이러리 파일 삭제 |
distclean |
소스 이외의 모든 파일 삭제 |
TAGS |
테그 생성 |
info |
정보 출력 |
check |
테스트 목적 |
3. Empty Targets
위의 Phony Target은 항상 업데이트되어야 타겟이다. 하지만 경우에 따라서는 필요할 때만 업데이트를 원할 때
가 있을 것이다. 이런 요구 사항을 만족하기 위해서 필요한 Target이 Empty Target이다.
예제는 아래와 같고 이런 타겟이 있다라고만 한번 보고 넘어간다.
prog : size prog.o
$(CC) $(LDFLAGS) -o $@ $^
size : prog.o # prog.o가 prerequisite로 사용되었다.
size $^
touch size
'Program Lang. > Makefile' 카테고리의 다른 글
1. basic makefile structure syntax (0) | 2013.05.11 |
---|---|
3. VPATH(vpath), conditional and include 지시자 (0) | 2013.05.09 |
4. variable and macros (0) | 2013.05.09 |
9. makefile structure for large project (0) | 2012.12.27 |
7. Automatic Dependency Generation (0) | 2012.12.26 |