内核makefile

内核版本 : linux-2.6.22.6

内核编译的简单说明(不完全表达)

1、

/work/jz2440/kernel/linux-2.6.22.6/arch/arm/configs# ls |grep s3c*

s3c2410_defconfig

#cd /work/jz2440/kernel/linux-2.6.22.6/

 #make s3c2410_defconfig

/*

configuration written to .config

这一步主要做了什么?生成了几个.cmd文件和.c以及.config,

从而指导后面的编译选择。

试下make distclean{

  CLEAN scripts/basic
  CLEAN scripts/kconfig
  CLEAN include/config
  CLEAN .config

}

*/

2、

make menuconfig

执行该命令时,从Kconfig里面读取菜单选项,形成可视化菜单。(驱动开发者改写的)

执行后,根据用户自己配置,改写 .config文件。

3、

make

主Makefile以及各级Makefile 引用.config 里面的宏定义选项,生成宏定义头文件(  /include/linux/autoconf.h :#define CONFIG_ARM 1 )并编译内核。

各级子Makefile一般根据.config 里面的宏定义选项,选择是否编译以及是否编译为模块 。】

_________________________________

代码参考:

】假设我们在Kconfig里面增加了CONFIG_UNIX98_PTYS的菜单描述。】

linux-2.6.22.6/ Makefile:KCONFIG_CONFIG ?= .config

linux-2.6.22.6/.config:CONFIG_UNIX98_PTYS=y  【或 =m  , 或CONFIG_UNIX98_PTYS  is not set】

linux-2.6.22.6/drivers/char/Makefile  : obj-$(CONFIG_UNIX98_PTYS) += pty.o

_________________________________

链接:Linux内核Makefile文件  http://blog.csdn.net/artechtor/article/details/1424619 【讲的比较全比较好】

时间: 2024-10-11 06:02:51

内核makefile的相关文章

Helloworld模块之内核makefile详解

Hello World 模块以及对应的内核makefile详解 hello.c: #include <linux/module.h> //所有模块都需要的头文件 #include <linux/init.h> // init&exit相关宏 MODULE_LICENSE("GPL"); MODULE_AUTHOR("feifei"); MODULE_DESCRIPTION("hello world module")

Linux内核Makefile文件(翻译自内核手册)

转载自:http://www.cnblogs.com/jason-lu/p/3728198.html --译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 This document describes the Linux kernel Makefiles 本文当介绍了Linux内核的Makefile === Table of Contents=== 目录

Linux 2.6内核Makefile浅析【转】

转自:http://blog.csdn.net/tommy_wxie/article/details/7280463 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 概述 kbuild文件 1 obj-y和obj-m 11 obj-y生成built-ino 12 目标由多个源文件编译得到 13 调用子目录Makefile 2 lib-y和lib-m 3 编译选项变量 31 ccflags-yasflags-yldflags-y 32 subdir-ccflags-ysub

内核Makefile编写

对于大部分内核模块或设备驱动的开发者和使用者来说,最常接触到的就是各层目录下基于kbuild架构的kbuild Makefile文件.主要部分有:1.目标定义,目标定义就是用来定义哪些内容要做为模块编译,哪些要编译链接进内核. 最简单的只有一行,如obj-y += foo.o表示要由foo.c或者foo.s文件编译得到foo.o并链接进内核,而obj-m则表示该文件要作为模块编译.除了y,m以外的obj-x形式的目标都不会被编译. 由于既可以编译成模块,也可以编译进内核,更常见的做法是根据.co

Linux 2.6内核Makefile浅析

1 概述 Makefile由五个部分组成: Makefile:根目录Makefile,它读取.config文件,并负责创建vmlinux(内核镜像)和modules(模块文件). .config:内核配置文件(一般由make menuconfig生成). arch/$(ARCH)/Makefile:目标处理器的Makefile. scripts/Makefile.*:所有kbuild Makefile的规则,它们包含了定义/规则等. kbuild Makefiles:每个子目录都有kbuild

Linux内核Makefile笔记

周亦行 2014年11月 参考文档 ① linux源码Makefile的详细分析 ② if_changed_rule/cc_o_c/any-prereq/arg-check ③ Makefile中的伪目标 ④ Linux kernel 3.18.5 一.Makefile组成 (一)基本组成 顶层 Makefile 它是所有Makefile文件的核心,从总体上控制着内核的编译.连接 arch/$(ARCH)/Makefile 对应体系结构的Makefile,它用来决定哪些体系结构相关的文件参与内核

Linux 内核 Makefile 体系简单分析 (转)

转载自mz_linux的ChinaUnix博客 :http://blog.chinaunix.net/uid-26806098-id-3141136.html 众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Makefile.在内核目录树中我们可以看到内核编译系统的顶层Makefile文件.但是如此复杂.庞大的内核源码绝不可能使用一个或几个Makefile文件来完成配置编译,而是需要一套同样复杂.庞大,且为Linux内核定制的Makefile系统.她可以说是内核的一个子系统

linux内核makefile概览

linux内核makefile概览 本博客参照内核官方英文文档 linux的内核makefile主要用于编译整个内核源码,按照用户的需求生成各种目标文件,对于用户来说,编译内核时非常简单的,只需要几个指令就可以做到,但是对于一个驱动开发者而言,了解内核源码的编译机制是非常必要的. make 和 makefile 需要了解的是:make是linux下的一个程序软件,makefile相当于针对make程序的配置文件,当我们执行make命令时,make将会在当前目录寻找Makefile文件,然后根据M

《Linux内核Makefile分析》之 auto.conf, auto.conf.cmd, autoconf.h【转】

转自:http://blog.sina.com.cn/s/blog_87c063060101l25y.html 转载:http://blog.csdn.net/lcw_202/article/details/6661364 在编译构建性目标时(如 make vmlinux),顶层 Makefile 的 $(dot-config) 变量值为 1 . 在顶层 Makefile 的 497-504 行看到: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18