- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /home/linux/linux-2.6.22.6 PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean else
obj-m := myhello.o endif
其中有一些是我们常见或是见过的,第一个ifeq ($(KERNELRELEASE),)目前,并无用处,它的由来是指在 Linux 源码根目录下的 Makefile 编译内核时,KERNELRELEASE 宏会被定义,那么如果是从源码根目录开始的make 则会将 myhello.o 模块编译进内核。
KERNELDIR ?= /home/linux/linux-2.6.22.6,这句是对 KERNELDIR 进行赋值,这个变量是后面我们用到的指代内核源码目录用的。
PWD := $(shell pwd),这句是对 PWD 变量进行赋值,作用是将$(shell pwd)的返回结果既求得当前目录的路径赋值给 PWD,这个变量我们在后面指代我们要编译的驱动程序所在的位置。
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
这句是 Makefile 的规则:这里的$(MAKE)就相当于 make,-C 选项的作用是指将当前工作目录转移到你所指定的位置。“M=”选项的作用是,当用户需要以某个内核为基础编译一个外部模块的话,需要在 make modules 命令中加入“M=dir”,程序会自动到你所指定的 dir 目录中查找模块源码,将其编译,生成KO 文件。
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
这个命令是模块的安装,在 Makefile 中搜索“lib\/modules”可以看到下面的语句,通过阅读你不难找到这个“MODLIB”的用处,它是用来指定安装路径的,而变量“INSTALL_MOD_PATH”往往为空。
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) Export MODLIB
.PHONY: modules modules_install clean
这句话是的作用是保证 modules,modules_install,clean 这三个命令能正常完成。.PHONY 这是一个特殊目标名称,还有其它的,如:
.SUFFIXES,.DEFAULT,.PRECIOUS,.INTERMEDIATE,.SECONDARY,.SEC ONDEXPANSION,.DELETE_ON_ERROR,.IGNORE .LOW_RESOLUTION_TIME .SI LENT .EXPORT_ALL_VARIABLES .NOTPARALLEL
它们的具体用法可以参考 GNU 手册中的 Special Built-in Target Names 章节。
.PHONY 目标的具体意思是如果在Makefile 的工作目录中有名如: modules,modules_install,clean 等文件时命令会出错。它是防止这出错的方式。
您可能关注的文档
最近下载
- 《3000吨年产量的橙汁饮料生产工厂设计》14000字.doc VIP
- 年产3000吨猕猴桃果汁工厂设计本科毕业设计.doc VIP
- 基于simulink的综合通信系统的设计报告.pdf VIP
- 口腔解剖生理学考试题库及答案.docx VIP
- (电气工程及其自动化-电力系统自动化技术)电力系统自动化技术试题及答案.doc VIP
- 年产3000吨果汁饮料项目环评报告.doc VIP
- (电气工程及其自动化)电力系统试题及答案.doc VIP
- 毕业设计-年产3000吨猕猴桃果汁工厂工艺设计.doc VIP
- 2023年广西民族大学网络工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 郡士田宫对照表.pdf VIP
原创力文档


文档评论(0)