Linux内核Makefile浅析

原创 2013年12月05日 17:25:56

Makefile:顶层Makefile,整个内核配置、编译的总体控制文件。

.config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如 make config)。

arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefile。

各个子目录下的Makefile:比如drivers/Makefile,负责所在子目录下源代码的管理。

Rules.make:规则文件,被所有的Makefile使用。

用户通过make config配置后,产生了.config。顶层Makefile读入.config中的配置选择。顶层Makefile有两个主要的任务:产生vmlinux文件和内核模块(module)。为了达到此目的,顶层Makefile递归的进入到内核的各个子目录,分别调用位于这些子目录中的Makefile。至于到底进入到哪些子目录,取决于内核的配置。

在顶层Makefile中,有一句:include arch/$(ARCH)/Makefile,包含了特定CPU体系结构下的Makefile,这个Makefile中包含了平台相关的信息。

位于各个子目录下的Makefile同样也根据.config给出的配置信息,构造出当前配置下需要的源文件列表,并在文件的最后有include $(TOPDIR)/Rules.make。

 Rules.make 文件起着非常重要的作用,它定义了所有 Makefile 共用的编译规则。比如,如果需要将本目录下所有的 c 程序编译成汇编代码,需要在 Makefile 中有以下的编译规则:

%.s: %.c
$(CC) $(CFLAGS) -S $
有很多子目录下都有同样的要求,就需要在各自的 Makefile 中包含此编译规则,这会比较麻烦。而 Linux内核中则把此类的编译规则统一放置到 Rules.make 中,并在各自的 Makefile 中包含进了 Rules.make(include Rules.make),这样就避免了在多个 Makefile 中重复同样的规则。对于上面的例子,在 Rules.make 中对应的规则为:
%.s: %.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(*F)) $(CFLAGS_$@) -S $

 

Linux中makefile过程(尚未学完)

学习自 微信 嵌入式资讯精选 Linux内核中Makefile的作用是根据配置的情况,构造出需要编译的原文件列表,然后分别编译,并把目标代码链接到一起,最终行程linux内核二进制文件。 由于Li...
  • u014717398
  • u014717398
  • 2017年10月03日 09:34
  • 82

Linux内核中的内存管理浅谈

[十月往昔]——Linux内核中的内存管理浅谈 为什么要叫做“十月往昔”呢?是为了纪念我的原博客。 不知道为什么,突然想来一个新的开始——而那个博客存活至今刚好十个月,也有十个月里的文档。 十月...
  • jasonblog
  • jasonblog
  • 2009年11月21日 20:32
  • 3542

(转载)Linux内核漏洞浅析

Linux内核漏洞浅析文章属性:转载(http://www.xfocus.net/articles/200410/746.html)与Windows相比,Linux被认为具有更好的安全性和其他扩展性能...
  • Kendiv
  • Kendiv
  • 2004年11月07日 22:37
  • 1848

Linux内核Makefile浅析(二)

3) 定义语句 define_bool /symbol/ /word/ define_hex /symbol/ /word/ define_int /symbol/ /wo...
  • leo9150285
  • leo9150285
  • 2011年11月25日 16:52
  • 386

Linux内核Makefile浅析

1. 配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是:Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 配置文件(con...
  • Synthesize
  • Synthesize
  • 2011年03月23日 15:11
  • 383

Linux内核Makefile浅析(转

1. 配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 配置文件(confi...
  • ctwei85
  • ctwei85
  • 2010年03月11日 16:34
  • 313

Linux内核Makefile浅析(一)

1. 配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 配...
  • leo9150285
  • leo9150285
  • 2011年11月25日 16:51
  • 408

Linux内核Makefile浅析

Linux内核Makefile浅析 http://david_yang.blogeden.cn/post/166445/5718Linux内核Makefile浅析(转贴)1. 配置系统的基本结构Lin...
  • zcl338
  • zcl338
  • 2007年05月28日 21:18
  • 392

转:Linux内核Makefile浅析

Linux内核Makefile浅析  1. 配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: Makefile:分布在 Linux 内核源代码中的 Makefile,定义...
  • melvda
  • melvda
  • 2014年04月16日 13:34
  • 302

嵌入式 Linux内核Makefile浅析

1. 配置系统的基本结构   Linux内核的配置系统由三个部分组成,分别是:   Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则...
  • skdkjxy
  • skdkjxy
  • 2014年09月18日 18:24
  • 611
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux内核Makefile浅析
举报原因:
原因补充:

(最多只允许输入30个字)