Blame view

buildroot/buildroot-2016.08.1/docs/manual/customize-packages.txt 2.75 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
69
70
71
  // -*- mode:doc; -*-
  // vim: set syntax=asciidoc:
  
  [[customize-packages]]
  === Adding project-specific packages
  
  In general, any new package should be added directly in the +package+
  directory and submitted to the Buildroot upstream project. How to add
  packages to Buildroot in general is explained in full detail in
  xref:adding-packages[] and will not be repeated here. However, your
  project may need some proprietary packages that cannot be upstreamed.
  This section will explain how you can keep such project-specific
  packages in a project-specific directory.
  
  As shown in xref:customize-dir-structure[], the recommended location for
  project-specific packages is +package/<company>/+. If you are using the
  +BR2_EXTERNAL+ feature (see xref:outside-br-custom[]) the recommended
  location is +$(BR2_EXTERNAL)/package/+.
  
  However, Buildroot will not be aware of the packages in this location,
  unless we perform some additional steps. As explained in
  xref:adding-packages[], a package in Buildroot basically consists of two
  files: a +.mk+ file (describing how to build the package) and a
  +Config.in+ file (describing the configuration options for this
  package).
  
  Buildroot will automatically include the +.mk+ files in first-level
  subdirectories of the +package+ directory (using the pattern
  +package/\*/*.mk+). If we want Buildroot to include +.mk+ files from
  deeper subdirectories (like +package/<company>/package1/+) then we
  simply have to add a +.mk+ file in a first-level subdirectory that
  includes these additional +.mk+ files. Therefore, create a file
  +package/<company>/<company>.mk+ with following contents (assuming you
  have only one extra directory level below +package/<company>/+):
  
  -----
  include $(sort $(wildcard package/<company>/*/*.mk))
  -----
  
  If you are using +BR2_EXTERNAL+, create a file
  +$(BR2_EXTERNAL)/external.mk+ with following contents (again assuming only
  one extra level):
  
  -----
  include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
  -----
  
  For the +Config.in+ files, create a file +package/<company>/Config.in+
  that includes the +Config.in+ files of all your packages. An exhaustive
  list has to be provided since wildcards are not supported in the source command of kconfig.
  For example:
  
  -----
  source "package/<company>/package1/Config.in"
  source "package/<company>/package2/Config.in"
  -----
  
  Include this new file +package/<company>/Config.in+ from
  +package/Config.in+, preferably in a company-specific menu to make
  merges with future Buildroot versions easier.
  
  If you are using +BR2_EXTERNAL+, create a file
  +$(BR2_EXTERNAL)/Config.in+ with similar contents:
  
  -----
  source "$BR2_EXTERNAL/package/package1/Config.in"
  source "$BR2_EXTERNAL/package/package2/Config.in"
  -----
  
  You do not have to add an include for this +$(BR2_EXTERNAL)/Config.in+
  file as it is included automatically.