[CMake] Building linux kernel module with Cmake
Suhas Jain
suhasj at aftek.com
Mon Nov 5 02:58:48 EST 2007
Hi,
I have made changes to my CMakeLists.txt file
Here is my complete CMakeLists.txt file
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..
Set( KERNEL_DIR "/lib/modules/${CMAKE_SYSTEM_VERSION}/build" )
Set( kbuild_cmd ${CMAKE_MAKE_PROGRAM}
-C ${KERNEL_DIR}
M=${CMAKE_CURRENT_SOURCE_DIR} modules)
set ( kofile ${CMAKE_CURRENT_SOURCE_DIR}/hello.ko )
add_custom_command ( OUTPUT ${kofile}
COMMAND ${kbuild_cmd}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${src} Kbuild VERBATIM
COMMENT "Building kernel module...")
add_custom_target ( cool_driver ALL DEPENDS ${kofile} )
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<..
But on compilation I get this following error.
make[2]: *** No rule to make target `Kbuild', needed by `hello.ko'. Stop.
make[1]: *** [CMakeFiles/cool_driver.dir/all] Error 2
make: *** [all] Error 2
If I exclude the Kbuild from DEPENDS.
I get this error:
Makefile:43 CMakeFiles/progress.make: No such file or directory
Is this line required?
I have already compiled my kernel .
The driver gets compiled with normal kernel module Makefile
This is the Makefile that I have used .
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<..
MODULE_NAME = hello
$(MODULE_NAME)-objs = main.o output.o
RM = @rm -rf
JUNK = *~ *.bak DEADJOE
# First pass, kernel Makefile reads module objects
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
EXTRA_CFLAGS += -I$(PWD)/../include
# Second pass, the actual build.
else
KVER ?= $(shell uname -r)
KDIR := /lib/modules/$(KVER)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..
Is this possible using the cmake ?
One more thing that is doubtful is:
How to specify the Obj-m and $(MODULE_NAME)-objs parameters?
Please give me some pointers to solve this issue or any working sample of
CMakeLists.txt for compiling kernel modules
I am stuck with this problem. Waiting for your replies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/cmake/attachments/20071105/ba789242/attachment.htm
More information about the CMake
mailing list