자동화와 Make

Make는 파일을 읽어들이고, 특정 방식으로 읽어들인 파일을 처리하고, 처리결과를 파일에 적을 수 있는 명령어를 실행하는 도구다. 예를 들어, 소프트웨어 개발에서, Make를 사용해서 소스 코드를 컴파일하고 실행가능한 프로그램 혹은 라이브러리로 만들 수 있다. 하지만, Make를 사용해서 다음도 할 수 있다:

  • 원데이터를 요악햐는 분석용 데이터 파일을 얻는데, 원데이터 파일에 분석 스크립트를 실행한다.
  • 그래프를 그려 도식화하는데, 필요한 데이터 파일에 시각화 스크립트를 실행한다.
  • 텍스트 파일과 그림을 파싱하고 조합해서 논문을 자동 생성한다.

Make를 빌드 도구라고 부른다 — Make는 데이터 파일, 그래프, 논문, 프로그램 혹은 라이브러리를 구축(build)한다. 원한다면, 기존에 존재하는 파일도 갱신할 수 있다.

Make는 Make가 생성한 파일과 이를 생성하는데 사용된 파일에 대한 의존성을 추적한다. 만약 원본 파일 (예를 들어, 데이터 파일) 중 하나가 변경되면, Make는 알아서 원본파일에 의존성을 갖는 파일(예를 들어, 그래프)을 재생성하고 갱신한다.

현재 빌드 도구는 많이 있다. 하지만, 시장에 나온 모든 빌드 도구는 Make와 같은 개념에 기초하고 있다.

전제조건

이번 학습에서 유닉스 쉘에서 나온 make를 사용한다. 쉘을 사용해서 디렉토리 목록을 살펴보고, 파일과 디렉토리를 생성, 복사, 삭제, 볼 수 있고, 간단한 스크립트를 실행해본 이전 경혐이 일부 필요하다.

사전 준비

이번 학습을 따라가는데 다음 파일을 다운로드한다:

  1. make-lesson.tar.gz 파일을 다운로드한다.
  2. make-lesson.tar.gz 파일을 배쉬 쉘(bash shell)을 경우해서 접근할 수 있는 디렉토리로 이동한다.
  3. 배쉬 쉘 윈도우를 연다.
  4. 파일을 다운로드한 디렉토리로 이동한다.
  5. make-lesson.tar.gz 압축 파일을 다음 명령어로 푼다:
$ tar -xvf make-lesson.tar.gz
  1. 작업 디렉토리를 make-lesson 디렉토리로 변경한다:
$ cd make-lesson

학습주제

한국어(Korean) 영어(English)
1. 들어가며 1. Introduction
2. Makefiles 2. Makefiles
3. 자동변수 3. Automatic variables
4. 데이터와 코드 의존성 4. Dependencies on data and code
5. 패턴 규칙 5. Pattern rules
6. 변수 6. Variables
7. 함수 7. Functions
8. 결론 8. Conclusion

추가 학습교재