source: rtems-docs/user/tools/bsp-builder.rst @ 1accbe3

5
Last change on this file since 1accbe3 was 1accbe3, checked in by Chris Johns <chrisj@…>, on 03/15/17 at 01:34:19

user: Add tool commands to the user manual.

  • Property mode set to 100644
File size: 7.0 KB
Line 
1.. comment SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. comment: Copyright (c) 2017 Chris Johns <chrisj@rtems.org>
4.. comment: All rights reserved.
5
6RTEMS BSP Builder
7=================
8
9.. index:: Tools, rtems-bsp-builder
10
11The RTEMS BSP Builder is an RTEMS developer tool to build RTEMS in ways users
12do not to test changes to RTEMS. RTEMS has large number of architectures, board
13support packages and configuration options. This tool provides a standard way
14to test a change.
15
16Developer Workflows
17-------------------
18
19There are a number of RTEMS developers each with a different view or expertise
20in RTEMS. Developer can work in the generic areas such as scheduling, file
21systems or the shell, then there are users turned developers adding a new BSP,
22or even a new port to a new architecture. A common approach for all these
23developers is to select a BSP and to work with that BSP. Developers working in
24a generic areas of RTEMS tend to select a BSP that has good simulator support
25with good debugging such as QEMU, while developers of a new BSP or a new port
26tend to work on target hardware. This type of development does not check the
27other architectures, BSP, and build options and a change may change the number
28of warnings or introduce build errors. It is important for the RTEMS project to
29have developers fix these issues before pushing the changes to master
30repository to avoid breaking the code for other developers. It is best for a
31developer to resolve as many issues as they work on changes because comming
32back to a problem often proves difficult.
33
34The RTEMS BSP Builder forms part of a developers workflow where patches are
35tested before being pushed to the repository.
36
37Build Characteristics
38---------------------
39
40Build characteristic are the various parts of a build that can varied changing
41what is built. RTEMS can vary builds based on:
42
43#. Architecture
44
45#. Board Support Package (BSP)
46
47#. Build Configuration options
48
49#. BSP Options
50
51The BSP Builder provides a template of build variation to try and reduce the
52possble combinations to something manageable. It is not realistic to build all
53possible combinations on a single machine in reasonible time.
54
55The RTEMS BSP Builder specifies it builds in terms of:
56
57#. Profiles
58
59#. Builds
60
61The RTEMS BSP Builder will build a list of builds for a profile of board
62support packages.
63
64Profiles
65^^^^^^^^
66
67A profile is named collection of architectures and board support packages. When
68the RTEMS BSP Builder is asked to build a specific profile it builds the BSPs
69in the specified architectures.
70
71The default configuration provides standard profiles based on
72:ref:`Tiers`. They are:
73
74#. ``tier-1`` (default)
75
76#. ``tier-2``
77
78#. ``tier-3``
79
80#. ``tier-4``
81
82Builds
83^^^^^^
84
85A build is a list of builds and each BSP in a profiles is built using each
86build in the builds list.
87
88The default configuration provides standard builds based around the commonly
89varied configure options.
90
91The builds are:
92
93#. ``all`` (default)
94
95#. ``basic``
96
97A ``basic`` build is the ``standard`` or default set configure options.
98
99The ``all`` build is:
100
101 +-----------------------+-----------------------------------------------------+
102 | Label                 | Configure Options                                   |
103 +-----------------------+-----------------------------------------------------+
104 | ``debug``             | ``--enable-debug``                                  |
105 +-----------------------+-----------------------------------------------------+
106 | ``profiling``         | ``--enable-profiling``                              |
107 +-----------------------+-----------------------------------------------------+
108 | ``smp``               | ``--enable-sm``                                     |
109 +-----------------------+-----------------------------------------------------+
110 | ``smp-debug``         | ``--enable-smp --enable-debug``                     |
111 +-----------------------+-----------------------------------------------------+
112 | ``posix``             | ``--enable-posix``                                  |
113 +-----------------------+-----------------------------------------------------+
114 | ``no-posix``          | ``--disable-posix``                                 |
115 +-----------------------+-----------------------------------------------------+
116 | ``posix-debug``       | ``--enable-posix --enable-debug``                   |
117 +-----------------------+-----------------------------------------------------+
118 | ``posix-profiling``   | ``--enable-posix --enable-profiling``               |
119 +-----------------------+-----------------------------------------------------+
120 | ``posix-smp``         | ``--enable-posix --enable-smp``                     |
121 +-----------------------+-----------------------------------------------------+
122 | ``network``           | ``--enable-networking``                             |
123 +-----------------------+-----------------------------------------------------+
124 | ``no-network``        | ``--disable-networking``                            |
125 +-----------------------+-----------------------------------------------------+
126 | ``network-debug``     | ``--disable-networking``                            |
127 +-----------------------+-----------------------------------------------------+
128 | ``network-debug``     | ``--enable-debug --enable-networking``              |
129 +-----------------------+-----------------------------------------------------+
130 | ``smp-network``       | ``--enable-smp --enable-networking``                |
131 +-----------------------+-----------------------------------------------------+
132 | ``smp-network-debug`` | ``--enable-smp --enable-debug --enable-networking`` |
133 +-----------------------+-----------------------------------------------------+
134
135Command
136-------
137
138:program:`rtems-bsp-builder` [options]
139
140.. option:: -?
141
142   Display a compact help.
143
144.. option:: -h, --help
145
146   Display the full help.
147
148.. option:: --prefix
149
150   Prefix to pass to configure then building a BSP.
151
152.. option:: --rtems-tools
153
154   The path the RTEMS tools such as the C compiler. This option avoid polluting
155   your path.
156
157.. option:: --rtems
158
159   The path the RTEMS source tree to build.
160
161.. option:: --build-path
162
163   The path to build the BSP and place the build output. This can be any path
164   and away from your current directory or the RTEMS source code. The storage
165   does not need to be fast like an SSD.
166
167.. option:: --log
168
169   The log file.
170
171.. option:: --stop-on-error
172
173   Stop the build on an error. The default is to build all the builds for a
174   profile.
175
176.. option:: --no-clean
177
178   Do not remove the build once finished. This option lets you inspect the
179   built output. The output of output can be large and disks can fill with this
180   option.
181
182.. option:: --profiles
183
184   Build the list of profiles. The default is ``tier-1``.
185
186.. option:: --build
187
188   The build to be used. The default is ``all``.
189
190.. option:: --arch
191
192   Specify an architecure for a BSP to build instead of using a profile.
193
194.. option:: --bsp
195
196   The a specific BSP to build instead of using a profile.
197
198.. option:: --dry-run
199
200   Do not do the actual builds just show what would be built.
Note: See TracBrowser for help on using the repository browser.