buildroot结构
1.1 目录结构
buildroot$ tree -L 1 -h
.
├── [4.0K] arch
├── [4.0K] board
├── [4.0K] boot
├── [245K] CHANGES
├── [ 23K] Config.in
├── [100K] Config.in.legacy
├── [ 12K] configs
├── [ 18K] COPYING
├── [ 41K] DEVELOPERS
├── [4.0K] docs
├── [4.0K] fs
├── [4.0K] linux
├── [ 40K] Makefile
├── [2.2K] Makefile.legacy
├── [4.0K] output
├── [ 56K] package
├── [1.1K] README
├── [4.0K] support
├── [4.0K] system
├── [4.0K] toolchain
└── [4.0K] utils
显示蓝色的目录, 其它的为文件。
arch:放置CPU架构相关的配置脚本
board:放置每个厂家的板子配置
boot:放置boot相关的, 比如uboot
configs:放置每个项目的配置文件
docs:放置参考文档
fs:放置文件系统的自动构建脚本
linux:放置Linux kernel的自动构建脚本
package:放置应用软件的配置文件,每个应用软件的配置文件有Config.in、xxx..hash和xxx.mk。会配置软件下载路径。
support:提供工具或脚本, kconfig就在其中。
system:放置根文件系统的原始版本,skeleton/下就能看到板子中那种熟悉的目录。
toolchain:放置工具链的自动构建脚本
utils :readme.txt中介绍了目录的作用, 其中有很多.mk, .py文件。
编译过程中会多出dl,output目录。dl下放置下载的代码,output放置解压的代码、编译的输出文件。
1.2 调用流程
根目录下的Makefile会调用各个目录下自动构建脚本文件。常见的uboot, linux kernel, 文件系统,外部的应用程序就会自动下载,配置,编译,安装,打包,最后输出可烧写的文件。Makefile支持很多命令,make help 可打印相关命令,通过make menuconfig 出现图形化菜单可以配置应用菜单,这样就可以裁剪出需要的最小系统。同时还具有生成文档的功能,方便开发。