Search

'CLKH64 OS/07장'에 해당되는 글 4건

  1. 2013.01.01 Makefile 1

Makefile

CLKH64 OS/07장 2013. 1. 1. 16:06 Posted by 알 수 없는 사용자

1. 문제점

Makefile 이 복잡해졌는데 이해할 수가 없어서 따로 공부함.

2. Makefile 기본 사용법

http://kyagrd.dyndns.org/wiki/GNUMake

http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc7 (GNU-Make 강좌)

http://forum.falinux.com/zbxe/?document_srl=405822 (읽어볼것, Makefile-1)

http://forum.falinux.com/zbxe/?document_srl=405824&mid=gcc (Makefile-2)

 http://developinghappiness.com/?page_id=222 (Make 기반 빌드 시스템)

 

Makefile[1].ppt

makefile의 구조 및 이용방법-maenong[1].pdf

 

3. Makefile 내부 매크로

여러개가 있는데, 몇개만 살펴보자면

(참조 - http://blog.naver.com/PostView.nhn?blogId=signal97&logNo=112789758)

main : a.c b.c c.c 에서

- $^

: 모든 의존 대상 (a.c b.c c.c)

- $<

: 첫번째 의존 대상 (a.c)

- $@

: 현재 표적(타겟), (main)

/temp/target.o : usr/local/c/test.c 에서

- $(@D)

: 타겟의 디렉토리 (/temp)

- $(@F)

: 타겟의 파일 (target.o)

- $(<D)

: 첫번째 의존대상의 디렉토리

- $(<F)

: 첫번째 의존 대상의 파일

 

* 참고로 매크로에서는 * 를 통해 와일드 카드 확장이 일어나지 않음

SOURCE = *.c 는 안됌!

SOURCE = $(wildcard *.c)

 

4. Makefile 확장자 규칙

(참조 - http://codecooking.tistory.com/91 (읽어볼것!)) 

확장자 규칙은, 정의만 해 논다면

%.o : %.c

gcc -c -o %@ %<

확장자 규칙에 좌측에 오는 확장자(.o)들을 만들기 위해 오른쪽에 요구된 파일(.c)들을

지정된 명령에 따라 처리함.

<Makefile 코드>

SOURCE = $(wildcard *.txt)
OBJECT = $(SOURCE:.txt=.o)

all: target

%.o: %.txt
        @echo '[SUFFIXES]'
        @echo -n '$$? : '
        @echo $?
        @echo -n '$$^ : '
        @echo $^
        @echo -n '$$@ : '
        @echo $@
        @echo -n '$$< : '
        @echo $<
        @echo -n '$$* : '
        @echo $*

target : $(OBJECT)
        @echo -n '[target] $$? : '
        @echo $?
        @echo -n '[target] $$^ : '
        @echo $^

<Make 실행 결과>

$ make
[SUFFIXES]
$? : sun.txt
$^ : sun.txt
$@ : sun.o
$< : sun.txt
$* : sun
[SUFFIXES]
$? : moon.txt
$^ : moon.txt
$@ : moon.o
$< : moon.txt
$* : moon
[target] $? : sun.o moon.o
[target] $^ : sun.o moon.o
[target] $< : sun.o
[target] $@ : target

 

5. Makefile 내부 함수

http://www.viper.pe.kr/docs/make-ko/make-ko_8.html (Functions for Tansforming Text, 번역본)

 http://k-story.tistory.com/227 (읽어볼 것)

 

우리 책에서는 patsubst, wildcard 와 같은 함수가 나옴..

6. Advanced Makefile

http://www.hanb.co.kr/network/view.html?bi_id=351 

 

 

'CLKH64 OS > 07장' 카테고리의 다른 글

7장 대략적인 설명  (2) 2013.01.07
파이썬으로 만든 ImageMaker  (0) 2013.01.02
링커스크립트  (0) 2013.01.01