source: rtems-docs/user/rsb/index.rst @ 60ed99d

5
Last change on this file since 60ed99d was 60ed99d, checked in by Sebastian Huber <sebastian.huber@…>, on 01/11/19 at 09:20:08

user: Add RSB content as a chapter

Remove the separate RSB manual.

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