source: rtems-docs/user/rsb/index.rst

Last change on this file was bb47f89, checked in by Chris Johns <chrisj@…>, on Oct 13, 2019 at 8:51:25 AM

user/rsb: Update 3rd party package build and add packaging details.

  • Property mode set to 100644
File size: 3.9 KB
RevLine 
[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]9Source Builder
10**************
[8b64335]11
[bb47f89]12The RTEMS Source Builder or RSB is a tool to build packages from source. The
13RTEMS project uses it to build it's compilers, tools, kernel and 3rd party
14packages. The tool is aimed at developers of software for RTEMS who use tool
15sets for embedded development.
16
17The RSB consolidates the details you need to build a package from source in a
18controlled and verifiable way. The RSB is not limited to building tools for
19RTEMS, you can build bare metal development environments.
20
21.. comment: TBD: The section "Installing and Tar Files" does not exist.
22
23The RSB section of this manual caters for a range of users from new to
24experienced RTEMS developers who want to understand the RTEMS Source
25Builder. New users who just want to build tools should follow :ref:`QuickStart`
26in 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
28or packages, or wanting update or extend the RSB's configuration can read the
29remaining sections.
[8b64335]30
31Embedded development typically uses cross-compiling tool chains, debuggers, and
32debugging aids. Together we call these a **tool set**. The RTEMS Source Builder
33is designed to fit this specific niche but is not limited to it. The RSB can be
34used outside of the RTEMS project and we welcome this.
35
[bb47f89]36The 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
38specific tool, for example GCC, GDB, or library of code and a single **build
39set** can build them all in a single command. The RTEMS Source Builder
40attempts to support any host environment that runs Python and you can build
41the package on. The RSB is not some sort of magic that can take any piece of
42source code and make it build. Someone at some point in time has figured out
43how to build that package from source and taught this tool.
44
45.. sidebar:: Setting up your Host
46
47   See :ref:`QuickStartHost` for details on setting up hosts.
[8b64335]48
[bb47f89]49The 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]64The 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
66of tools you would use when developing software for RTEMS. For example the
[3db6371]67basic GNU tool set is Binutils, GCC, and GDB and is the typical base suite of
[cddb06c]68tools you need for an embedded cross-development type project. The second type
[bb47f89]69of configuration data are the configuration files and they define how a package
[cddb06c]70is built. Configuration files are scripts loosely based on the RPM spec file
71format and they detail the steps needed to build a package. The steps are
[8b64335]72*preparation*, *building*, and *installing*. Scripts support macros, shell
[cddb06c]73expansion, logic, includes plus many more features useful when build packages.
74
75The RTEMS Source Builder does not interact with any host package management
76systems. There is no automatic dependence checking between various packages you
77build or packages and software your host system you may have installed. We
78assume the build sets and configuration files you are using have been created
[2674d6a]79by developers who do. Support is provided for package config or ``pkgconfig``
[8b64335]80type files so you can check and use standard libraries if present. If you have
81a 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
Note: See TracBrowser for help on using the repository browser.