0

Makefile でカーネルのバージョンを確認するにはどうすればよいですか??

カーネルのバージョンに基づいて、それに応じていくつかのヘッダー ファイルを選択したいと考えています。

4

4 に答える 4

2
KVER = $(shell uname -r)
KMAJ = $(shell echo $(KVER) | \
sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/')
KMIN = $(shell echo $(KVER) | \
sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/')
KREV = $(shell echo $(KVER) | \
sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/')

kver_ge = $(shell \
echo test | awk '{if($(KMAJ) < $(1)) {print 0} else { \
if($(KMAJ) > $(1)) {print 1} else { \
if($(KMIN) < $(2)) {print 0} else { \
if($(KMIN) > $(2)) {print 1} else { \
if($(KREV) < $(3)) {print 0} else { print 1 } \
}}}}}' \
)

ifeq ($(call kver_ge,3,8,0),1)
echo great or equal than 3.8.0
else
echo less than 3.8.0
endif
于 2015-03-17T07:37:56.407 に答える
1

アプリケーションをコーディングしている場合は、そうするかもしれません

 KERNELVERSION=$(shell uname -a)

または他のシェルコマンド、おそらくcat /proc/version

カーネル モジュールについては、cnicutar の回答を参照してください。

于 2013-02-25T09:17:58.257 に答える