kbuild的makefile模板

Makefile模板如下:

#編譯hello.o的時候加上預定義DEBUG_TEST
CFLAGS_hello.o += -DDEBUG_TEST
#編譯所有的時候加上預定義MY_DEBUG
EXTRA_CFLAGS += -DMY_DEBUG
#指定最終生成的目標
#如果只有單個文件可以寫成"obj-m := hello.o"
obj-m += hello.o
#指定生成hello.o文件需要哪些模塊(如果只有單個文件可以刪除下面這一行),
#如果hello.o需要多文件構成則可以寫成類似如下形式:
#isdn-objs := isdn_net_lib.o isdn_v110.o isdn_common.o 用空格隔開各個模塊
hello-objs := src/hello.o


KID := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)


all:
        make -C $(KID) M=${PWD} modules


clean:
        rm -rf *.o *.cmd *.ko *.mod.c .tmp_versions *.ko.unsigned *.order *.symvers
        rm -rf src/*.o src/*.cmd src/*.ko src/*.mod.c src/.tmp_versions src/*.ko.unsigned src/*.order src/*.symvers

hello.c文件如下:

#include <linux/module.h> //所有模塊都需要的頭文件  
#include <linux/init.h>  // init&exit相關宏  
  
MODULE_LICENSE("GPL");  
static int __init hello_init(void)
{  
       printk(KERN_ERR "#### hello world\n");
          return 0;  
}  

static void __exit hello_exit(void)
{  
       printk(KERN_ERR "#### exit\n");
}  
  
module_init(hello_init);  
module_exit(hello_exit);

hello.c請放在makefile同目錄下的src文件夾下!!!




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章