source: rtems-docs/rsb/source-builder.rst @ 9e18bcb

5
Last change on this file since 9e18bcb was 9e18bcb, checked in by Sebastian Huber <sebastian.huber@…>, on 01/10/19 at 11:52:24

rsb: Move "Why Build from Source?" to own chapter

  • Property mode set to 100644
File size: 4.3 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
[8b64335]5RTEMS Source Builder
[9742e45]6====================
[8b64335]7
8The RTEMS Source Builder or RSB is a tool to build packages from source. It is
9used by the RTEMS project to build it's compilers and OS. The RSB helps
10consolidate the details you need to build a package from source in a controlled
11and verifiable way. The tool is aimed at developers of software who use tool
12sets for embedded development. The RSB is not limited to building tools just
13for RTEMS, you can build bare metal development environments.
14
15Embedded development typically uses cross-compiling tool chains, debuggers, and
16debugging aids. Together we call these a **tool set**. The RTEMS Source Builder
17is designed to fit this specific niche but is not limited to it. The RSB can be
18used outside of the RTEMS project and we welcome this.
19
20The RTEMS Source Builder is typically used to build a set of tools or a **build
21set**. A **build set** is a collection of packages and a package is a specific
22tool, for example gcc or gdb, or library. The RTEMS Source Builder attempts to
23support any host environment that runs Python and you can build the package
24on. The RSB is not some sort of magic that can take any piece of source code
25and make it build. Someone at some point in time has figured out how to build
26that package from source and taught this tool.
27
28The 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.
[cddb06c]45
46The 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
48of tools you would use when developing software for RTEMS. For example the
49basic GNU tool set is binutils, gcc, and gdb and is the typical base suite of
50tools you need for an embedded cross-development type project. The second type
51of configuration data is the configuration files and they define how a package
52is built. Configuration files are scripts loosely based on the RPM spec file
53format and they detail the steps needed to build a package. The steps are
[8b64335]54*preparation*, *building*, and *installing*. Scripts support macros, shell
[cddb06c]55expansion, logic, includes plus many more features useful when build packages.
56
57The RTEMS Source Builder does not interact with any host package management
58systems. There is no automatic dependence checking between various packages you
59build or packages and software your host system you may have installed. We
60assume the build sets and configuration files you are using have been created
[8b64335]61by developers who do. Support is provided for package config or ``pkgconfg``
62type files so you can check and use standard libraries if present. If you have
63a problem please ask on our :r:list:`devel`.
[cddb06c]64
[47aad7a]65.. comment: TBD: The section "Installing and Tar Files" does not exist.
66
[cddb06c]67This documentation caters for a range of users from new to experienced RTEMS
[c1809d6]68developers who want to understand the RTEMS Source Builder. New users
69who just want to build tools should follow the Quick Start section in
70the User's Guide.  Users building a binary tool set for release can
71read the "Installing and Tar Files". Users wanting to run and test
72bleeding edge tools or packages, or wanting update or extend the RSB's
[cddb06c]73configuration can read the remaining sections.
74
[8b64335]75.. topic:: Bug Reporting
[cddb06c]76
[8b64335]77   If you think you have found a problem please see :ref:`Bugs, Crashes, and
78   Build Failures`.
[cddb06c]79
[c1809d6]80Controlling the Tools Build
81---------------------------
82
83Build sets can be controlled via the command line to enable and disable various
84features. There is no definitive list of build options that can be listed
85because they are implemented with the configuration scripts. The best way to
86find what is available is to grep the configuration files. for ``with`` and
87``without``.
88
89Following are currently available:
90
91``--without-rtems``
92  Do not build RTEMS when building an RTEMS build set.
93
94``--without-cxx``
95  Do not build a C++ compiler.
96
97``--with-ada``
98  Attempt to build an Ada compiler.  You need a native GNAT installed.
99
100``--with-fortran``
101  Attempt to build a Fortran compiler.
102
103``--with-objc``
104  Attempt to build a C++ compiler.
105
106
Note: See TracBrowser for help on using the repository browser.