글 수 369
make는 주어진 조건으로부터 대상을 만들어 내는 다목적 프로그램으로, 다수의 소스 파일로 구성된 큰 프로그램 중 어떤 파일이 변경되어 재 컴파일이 필요한지 판단해 프로그램 재구성 작업을 효율적으로 수행하는 역할을 한다. 그리고 이때 어떤 일을 해야 하는지 make에 알려줄 정보를 담고있는 것이 makefile 이다.
[그림1] 여러 파일로 구성된 프로그램
특정 소스파일이 수정되면 모든 파일이 다시 컴파일되고 링크하여 새로운 a.out을 생성하게 된다. 이런 경우 모든 소스를 컴파일을 하는 것은 비 효율적이므로, 수정된 파일만 자동으로 알아내어 컴파일하고 그 외 오브젝트 파일은 그대로 이용하게 하는 툴이 바로 make 이다.
Make 란?
복잡한 컴파일 작업을 자동화하는 프로그래밍 언어이며, make를 적절히 활용하면 불필요한 컴파일 작업을 줄여주므로 프로그램 개발 시간을 크게 절약할 수 있다.
프로그램이 여러 개의 소스 파일로 이루어졌다면, 모든 소스 파일을 컴파일 하기보다는 컴파일을 마지막으로 한 시점으로부터 변경된 소스 파일만 컴파일한다. 컴파일 여부는 소스 파일과 오브젝트 파일의 갱신시간을 비교하여 결정하게 된다.