/
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,编译好的交叉编译工具链