Jump to content

Scratchbox 2

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Certes (talk | contribs) at 19:32, 28 January 2023 (improve link: C (programming language)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Scratchbox 2
Original author(s)Nokia
Developer(s)Jolla
Initial release2009-04-01
Stable release(s)
2.2.4[1] / 2012-04-01
Preview release(s)
2.3.62[2] / 2012-06-05
Written inC
Operating systemLinux
PlatformCross-platform
TypeBuild automation
LicenseLGPL 2.1
Websitehttps://github.com/sailfishos/scratchbox2

Scratchbox2 (sbox2 or sb2) is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate and cross-compile an entire Linux distribution.

In the Linux world, when building software, many parameters are auto-detected based on the host system (like installed libraries and system configurations), through autotools "./configure" scripts for example. When one wants to build for an embedded target (cross-compilation), most of the detected parameters are incorrect (i.e. host configuration is not the same as the embedded target configuration).

Without Scratchbox2, one has to manually set many parameters and "hack" the "configure" process to be able to generate code for the embedded target.

Scratchbox2 allows one to set up a "virtual" environment that will trick the autotools and executables into thinking that they are directly running on the embedded target with its configuration.

Moreover, Scratchbox2 provides a technology called CPU-transparency that goes further in that area. With CPU-transparency, executables built for the host CPU or for the target CPU could be executed directly on the host with sbox2 handling the task to CPU-emulate if needed to run a program compiled for the target CPU. So, a build process could mix the usage of program built for different CPU architectures. That is especially useful when a build process requires building the program X to be able to use it to build the program Y (Example: building a Lexer that will be used to generate code for a specific package).

Projects using Scratchbox2

  1. ^ "Scratchbox 2.2.4". Scratchbox 2 (sb2). 2012-04-01. Retrieved 2023-01-27.
  2. ^ "Scratchbox 2.3.63". Scratchbox 2 (sb2). 2012-06-05. Retrieved 2023-01-27.