1/29/2009

SOURCES 파일의 비밀


Windows DDK나 WDK로 개발할 때에 Sources 파일을 주로 이용하게 된다. 그리고 이 Sources 파일은 setenv.bat와 makefile.def에 의해서 세팅된 환경 변수와 Sources 파일 자체에 지정된 매크로(macro)를 이용하여 세밀한 환경 설정이 가능하다. 환경 변수와 매크로는 거의 동급이라고 한다. 즉, Sources 파일에 지정할 것을 환경 변수로 지정해도 바로 먹힌다는 것이다.
그런데, 이렇게 유연해 보이는 Sources 파일에 하나 큰 문제가 있다. "!IFDEF"와 같은 조건문을 사용 가능한데, 매크로 중에 컴파일할 소스 파일 리스트를 가지고 있는 "SOURCES"라는 매크로는 "!IFDEF" 문을 초월한다. 그래서 "!IFDEF" 조건에 맞추어 "SOURCES" 매크로를 아무리 설정해도 전혀 먹지 않고, 가장 마지막에 세팅된 값을 사용한다.
이 것이 버그인지, limitation인지 아니면 feature인지(설마)는 잘 모르겠지만, 이것 때문에 벌써 30분 이상을 소모했다. -_-;;;
결국 소스 파일 마다 "#ifdef"를 넣어서 특정 이름이 정의 되었을 경우에는 소스 자체를 컴파일하지 않는 고육지책을 썼다.

Posted via email from bugtruck's posterous

댓글 없음:

댓글 쓰기