Makefile에서의 Kernel Version 처리 방법에 대한 질문 입니다.
글쓴이: hyper9 / 작성시간: 수, 2008/06/04 - 4:39오전
안녕하세요 ~
지금 생각난 질문은요 ..
예를 들어,,Makefile에서 현재 compile을 수행할 System의 Version에
따라 다른 절차를 정해놓고 싶을때요 ..
예를 들어..Kernel Version이 2.6.4 인 경우, 2.6.24, 2.6.40 인 경우가
있다고 하고요..
그 중에서 2.6.24 이후엔 Compile절차를 B type으로 진행하고 싶고
2.6.24 이전엔 Compile절차를 A type으로 진행하고 싶을때 ,,
이러한 Kernel Version을 일종의 숫자의 크기 비교와 같은 방법으로
비교해서 특정 Version이후면 이렇게, 특정 Version이전이면 저렇게,,
하고 싶거든요..
Source 상에서는 #define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
를 쓰면 비슷한 효과를 얻을 수 있을 것 같은데요..
Makefile에서는 어떻게 처리를 하는지 여쭤보고 싶습니다..~
그럼...부탁드립니다..
Forums:
숫자의 크기 비교가 Makefile에서 가능한지..
에 대한 질문이기도 한거네요 ..
아직 답을 못찾고 있는 중입니다.. ㅜㅜ
GMAKE에 이런 기능이있을까요??
makefile에서 비교는 아니지만
제가 참여했던 프로젝트에서는 build system에 따라 .mk를 따로 include하도록 만들었습니다.
unmame을 통해서 os, version, processor 정보를 가지고 와서 제가 필요한 부분만 짤라서 string을 만들고선 string.mk를 include 했죠.
BUILD_OS := $(shell uname -s)
BUILD_PROCESSOR := $(shell uname -m)
BUILD_OS_VERSION := $(shell uname -r) | ~~ 대충 cut으로 잘라주시고
BUILD_SYSTEM := $(BUILD_OS)-$(BUILD_OS_VERSION_)-$(BUILD_PROCESSOR)
include $(BUILD_SYSTEM).mk
대략 위와 같이 했습니다. 원하시는 답은 아니지만 혹 참고가 되지 않을까 해서 적었습니다.
VERSION PATCHLEVEL SUBLEVEL K
VERSION
PATCHLEVEL
SUBLEVEL
KERNELRELEASE
KERNELVERSION
kbuild 시에 export 되는 환경변수들입니다.
비스무리하게 될 것 같은데요 ?
OTL
감사합니다..
많은 도움이 되었습니다..
이제 숫자의 크기 비교를 Makefile에서
할 수 있는지만 알 수 있으면 다 끝날 것 같네요..
혹시 이것도 알려주시려고 하다가 빠뜨리신건 아닌지.. ^^
그럼..다시 부탁드리겠습니다..
그간 기회가 없어서
그간 기회가 없어서 크게 신경을 쓰지 않았는데,
전에 했던 것을 새로 구조를 바꿔서 해보려고 시도하던 와중에 2.6.28 부터 bdev API 가 약간 바뀌었다는 것을 알게됐습니다.
마침, 가지고 있는 BSP 커널 소스가 2.6.27 과 2.6.29 라 어쩔 수 없이
2.6.28 의 아래 버전인지 아닌지 판별해서 선택적으로.
OTL
댓글 달기