Programming/Linux(Unix)

(7/31)GNU make

부풍 2009. 7. 31. 15:51

규칙만들기.

software도 점점 커지므로,  필요한부분만 재컴파일 되야..

make는 3가지 요소로 구성
- Target : command를 통해서 생성되는 최종 결과물이름
          gcc -c a.c 였으면 a.o
- dependency :  파일들의 리스트가 들어감.  이 파일들 중에 하나라도 수정이 되면 이 타겟에 의해 새로 만들어야 함.
- command :  command앞에는 반드시 TAB


touch : 
 make가 a.o나 의존성있는 a.c a.h등의 파일들을 비교해서 a.o가 과거면 바뀌었다. 새로 컴파일 해야지.

 makefile 또는 Makefile   => make만 치면 됨
make 화일이 위의 기본 이름이 아니라면  make -f ~~~ 로 알려줘야 함

make는 기본적으로 맨 위에 작성되있는놈을 타겟으로 생각한다. (p.610)
최종 타겟 원하는대로 할시에
1. (makefile vi로 작성시 맨위에 더미로 만들어줘도 되고) (p.611)
2. make  (     )  => ()를 최종타겟으로 생각


ex) main: sum.o main.o         
                 => sum.o: 이 규칙이 없고 sum.o파일이 없으면
     .c.o:  => 얘를 통해       .c파일이 있으면 .o로 만들어준다. (보통 기본설정 되있음)

  .c.o:      
gcc -c $<



  확장자 규칙
ex) .c.o => .c 파일을 .o파일로..


make에서 command의 결과물이 아닐떄 Lable(레이블)이라 부른다.  (p.619)