[첫화면으로]MakeUtility/프로젝트관리

마지막으로 [b]

변경사항 (가장 최근의 "일반적인 수정"부터) (소소한 수정)

추가: 4a5,43
재귀적으로 make 사용
:
{{{makefile
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 등 일부를 제외한 나머지 옵션이 그대로 전달된다.
* 사용자가 정의한 매크로는 자동으로 전달되지 않는다. 다음처럼 직접 전달해 주어야 한다.
{{{makefile
${MAKE} "CFLAGS=${CFLAGS}"
}}}

* 내부 매크로에서의 디렉토리 - D 변경자와 F 변경자 사용
{{{makefile
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 에 지정된 경로를 차례대로 검색한다.
** 확장자규칙에 의해 묵시적으로 지정된 필요항목을 찾을 때는 적용되지 않는다




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
    ${MAKE} "CFLAGS=${CFLAGS}"

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
# 를 실행한다.


컴퓨터분류

마지막 편집일: 2002-11-22 12:07 am (변경사항 [d])
931 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기