编译
文章平均质量分 92
lgjjeff
这个作者很懒,什么都没留下…
展开
-
六 makefile.build的分析
我们如果在kernel的顶层makefile中搜索一下,就会发现有大量如下的命令: $(MAKE) $(build)=xxxbuild的定义在kbuild.include中,如上图2.7所示,此处再贴一下: 图6.1 即大量实际目标的编译都是调用scripts/Makefile.build完成的...原创 2019-05-24 09:54:14 · 6780 阅读 · 4 评论 -
五 其它目标和通用选项的介绍
由于第四章和第五章的内容比较少,故这里将它们放到一起发布了。本篇内容主要包括kernel makefile支持的一些其它目标和通用选项的简单介绍。四 其它目标的执行过程 kernel makefile除了支持编译vmlinux,modules之外,还支持多种其它目标的编译。由于它们相对比较简单,故这里只列举一些它们的用法,而不再对其实现一一分析。 我们可以根据make h...原创 2019-05-24 08:58:31 · 525 阅读 · 0 评论 -
四 通用目标之make modules的执行过程分析
搜索顶层makefile发现会有两个modules目标,它们的定义分别如图3.13和3.14,查看代码发现它们分别位于ifeq ($(KBUILD_EXTMOD),)和else的条件中。KBUILD_EXTMOD的定义可以参考图2.5,即若编译的为外部模块(含有M=xxx参数),则将其设置为1,否则为0,所以第一个modules目标会在编译非外部模块时调用,而第二个modules在编译外部...原创 2019-05-23 22:24:54 · 5808 阅读 · 1 评论 -
三 通用目标之make vmlinux的执行过程分析
我们首先看下vmlinux的规则定义如图3.1,它的依赖除了FORCE以外还有三个,scripts/link-vmlinux.sh是一个用于链接的脚本,我们将在具体讲到该部分内容时再详细分析它。 图3.1 vmlinux_prereq的定义如图3.2,仔细一看它的依赖vmlinux-deps就是vmlinux...原创 2019-05-23 22:03:57 · 1447 阅读 · 0 评论 -
二 配置目标make menuconfig的执行过程分析
进入kernel的根目录,并输入make menuconfig,将会跳出如下图2.1所示的界面: 图2.1 此后,你可以修改相应的配置,修改完成后,退出保存。在根目录下输入ls -a,会发现其输出中有一个如图2.2所示的.config文件,该文件即是由make menuconfig产生的。有兴趣的话可...原创 2019-05-23 21:30:07 · 1651 阅读 · 0 评论 -
一 kernel编译系统概述
内核的编译系统主要由kconfig,makefile和一系列脚本共同构成。其中kconfig主要用于配置内核的各项功能,它的结果决定了各个部分最终是被编译成模块,编译进内核还是不编译。在内核顶层makefile的help可以看到有一个专门用于配置内核的命令序列,后续我们会详细介绍该部分内容。顶层makefile是整个内核编译系统的入口,所有make相关的命令都由它发起,并调用定义在其中或其它...原创 2019-05-23 17:39:55 · 1483 阅读 · 0 评论