1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. Copyright (C) 2012, 2016 Chris Johns <chrisj@rtems.org> |
---|
4 | |
---|
5 | .. highlight:: shell |
---|
6 | |
---|
7 | .. _RSB: |
---|
8 | |
---|
9 | Source Builder |
---|
10 | ************** |
---|
11 | |
---|
12 | The RTEMS Source Builder or RSB is a tool to build packages from source. The |
---|
13 | RTEMS project uses it to build it's compilers, tools, kernel and 3rd party |
---|
14 | packages. The tool is aimed at developers of software for RTEMS who use tool |
---|
15 | sets for embedded development. |
---|
16 | |
---|
17 | The RSB consolidates the details you need to build a package from source in a |
---|
18 | controlled and verifiable way. The RSB is not limited to building tools for |
---|
19 | RTEMS, you can build bare metal development environments. |
---|
20 | |
---|
21 | .. comment: TBD: The section "Installing and Tar Files" does not exist. |
---|
22 | |
---|
23 | The RSB section of this manual caters for a range of users from new to |
---|
24 | experienced RTEMS developers who want to understand the RTEMS Source |
---|
25 | Builder. New users who just want to build tools should follow :ref:`QuickStart` |
---|
26 | in this manual. Users building a binary tool set for release can read the |
---|
27 | "Installing and Tar Files". Users wanting to run and test bleeding edge tools |
---|
28 | or packages, or wanting update or extend the RSB's configuration can read the |
---|
29 | remaining sections. |
---|
30 | |
---|
31 | Embedded development typically uses cross-compiling tool chains, debuggers, and |
---|
32 | debugging aids. Together we call these a **tool set**. The RTEMS Source Builder |
---|
33 | is designed to fit this specific niche but is not limited to it. The RSB can be |
---|
34 | used outside of the RTEMS project and we welcome this. |
---|
35 | |
---|
36 | The RTEMS Source Builder is typically used to build a set of packages or a |
---|
37 | **build set**. A **build set** is a collection of packages and a package is a |
---|
38 | specific tool, for example GCC, GDB, or library of code and a single **build |
---|
39 | set** can build them all in a single command. The RTEMS Source Builder |
---|
40 | attempts to support any host environment that runs Python and you can build |
---|
41 | the package on. The RSB is not some sort of magic that can take any piece of |
---|
42 | source code and make it build. Someone at some point in time has figured out |
---|
43 | how to build that package from source and taught this tool. |
---|
44 | |
---|
45 | .. sidebar:: Setting up your Host |
---|
46 | |
---|
47 | See :ref:`QuickStartPreparation` for details on setting up hosts. |
---|
48 | |
---|
49 | The RTEMS Source Builder is known to work on: |
---|
50 | |
---|
51 | - ArchLinux |
---|
52 | - CentOS |
---|
53 | - Fedora |
---|
54 | - Raspbian |
---|
55 | - Ubuntu (includes XUbuntu) |
---|
56 | - Linux Mint |
---|
57 | - openSUSE |
---|
58 | - FreeBSD |
---|
59 | - NetBSD |
---|
60 | - Solaris |
---|
61 | - MacOS |
---|
62 | - Windows |
---|
63 | |
---|
64 | The RTEMS Source Builder has two types of configuration data. The first is the |
---|
65 | *build set*. A *build set* describes a collection of packages that define a set |
---|
66 | of tools you would use when developing software for RTEMS. For example the |
---|
67 | basic GNU tool set is Binutils, GCC, and GDB and is the typical base suite of |
---|
68 | tools you need for an embedded cross-development type project. The second type |
---|
69 | of configuration data are the configuration files and they define how a package |
---|
70 | is built. Configuration files are scripts loosely based on the RPM spec file |
---|
71 | format and they detail the steps needed to build a package. The steps are |
---|
72 | *preparation*, *building*, and *installing*. Scripts support macros, shell |
---|
73 | expansion, logic, includes plus many more features useful when build packages. |
---|
74 | |
---|
75 | The RTEMS Source Builder does not interact with any host package management |
---|
76 | systems. There is no automatic dependence checking between various packages you |
---|
77 | build or packages and software your host system you may have installed. We |
---|
78 | assume the build sets and configuration files you are using have been created |
---|
79 | by developers who do. Support is provided for package config or ``pkgconfig`` |
---|
80 | type files so you can check and use standard libraries if present. If you have |
---|
81 | a problem please ask on our :r:list:`devel`. |
---|
82 | |
---|
83 | .. topic:: Bug Reporting |
---|
84 | |
---|
85 | If you think you have found a problem please see :ref:`Bugs, Crashes, and |
---|
86 | Build Failures`. |
---|
87 | |
---|
88 | .. toctree:: |
---|
89 | |
---|
90 | why-build-from-source.rst |
---|
91 | project-sets |
---|
92 | cross-canadian-cross |
---|
93 | third-party-packages |
---|
94 | configuration |
---|
95 | commands |
---|
96 | deployment |
---|
97 | bug-reporting |
---|
98 | history |
---|