[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. make의 개관

make 유틸리티는 큰 프로그램 내의 어떤 부분들을 다시 컴파일해야 하는지 자동으로 판단하고, 다시 컴파일하는 명령어를 실행한다. 이 매뉴얼에서는 Richard Stallman과 Roland McGrath가 구현한 GNU make에 대해 설명한다. GNU makeIEEE Standard 1003.2-1992(POSIX.2)의 section 6.2에 따르는 프로그램이다.

여기서 우리가 사용하는 예제는 C 프로그램이다. C 프로그램이 가장 많이 쓰이기 때문에 여기서 C 프로그램을 사용했지만, make는 셸에서 실행시킬 수 있는 어떠한 프로그래밍 언어의 컴파일러와도 함께 사용할 수 있다. 게다가 make는 프로그램에만 사용되도록 국한된 도구가 아니다. 어떤 파일이 바뀌었을 때 그 파일로부터 자동으로 또 다른 파일을 갱신해야 하는 경우가 있는 어떠한 작업에서도 make를 사용할 수 있다.

make를 사용할 준비 작업으로, 메이크파일(makefile)이라고 하는 파일을 작성해야 한다. 메이크파일(makefile)에는 프로그램 내의 파일들 사이의 관계 및 각 파일을 갱신할 때 사용하는 명령어들이 들어 있다. 흔한 경우로, 어떤 프로그램에서 실행 파일은 오브젝트 파일에서부터 갱신되고, 그 오브젝트 파일은 소스 파일을 컴파일해서 만들어 진다.

일단 적당한 메이크파일(makefile)이 있으면, 소스 파일을 바꿨을 때마다 다음 간단한 셸 명령어를 실행하면:

 
make

모든 재컴파일 과정을 수행한다. make 프로그램은 메이크파일을 데이타베이스로 사용하고 파일의 마지막 변경 시각을 보고 어떤 파일이 업데이트되어야 할 지 결정한다. 각 파일에 대해서 데이타베이스에 쓰여 있는 명령어를 실행한다.

어떤 파일이, 어떻게 재컴파일되야 하는지 지정하고 싶을 때 make이 명령행에 인자를 쓴다. See section make 실행하는 법.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 이 매뉴얼 읽는 법

make를 처음 접하거나, 일반적인 소개를 찾고 있다면, 각 장의 첫부분에 있는 절을 읽고, 나머지 절들은 그냥 지나친다. 각 장에서 첫부분의 절들은 소개 혹은 일반적인 정보를 담고 있고, 나중의 절들은 특수한 경우 혹은 기술적인 정보를 담고 있다.

이미 다른 make 프로그램에 익숙해져 있다면, see section Features of GNU make에 GNU make만이 가진 더 좋은 기능이 열거되어 있고, see section Incompatibilities and Missing Features에 다른 make 프로그램이 가진 기능들 중에서 GNU make에 없는 기능들을 설명해 놓았다.

간단한 요약을 보려면, Summary of Options, Quick Reference, 그리고 Special Built-in Target Names를 보라.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 문제점과 버그

GNU make에 문제가 있거나, 버그를 찾았다고 생각되면 그 문제점을 개발자에게 보고해 주기 바란다; 아무것도 약속해 줄 수는 없지만 우리는 그 문제점을 고치려고 할 것이다.

버그를 보고하기 전에, 정말 진짜 버그를 찾아냈는지 확인하라. 주의 깊게 문서를 다시 읽어보고, 문서에서 시도했던 일을 정말로 할 수 있다고 쓰여 있는지 확인한다. 무엇을 할 수 있고 할 수 없는지 분명히 알 수 없다면, 그것도 보고해 주기 바란다; 이건 문서의 버그이다!

버그를 보고하거나, 손수 고치려고 시하기 전에, 버그를 다시 만들어 낼 수 있는 가능한한 작은 메이크파일을 만들어 보기 바란다. 그 다음에 그 메이크파일과 make를 실행한 정확한 결과를 보내주기 바란다. 또 어떤 일이 일어나길 기대했는지 쓴다; 이렇게 하면 문서에 어떤 문제점이 있는지 파악하기가 쉬워진다.

정확한 문제점을 알아냈으면, 전자메일을 다음 주소로 보낸다:

 
    bug-make@gnu.org

make의 버전 번호를 포함해 주기 바란다. 버전 번호는 ‘make --version’으로 알아 낼 수 있다. 사용중인 기계와 운영체제이 종류를 포함하는 걸 잊지 말아야 한다. 가능하다면, 컨피그 과정(configuration process)에서 만들어 지는 ‘config.h’ 파일의 내용을 포함하면 좋다.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Autobuild on June 20, 2017 using texi2html 1.82.