Blame view

buildroot/buildroot-2016.08.1/docs/manual/how-buildroot-works.txt 2.64 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  // -*- mode:doc; -*-
  // vim: set syntax=asciidoc:
  
  == How Buildroot works
  
  As mentioned above, Buildroot is basically a set of Makefiles that
  download, configure, and compile software with the correct options. It
  also includes patches for various software packages - mainly the ones
  involved in the cross-compilation toolchain (+gcc+, +binutils+ and
  +uClibc+).
  
  There is basically one Makefile per software package, and they are
  named with the +.mk+ extension. Makefiles are split into many different
  parts.
  
  * 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 package +something+.
  
  * +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 the
  configuration is done):
  
  * Create all the output directories: +staging+, +target+, +build+,
    etc. in the output directory (+output/+ by default,
    another value can be specified using +O=+)
  
  * Generate the toolchain target. 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.