'Makefile 강좌'에 해당되는 글 3건

  1. 2010.05.30 make 활용 강좌 - 3강
  2. 2010.05.30 make 활용 강좌 - 2강
  3. 2010.05.30 make 활용 강좌 - 1강

make 활용 강좌 - 3강

|
make 활용 강좌 - 3강

2. 예제

먼저 gcc의 옵션과 삭제 명령에 대해 알아보자.

$ gcc -o test test.c
test.c를 컴파일(프리프로세싱-컴파일링 -어셈블링-링킹)하여 test라는 실행 파일을 만든다.

$ gcc -c test.c
test.c를 (프리프로세싱-컴파일링-어셈블링)만 하여 test.o라는 오브젝트 파일을 만든다.

$ rm test test.o
test 파일과 test.o 파일을 삭제한다.

#Makefile 작성 시 주의 사항 : gcc 앞에 tab이 있어야 한다.


예제1) test 실행파일 생성하기
$ vi Makefile
test : test.c
  gcc -o test test.c
:wq

$ make test
설명1) 
line1 : test 파일을 생성하려면 test.c 파일이 필요
line2 : line1의 조건이 만족되면 실행

실행 순서
  (1) 현재 디렉토리에 Makefile이 있는지 확인
  (2) 있으면 test 파일을 만드는 조건이 있는지 확인 --> test : test.c 발견
  (3) test.c라는 파일이 있는지 확인
  (4) 있으면 gcc -o test test.c 실행
  (5) 현재 디렉토리에 Makefile, test, test.c라는 파일이 존재함


예제2) test.o 파일만 생성하기
$ vi Makefile
test.o : test.c
  gcc -c test.c
:wq

$ make test.o


예제3) test.o 파일과 실행파일 모두 생성하기
$ vi Makefile
test : test.o
  gcc -o test test.o
test.o : test.c
  gcc -c test.c
:wq

$ make test
설명3)
line1 : test 파일을 생성하려면 test.o 파일이 필요
line2 : line1의 조건이 만족되면 실행
line3 : test.o 파일을 생성하려면 test.c 파일이 필요
line4 : line3의 조건이 만족되면 실행

실행 순서
  (1) 현재 디렉토리에 Makefile이 있는지 확인
  (2) 있으면 test 파일을 만드는 조건이 있는지 확인 --> test : test.o 발견
  (3) test.o 파일이 있는지 확인 --> 없음
  (4) test.o 파일이 없으므로 test.o 파일을 만드는 조건이 있는지 확인 --> test.o : test.c 발견
  (5) test.c 파일이 있는지 확인 --> 있음
  (6) gcc -c test.c 실행 --> test.o 파일 생성
  (7) test.o 파일이 생성되었으므로 line1의 조건을 만족함
  (8) gcc -o test test.c 실행 --> test 파일 생성
  (9) 현재 디렉토리에 Makefile, test, test.o, test.c 파일이 존재함


예제4) test, test.o 파일 삭제하기
vi Makefile
clean :
  rm test test.o
:wq

$ make clean
설명4) target file이 있어야 할 곳에 clean이라는 것이 있다. 그리고 dependency file도 없다.
clean이 파일이 아님에도 에러가 나지 않고 아래의 삭제 명령도 잘 실행된다.
그 이유는 파일 이름이 와야할 자리에 레이블도 올 수 있게끔 만들어 놓았기 때문이다.
따라서 위의 clean처럼 컴파일이 아닌 다른 작업을 할 때에는 파일 이름이 아닌 레이블을 적어준다.

'Makefile 강좌' 카테고리의 다른 글

make 활용 강좌 - 2강  (0) 2010.05.30
make 활용 강좌 - 1강  (0) 2010.05.30
And

make 활용 강좌 - 2강

|
make 활용 강좌 - 2강

make - GNU make utility to maintain groups of programs

#쉽게 이해하는 것이 목적이므로 본래의 의미와 약간 다를 수 있음을 미리 알려둔다.


0. 실행 방법
$ make 대상파일

위처럼 입력하면 현재 디렉토리에 Makefile라는 이름을 가진 파일이 있는지 확인한 후,
있으면 그 파일 안의 내용을 실행한다.
없으면 에러 메시지를 출력한다.


1. Makefile 작성법
#주의사항 command를 입력할 때에 반드시 TAB을 한 후 command를 작성해야 함
target file ... : dependency file ...
(TAB)command
...

번역하면

만들 파일 : 필요한 파일 ...
(탭)명령어
...

실행 순서
  (1) target file을 생성하기 전 dependency file이 있는지 확인
  (2-a) 있으면 command를 실행하여 target file을 생성
  (2-b) 없으면 dependency file을 먼저 생성한 후 target file을 생성

'Makefile 강좌' 카테고리의 다른 글

make 활용 강좌 - 3강  (0) 2010.05.30
make 활용 강좌 - 1강  (0) 2010.05.30
And

make 활용 강좌 - 1강

|
make 활용 강좌 - 1강

make - GNU make utility to maintain groups of programs

#쉽게 이해하는 것이 목적이므로 본래의 의미와 약간 다를 수 있음을 미리 알려둔다.

해석하면 프로그램 소스 관리 유틸리티가 된다.
간단히 설명하면 매일 반복되는 소스 수정과 컴파일 과정을 편리하게 해주는 유틸리티이다.
개발 실무를 접해 보지 못한 이들이 이해하기에는 다소 무리가 있을 것 같아 자세한 설명은 생략한다.
작성법을 살펴보고 예제를 통해 어떤 장점이 있는지 알아보자.

make라는 프로그램은 개발자가 작성해 놓은 Makefile이라는 이름을 가진 파일을 열어 그 안의 내용을 실행한다.

우선 test.c라는 간단한 소스파일과 Makefile을 작성해 보자.

1. test.c 작성
$ vi test.c
#include <stdio.h>
int main()
{
  printf("Hello world\n");
  return 0;
}
:wq


2. Makefile 작성
#주의 사항 : gcc 앞에 space bar가 아닌 TAB이 되어 있어야 함.
$ vi Makefile
test : test.o
  gcc -o test test.o
test.o : test.s
  gcc -c test.o test.s
test.s : test.c
  gcc -S test.c
clean :
  rm test test.o test.s test
:wq


3. make 실행
$ make test
$ ls
Makefile  test  test.c  test.o  test.s
$ ./test
Hello world
$ rm test test.o test.s

$ make test.o
$ ls
Makefile  test.c  test.o  test.s
$ rm test.o test.s

$ make test.s
$ ls
Makefile  test.c  test.s
$ rm test.s

$ make test
$ ls
Makefile  test  test.c  test.o  test.s
$ make clean
$ ls
Makefile  test.c

'Makefile 강좌' 카테고리의 다른 글

make 활용 강좌 - 3강  (0) 2010.05.30
make 활용 강좌 - 2강  (0) 2010.05.30
And
prev | 1 | next