内核模块编译Makefile模板

来源:互联网 发布:淘宝直通车课程 编辑:程序博客网 时间:2024/05/16 07:28

模板一

#To build modules outside of the kernel tree, we run "make"#in the kernel source tree; the Makefile these then includes this#Makefile once again.#This conditional selects whether we are being included from the#kernel Makefile or not.ifeq ($(KERNELRELEASE),)      #判断是否被上层makefile包含    # Assume the source tree is where the running kernel was built    # You should set KERNELDIR in the environment if it's elsewhere    KERNELDIR ?= /lib/modules/$(shell uname -r)/build    # The current directory is passed to sub-makes as argument    PWD := $(shell pwd)modules:        $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_installclean:        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules modules_install cleanelse    # called from kernel build system: just declare what our modules are    obj-m := hello.oendif

模板二

ifneq ($(KERNELRELEASE),)     module-objs:=hello.o  #当有多个源文件时可以写成  hello1.o hello2.o     obj-m:=hello.o   #有多个源文件时这个名字不能和上面的重复else    KERNELDIR ?= /lib/modules/$(shell uname -r)/build    PWD := $(shell pwd)modules:        $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_installendifclean:        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules modules_install clean   

MAKEFILE基本知识
赋值符号 “=” “:=” “?=” “+=”
= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值 两个链接符之间用自动添加空格

关于 := 和 = 的区别看下面的例子

        A=first        B:=$(A)add        A=finalall:        @echo $(B)

运行 make 显示 firstadd

        A=first        B=$(A)add        A=finalall:        @echo $(B)

运行make显示 finaladd
总结:似乎 使用:=赋值的时候没有对后面的赋值语句进行检查,而使用 =的时候会受到后面语句的影响。
语句中@echo 和echo的区别是是否显示echo。加@echo只显示输出结果不显示命令。echo会显示命令之后显示对应输出。

“ifdef”是条件关键字。语法是
ifdef <variable-name>;<text-if-true>; else <text-if-false>; endif
ifdef只检验一个变量是否被赋值,它并不会去推导这个变量,并不会把变量扩展到当前位置。
“ifeq”与“ifdef”类似。 “ifeq”语法是
ifeq (<arg1>;, <arg2>;)
功能是比较参数“arg1”和“arg2”的值是否相同。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大便排不出去怎么办 婴儿三个没大便怎么办 三天不上大便怎么办 婴儿几天没大便怎么办 排便不好肚子大怎么办 三天不拉大便怎么办 几天不拉大便怎么办 七天不大便该怎么办 新生儿嘴巴很干怎么办 一岁宝宝过敏怎么办 母乳喂养宝宝不吃奶瓶怎么办 宝宝吃奶特别急怎么办 宝宝吃奶粉消化不良怎么办 喝羊奶大便干燥怎么办 宝宝换奶粉发烧怎么办 婴儿吃了蛋白怎么办 新生儿吃了蜂蜜怎么办 婴儿吃蜂蜜中毒怎么办 宝宝吃蜂蜜中毒怎么办 宝宝对蛋清过敏怎么办 宝宝吃蛋清过敏怎么办 婴儿吃蛋清过敏怎么办 初生婴儿拉水怎么办 婴儿鸡蛋过敏了怎么办 婴儿鸡蛋白过敏怎么办 母牛产后涨奶怎么办 宝宝吃奶时间长边吃边睡怎么办 宝宝吃海鲜过敏怎么办 小孩吃虾过敏怎么办 三个月婴儿不吃奶粉怎么办 宝宝秋季腹泻发烧怎么办 婴儿肚子有积食怎么办 小孩眼睛有点斜怎么办 孕妇血糖高便秘怎么办 宝宝蛋清过敏了怎么办 婴儿对鸡蛋过敏怎么办 宝宝断奶喝酸奶怎么办 宝宝被异物卡住怎么办 宝宝夜里膝盖痛怎么办 宝宝吃蛋白过敏怎么办 身体蛋白率低怎么办