Makefile 을 살펴보면
obj-y := audio_device.o
혹은
obj-m := audio_device.o
혹은
obj-$(CONFIG_TEST) := audio_device.o
와 같은 형태를 볼 수 있다.
무슨 차이가 있을까?
커널소스 트리에 있는 각종 드라이버들은 모듈로 컴파일 될 수도 있고 커널 이미지에 바로 들어갈 수 도 있다.
obj-$(CONFIG_TEST) := audio_device.o
위와 같이 정의하면 make menuconfig 결과에 따라 모듈이나 빌트인으로 알아서 컴파일 된다.
은
그럼 빌트인으로 컴파일하라는 명령은?
obj-y := audio_device.o
이고
모듈로 컴파일 하라는 명령은?
obj-m := audio_device.o
이다.
간혹 보면 아래와 같이 구성되는 경우도 있다.
이런 무슨 뜻일까? 색을 칠해 보았다.
풀어서 설명하면,
audio_driver.c 와 i2s.c 를 컴파일한 후 하나로 묶어서
target.o 를 만들것이고
target.o 는 빌트인으로 커널 이미지로 들어가게 된다는 뜻이다.
그럼 이것은?
다 똑같은데 모듈로 만들겠다는 것만 다르다.
그럼 이것은?
menuconfig 결과에 따라 모듈로 컴파일 될 수도, 빌트인으로 컴파일 될 수도 있다는 뜻이다.
끝.
obj-y := audio_device.o
혹은
obj-m := audio_device.o
혹은
obj-$(CONFIG_TEST) := audio_device.o
와 같은 형태를 볼 수 있다.
무슨 차이가 있을까?
커널소스 트리에 있는 각종 드라이버들은 모듈로 컴파일 될 수도 있고 커널 이미지에 바로 들어갈 수 도 있다.
obj-$(CONFIG_TEST) := audio_device.o
위와 같이 정의하면 make menuconfig 결과에 따라 모듈이나 빌트인으로 알아서 컴파일 된다.
은
그럼 빌트인으로 컴파일하라는 명령은?
obj-y := audio_device.o
이고
모듈로 컴파일 하라는 명령은?
obj-m := audio_device.o
이다.
간혹 보면 아래와 같이 구성되는 경우도 있다.
obj-y := target.o target-objs += audio_driver.o target-objs += i2s.o |
이런 무슨 뜻일까? 색을 칠해 보았다.
obj-y := target.o target-objs += audio_driver.o target-objs += i2s.o |
풀어서 설명하면,
audio_driver.c 와 i2s.c 를 컴파일한 후 하나로 묶어서
target.o 를 만들것이고
target.o 는 빌트인으로 커널 이미지로 들어가게 된다는 뜻이다.
그럼 이것은?
obj-m := target.o target-objs += audio_driver.o target-objs += i2s.o |
다 똑같은데 모듈로 만들겠다는 것만 다르다.
그럼 이것은?
obj-$(CONFIG_TEST) := target.o $(CONFIG_TEST)-objs += audio_driver.o $(CONFIG_TEST)-objs += i2s.o |
menuconfig 결과에 따라 모듈로 컴파일 될 수도, 빌트인으로 컴파일 될 수도 있다는 뜻이다.
끝.
'development' 카테고리의 다른 글
[GCC] -S 옵션? (0) | 2011.11.18 |
---|---|
[kernel] module_init(), module_exit() (0) | 2011.11.17 |
[kernel] 개발한 함수를 외부에 공개하는 법 (1) | 2011.11.08 |
[kernel] 커널에 새로운 작업 디렉토리를 추가하고 싶다면 (0) | 2011.11.07 |
[program] memmove (0) | 2011.10.27 |