How Buildroot works

来源:互联网 发布:视频相册软件 编辑:程序博客网 时间:2024/05/05 16:16

As mentioned above, Buildroot is basically a set of Makefiles thatdownload, configure, and compile software with the correct options. Italso includes patches for various software packages - mainly the onesinvolved in the cross-compilation toolchain (gcc,binutils anduClibc).

There is basically one Makefile per software package, and they arenamed with the.mk extension. Makefiles are split into many differentparts.

  • The toolchain/ directory contains the Makefiles and associated files for all software related to the cross-compilation toolchain:binutils, gcc, gdb, kernel-headers and uClibc.
  • The arch/ directory contains the definitions for all the processor architectures that are supported by Buildroot.
  • The package/ directory contains the Makefiles and associated files for all user-space tools and libraries that Buildroot can compile and add to the target root filesystem. There is one sub-directory per package.
  • The linux/ directory contains the Makefiles and associated files for the Linux kernel.
  • The boot/ directory contains the Makefiles and associated files for the bootloaders supported by Buildroot.
  • The system/ directory contains support for system integration, e.g. the target filesystem skeleton and the selection of an init system.
  • The fs/ directory contains the Makefiles and associated files for software related to the generation of the target root filesystem image.

Each directory contains at least 2 files:

  • something.mk is the Makefile that downloads, configures, compiles and installs the packagesomething.
  • Config.in is a part of the configuration tool description file. It describes the options related to the package.

The main Makefile performs the following steps (once theconfiguration is done):

  • Create all the output directories: staging,target, build, stamps, etc. in the output directory (output/ by default, another value can be specified usingO=)
  • Generate all the targets listed in the BASE_TARGETS variable. When an internal toolchain is used, this means generating the cross-compilation toolchain. When an external toolchain is used, this means checking the features of the external toolchain and importing it into the Buildroot environment.
  • Generate all the targets listed in the TARGETS variable. This variable is filled by all the individual components' Makefiles. Generating these targets will trigger the compilation of the userspace packages (libraries, programs), the kernel, the bootloader and the generation of the root filesystem images, depending on the configuration.

cited from http://buildroot.uclibc.org/downloads/manual/manual.html#_going_further_in_buildroot_8217_s_innards

0 0
原创粉丝点击