默认情况下,顶层Makefile文件将$(ARCH)的设置为与主机系统架构相等。在交 叉编译的时候,用户可以通过下面的命令行来改写$(ARCH)变量的:
makeARCH=m68k ...
INSTALL_PATH
这个变量定义了一个架构Makefiles安装固定内核映像和System.map文件的地方。
体系相关的安装目标可以使用这个目标。
INSTALL_MOD_PATH,MODLIB
为了进行模块安装,$(INSTALL_MOD_PATH)为$(MODLIB)指定了一个前缀。这个变量 没有在Makefile中定义,但是用户愿意的话可以将它传入Makefile中。
$(MODLIB)指定了模块安装的目录。
顶层Makefile为$(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)定义了 $(MODLIB)变量。用户如果愿意的话可以通过命令行来改写这个。
INSTALL_MOD_STRIP
如果这个变量被指定了,那么将导致模块在安装之后被去除。如果 INSTALL_MOD_STRIP的为‘1’,那么会使用默认的选项--strip-debug。否则, INSTALL_MOD_STRIP将会被作为strip命令的选项。
=== 8 Makefile 语言
内核 Makefiles被设计成使用GNU Make运行。Makefiles只使用GNU Make定义的功能,但是它们使用了许多GNU的扩展功能。
GNU Make支持基本的list-processing功能。内核Makefiles使用一些样式新颖的列表来建立和操作一些"if"语句。
GNU Make有两个赋操作符,":="和"=" 。":="立即计算出等式右边的,并且储存一个实际的字符串到等式左边。"="就像一个规则定义;它将等式右边直接储存到等式左边而不计算出实际的,当每次使用等式左边的时再去计算出实际的。
有一些情况使用"="是合适的。但是大多数情况下使用":="是合适的选择。
=== 9贡献者
原始的版本由Michael Elizabeth Chastain 提供,<发送邮件至 : mec@shout.net>
Kai Germaschewski进行了更新 kai@tp1.ruhr-uni-bochum.de
Sam Ravnborg 进行了更新 sam@ravnborg.org
文本质量保证由Jan Engelhardt 担任jengelh@gmx.de
=== 10 下一步的工作
- 描述kbuild怎么使用_shipped来支持shipped文件
- 生成offset头文件
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-40628-15.html
至于吗