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