커널 컴파일이 되는 원리가 궁금합니다.
글쓴이: trymp / 작성시간: 일, 2011/04/10 - 10:49오후
커널을 공부하는 초보입니다.
제가 알기로는 아래와 같이 .config 에 있는 것을 load 하고 menuconfig 에서 설정을 하면
autoconf.h 가 생성되서 이것으로 컴파일이 결정되는 것으로 알고 있는데요.
.config -> make menucofig -> autoconf.h
궁금한점이 Makefile 에서 header(.h) 파일을 읽을 수 있나요??
어떻게 Makefile 에서 참조하죠???
아래와 같은 구문으로 되어 있는데, 어떻게 동작이 되는지 궁금합니다.
CONFIG_MY_MODULE 이게 define 이 되어 있으면 object 에 포함시키라는 뜻인가요?
obj-$(CONFIG_MY_MODULE)+=my_module.o
my_module-objs:=my_mod.o
위의 구문에 대해 알려주시면 감사하겠습니다.
Forums:
include/config/auto.conf
Makefile에서 사용하는 것은 header 파일이 아니고 auto.conf라는 파일입니다.
이는 .config 파일과 거의 비슷한 형태이며
선택된 옵션들을 Makefile에서 인식할 수 있는 변수 선언의 형태로 저장한 것입니다.
커널이 빌드 시 고려하는 것은 obj-y 혹은 obj-m으로 설정된 파일들 뿐이므로
커널 설정 시 CONFIG_MY_MODULE 옵션을 적절히 선택했다면
built-in 되거나(y), module로 빌드(m)될 것입니다.
댓글 달기