이것저것/Windows CE

build.exe - The build tool

우담바라 2007. 9. 2. 00:47

[펌] - http://hulryung.tistory.com

Build tool인 build.exe는 실제로 소스를 컴파일 할 때 불리어지는 실행 파일이다. 이 실행 파일은 dirs 파일과 sources 파일을 참조하여 컴파일을 수행한다.
행동 방식은 다음과 같다.
 1. dirs 파일이 있을 경우에 dirs 파일을 살펴보고 안에 들어있는 디렉토리를 traverse 한다.
 2. dirs 파일이 없을 경우 sources 파일을 열어보고 어떤식으로 building을 진행할 것인지를 파악한다.
 3. nmake.exe 파일을 실행하여 sources에 명세된 내용에 따라서 building 과정을 수행하게 된다. 이 때 building 후 발생되는 파일들(exe, dll, lib)은 각각의 디렉토리에 만들어진다.

참조 : http://msdn2.microsoft.com/en-us/library/aa909690.aspx

이 build.exe는 makefile을 가지고 빌딩 과정을 거치게 되는데 여느 프로젝트(애플리케이션 프로젝트)와는 다르게 makefile 안에는 단순히 makefile.def 파일을 include하는것으로 되어 있다. 이 makefile.def(public\common\oak\misc에 존재)에는 시스템에서 사용되는 여러가지 기능들을 한곳에 모아둔 것이고 여기에서 주목할 만한 점은 sources 파일에서 필요한 데이터를 가져오게 되어 있는 점이다. 결국 build.exe(정확히는 nmake.exe)는 makefile 만을 로드하는데, 이 makefile에서는 makefile.def, sources.cmn, sources 등을 모두 사용하도록 되어 있다. 새로운 sources.cmn 파일은 dirs 파일이 있는 루트 디렉토리에 존재하는 파일로 sources에 공통적으로 들어가게 되는 부분을 적어놓은 것이라 보면 되겠다.

DIRS
 dirs 파일은 build.exe를 실행하면 살펴보는 파일로 빌딩을 수행할 디렉토리의 리스트가 들어있는 파일
SOURCES
 소스를 컴파일 할 때 사용되는 파일로 안에는 여러가지 매크로로 해당 소스코드를 어떤 식으로 컴파일하며 링킹을 하는지에 대한 내용이 담겨져 있다. 위에 설명한대로 makefile.def에서 include해서 사용하게 된다.
makefile
 makefile 파일은 컴파일 할 때 사용되는 파일로 makefile.def 파일을 include 하게 되어 있다. include 된 makefile.def 파일에는 sources 파일, sources.cmn파일 등을 include 해서 사용되므로 makefile 파일이 이 모든 파일의 모체가 된다.