OpenWrt结构分析

openwrt项目目录

目录 内容描述
./config 编译选项配置文件: 包含全局编译设置,开发人员设置和内核编译设置
./include

准备环境脚本,下载补丁脚本,编译Makefile和编译指令

Openwrt的很多Makefile都存放在这里,文件名为*.mk

这里的文件是在Makefile里被include的,类似于库文件,这些文件定义了编译

过程

./package

各种功能的软件包,软件包仅包含Makefile、补丁及配置文件

存放了Openwrt系统中适用的软件包,包含针对各个软件包的Makefile

./scripts

存放了一些脚本,使用了 bash,Python,perl 等多种脚本语言

编译过程中,用于第三方软件包管理的feeds也是在这个目录当中

在编译过程中,使用到的脚本也统一放在这个目录中

./target

嵌入式平台,包含特定的嵌入式平台内容

Openwrt的源码可以编译出各个平台适用的二进制文件,各平台在这个目录里

定义了fireware和kernel的编译过程

./toolchain 编译器和C库,例如包含编译工具gcc和glibc库
./tools

通用命令,用来生成固件的辅助工具,如patch/make/spuashfs等

每个Makefile当中都有一句$(eval $(call HostBuild)),这表明编译这个工具是

为了在主机上使用的

./docs

包含了整个宿主机的文件源码的介绍,里面还要Makefile为目标系统生成docs

使用 make -C docs/ 可以为目标系统生成文档

./feeds

下载管理软件包

默认的feeds下载有packages、management、luci、routing、telephony

OpenWrt 根目录包含以下文件

文件 内容描述
Config.in

在include/toplevel.mk中可以看到,这是和make menuconfig相关联的

文件

Makefile 顶层目录执行make命令的入口文件
feeds.conf.default 配置下载第三方一些软件包时所使用的地址
rules.mk 定义了Makefile中使用的一些通用变量和函数

编译OpenWrt源码后,出现新的目录

目录 描述
/build_dir/host 在该文件夹中编译主机使用的工具软件

/build_dir/target-

在此编译目标平台的目标文件,包括各个软件包和内核文件
/build_dir/toolchain- 在该文件夹中编译交叉工具链
/bin

保存编译完成后的二进制文件

包括:完整的bin文件,所有的ipk文件

/dl

在编译过程中使用很多软件,其他服务器下载的

这里是统一的保存目录

/staging_dir

用于保存在build_dir目录中完成的软件

和build_dir有同样的子目录结构

开发ipk文件时,预处理头文件,链接动态库,静态库都是到这个子

文件夹中

/tmp 在编译过程中,有大量中间临时文件需要保存,都是在这里
/logs 编译过程中出错的信息,只有当编译出错了才会出现

你可能感兴趣的:(bash,开发语言)