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