진도표 : 600~618
의존성
foo 파일이 수정될 때마다 blah는 되어야 함.
foo는 blah에 의존성이 있음.
시간 값으로 의존성을 파악할 수 있음.
makefile
makefile에 의존성에 대해 정의하여야 함.
makefile이 없으면 Makefile을 찾음.
makefile -f [임의의파일이름]
makefile에 의해 만들어진 파일(???:)의 시간보다 의존성이 있는 파일(?.c)의 시간이 더 새 것일 경우...
make프로그램이 판단하여 의존성에 어긋나지 않도록 함.
makefile작성
main부분을 완성하기 위해 위에서부터 아래로 실행함.
실행할 명령어 indent는 반드시 tab키를 사용하여야 함.
예시)
main: main.o sum.o
gcc -o main main.o
sum.o: sum.c
gcc -c sum.c
main.o: main.c
gcc -c main.c
매크로
- 어떤 파일과 대응되는 이름으로 매크로를 만든다.
- $< : 현재 처리 중인 파일명
- $@ : target 파일명
- $* : 현재 처리 중인 파일명에서 확장자 제외
- make -p
make에서 미리 세팅되어 있는 모든 값을 확인(매크로, 환경변수)
OBJS = sum.o main.o
all: main
sum.o: sum.c
gcc -c sum.c
main.o: main.c
gcc -c main.c
gcc -o $(OBJS)
Suffix Rule
make할 때 정해진 내부적인 규칙
다른 접미사이지만 같은 이름의 파일로부터 접미사로 끝나는 파일을 생성하는 규칙.
예시)
OBJS = sum.o main.o
all: main
.c.o:
gcc -c $<
gcc -o $(OBJS)
예시2)
%.o: %.c
gcc -c $<
'컴퓨터 공부 > 유닉스 시스템 프로그래밍' 카테고리의 다른 글
[4월 23일 2교시] CVS (0) | 2009.04.23 |
---|---|
[4월 22일 3교시] GDB - GNU Debugger (0) | 2009.04.22 |
[4월 22일 2교시] 공유 라이브러리 (0) | 2009.04.22 |
[4월 22일 1교시] (0) | 2009.04.22 |
[스터디] Beginning Linux 4e - 4. 리눅스 환경 (0) | 2009.04.21 |