[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 | |
---|
[bb47f89] | 9 | Source Builder |
---|
| 10 | ************** |
---|
[8b64335] | 11 | |
---|
[bb47f89] | 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. |
---|
[8b64335] | 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 | |
---|
[bb47f89] | 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 | |
---|
[1b2a7c8] | 47 | See :ref:`QuickStartPreparation` for details on setting up hosts. |
---|
[8b64335] | 48 | |
---|
[bb47f89] | 49 | The RTEMS Source Builder is known to work on: |
---|
[8b64335] | 50 | |
---|
| 51 | - ArchLinux |
---|
| 52 | - CentOS |
---|
| 53 | - Fedora |
---|
| 54 | - Raspbian |
---|
| 55 | - Ubuntu (includes XUbuntu) |
---|
| 56 | - Linux Mint |
---|
| 57 | - openSUSE |
---|
| 58 | - FreeBSD |
---|
| 59 | - NetBSD |
---|
[bb47f89] | 60 | - Solaris |
---|
[8b64335] | 61 | - MacOS |
---|
| 62 | - Windows |
---|
| 63 | |
---|
[cddb06c] | 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 |
---|
[3db6371] | 67 | basic GNU tool set is Binutils, GCC, and GDB and is the typical base suite of |
---|
[cddb06c] | 68 | tools you need for an embedded cross-development type project. The second type |
---|
[bb47f89] | 69 | of configuration data are the configuration files and they define how a package |
---|
[cddb06c] | 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 |
---|
[8b64335] | 72 | *preparation*, *building*, and *installing*. Scripts support macros, shell |
---|
[cddb06c] | 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 |
---|
[2674d6a] | 79 | by developers who do. Support is provided for package config or ``pkgconfig`` |
---|
[8b64335] | 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`. |
---|
[cddb06c] | 82 | |
---|
[8b64335] | 83 | .. topic:: Bug Reporting |
---|
[cddb06c] | 84 | |
---|
[8b64335] | 85 | If you think you have found a problem please see :ref:`Bugs, Crashes, and |
---|
| 86 | Build Failures`. |
---|
[60ed99d] | 87 | |
---|
| 88 | .. toctree:: |
---|
| 89 | |
---|
[bb47f89] | 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 |
---|