Openwrt系统框架

/

BSDmakefile  :   针对BSD make的Makefile文件

Makefile         ——主makefile

Config.in   ——make menuconfig

rules.mk   ——定义各种变量,供给openwrt所用Makefile包含、使用

include/       : 编译tools,toolchain,kernel,package的语法规则

scripts/        : 用bash shell,perl,python,C编写的一些脚本工具,完成特定功能,主要提供include里的makefile文件调用

tools/                

toolchain/

target/

package/

feeds.conf.default

 当使用./script/feeds -update -a, ./script/feeds install -a,下载完软件包后将会生成如下两个目录

feeds/                

package/feeds 

dl/          ———编译开始后会新建dl/目录,将存放从网络上下载的各种开源软件

build_dir/  ——用于编译交叉工具链、Linux内核、各种应用软件包

用于存放编译好的交叉工具链和本地使用的工具集

staging_dir/

bin/

执行make menuconfig 配置好后的文件记录:

.config

tmp/

openwrt说明性文档

README

LICENSE

docs/

======================================================================================

include/       : 编译tools,toolchain,kernel,package的语法规则

--debug.mk                          用于显示打印信息,(如make DEBUG=all,d,t,l,r,v)

--depends.mk                     检查相互间的依赖性,检查时间戳,判断是否需要rebuild或者target not built

--toplevel.mk                      定义一些make目标,主要做编译前的准备工作,如prepare准备阶段生成的tmp/info下得信息

--verbose.mk                    解析make V=xx ,V 的参数0输出最少,99输出全部信息

--subdir.mk                        

--prereq-build.mk             检测Openwrt所必须的工具和函数库

--prereq-build.mk

--prerreq.mk

--dowload.mk

--unpack.mk

--quilt.mk

--autotools.mk

--image.mk

--host-build.mk

--host.mk

--toolchain-build.mk

--target.mk                          主要用于target/linux/xxx,包含kernel.mk  kernel-built.mk  kernel-version.mk

--kernel.mk                           主要用于package/kernel

--kernel-build.mk                 

--kernel-defaults.mk

--kernel-version.mk

--package.mk

--package-default.mk

--package-bin.mk

--package-dumpinfo.mk

--package-ipkg.mk

--package-version-override.mk

--cmake.mk

--scan.mk

--shell.sh

--netifilter.mk

--nls.mk

--site/

================================================================================================

scripts/

--getver.sh                       从.svn .git version .hg等地方获得Openwrt的版本信息,用法./scripts/getver.sh输出版本号

--timestamp.pl                打印文件、目录的时间戳,用法:./scripts/timestamp.pl xxx

===============================================================================================================

busybox在openwrt中是一个特殊的包,其中可以包含大量Linux的常用命令,也可以自己添加命令,但是它却很小。因为他用的是代码复用这一思想,充分利用系统原有的代码库以实现各种命令。


package/

base-files      固件核心

kernel             kernel package内核模块

====================================================================================================

build_dir/

--host    编译本地使用的一些工具,对应TOPDIR/tools/

--linux-s3c24xx_dev-mini2440编译目标软件的Linux内核,和basefile等

--target-arm_v4t_eglibc-2.8_eabi编译目标设备的应用软件如busybox

--toolchain-arm_v4t_gcc-4.3.3+cs_eglibc-2.8_eabi编译交叉编译工具链,对应TOPDIR/toolchain,和staging_dir/toolchain-arm_v4t_gcc-4.3.3+xxx

===================================================================================================

staging_dir/

--host,本地使用的常用工具集

--target-armxxx编译好的目标设备固件文件,include lib 等 

--toolchain-armxxxxx,编译好的交叉编译工具链

你可能感兴趣的:(openwrt相关)