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文件夹下!!!

时间: 2024-10-11 13:11:47

kbuild的makefile模板的相关文章

1、编写一个简单Makefile模板

一.Makefile简介 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.linux内核的编译同样也遵循这些规则,具体说明可见kernel/Documentation/kbuild/makefiles.txt 二.简单编写一个Makefile模板 当编译少量的源文件

linux下面简单通用的Makefile模板

简单通用的Makefile模板: ############################################## # # 单目录通用Makefile # 目标文件可自己的设定 # 始须调试程序,修改 CFLAGS 变量为-Wall -g # # wuyq 20140825 ############################################## # EXECUTABLE为目标的可执行文件名, 可以根据具体的情况对其进行修改. EXECUTABLE := spi

makefile编写---.c .cpp 混合编译makefile 模板

# c.cpp混合编译的makefile模板 # # BIN = client_system BASE_INSTALL_DIR := /opt/arm-2009q1 BUILD_TOOL_DIR := $(BASE_INSTALL_DIR) BUILD_TOOL_PREFIX := $(BUILD_TOOL_DIR)/bin/arm-none-linux-gnueabi- CC = $(BUILD_TOOL_PREFIX)gccCPP = $(BUILD_TOOL_PREFIX)g++ INCS

Vim编程下自创Makefile模板

前言 一直都对Linux和Vim情有独钟,其实windows也很不错,因为工作上难免有些情况只能使用windows进行开发,包括有些API或者SDK都只有windows版本,只是用Linux的时候就感觉和计算机特别亲近的感觉,哈哈哈,夸张而言. 至于Vim(这里暂且不讨论vim和emacs谁更好的问题,这个是哲学问题),对比起大多数人估计都习惯使用IDE进行编程,使用vim确实难度会大很多,所以,如果不是专业的开发人员,其实也没有必要使用vim编程,不过有时候想,如果当年大学的编程课教的不是使用

万能makefile模板

这里一份万能makefile模板,写opencv项目时候使用的. 前提是提前配置好 包管理工具 pkg 然后就不用每次都去 -lopencv_xxx了. ###################################### # ###################################### #source file #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件 SOURCE := $(wildcard *.c) $(wildcard *.cpp) OB

我所使用的一个通用的Makefile模板

话不多说,请看: 我的项目有的目录结构有: dirls/ ├── include │   └── apue.h ├── lib │   ├── error.c │   ├── error.o │   └── Makefile ├── src │   ├── dirls.c │   ├── dirls.out │   └── Makefile └── test_client 而我的Makefile模板代码如下: SRCS = $(wildcard *.c ../lib/*.c) #wildcard

一个简单的makefile模板

在Linux下编译工程,makefile是必不可少的工具,下面记录一个简单的makefile模板. 多个文件目录下的makefile写法推荐参考博文:http://www.cnblogs.com/Anker/p/3242207.html DIR_SRC = ./ DIR_BIN = ../bin PROGRAMNAME = program TARGET = ${DIR_BIN}/${PROGRAMNAME} SRC = $(wildcard ${DIR_SRC}/*.cpp) CC = g++

linux: 几个常用makefile模板

不才,总结个人常用makefile模板,以备后用. 1.编译动态库 [plain] view plain copy ############################################################# # Makefile for shared library. # 编译动态链接库 ############################################################# #set your own environment o

makefile模板

1.简单的makefile模板 ############################################################# # Target files. ############################################################# TARGET := ############################################################# # Compiler tool ######