dummy target
- 더미 타깃은 항상 구버전으로 취급되고, 더미 필요 항목은 항상 최신 버전으로 취급된다.
재귀적으로 make 사용
-
OBJS = fig/fill.o \ # 상위디렉토리에서 하위디렉토리의 화일에 대한 의존관계 설정
fig/rotat.o \
structops/allocate.o \
structops/delete.o
disp: fig_obj structops_obj # 더미 필요 항목을 설정하여 반드시 실행되도록 한다.
${CC} ${LDFLAGS} -o $@ ${OBJS}
fig_obj:
cd fig ; make all # 하위 디렉토리로 이동하여 make all 을 실행
struct_obj:
cd structops ; make all
- makefile 내에서 ${MAKE} 를 사용할 경우, -f, -d, -p 등 일부를 제외한 나머지 옵션이 그대로 전달된다.
- 사용자가 정의한 매크로는 자동으로 전달되지 않는다. 다음처럼 직접 전달해 주어야 한다.
${MAKE} "CFLAGS=${CFLAGS}"
- 내부 매크로에서의 디렉토리 - D 변경자와 F 변경자 사용
modules : /usr/jobstor/sys/io.o /usr/jobstor/work/math.o
cd ${<D} ; make ${<F}
# 차례대로
# cd /usr/jobstor/sys ; make io.o
# cd /usr/jobstor/work ; make math.o
# 를 실행한다.
- viewpath (VPATH) 매크로
- VPATH = mysrc:${DIRS} 등과 같이 지정할 수 있다.
- 필요 항목을 찾을 때 VPATH 에 지정된 경로를 차례대로 검색한다.
- 확장자규칙에 의해 묵시적으로 지정된 필요항목을 찾을 때는 적용되지 않는다
컴퓨터분류