![]() | This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Original author(s) | Nokia |
---|---|
Developer(s) | Jolla |
Initial release | 2009-04-01 |
Stable release(s) | |
2.2.4[1] / 2012-04-01 | |
Preview release(s) | |
2.3.90[2] / 2012-09-05 | |
Written in | C |
Operating system | Linux |
Platform | Cross-platform |
Type | Build automation |
License | LGPL 2.1[3] |
Website | github |
Scratchbox 2 (often abbreviated to "sb2" or "sbox2") is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate andcross-compile an entireLinux distribution.
Scratchbox was aLinux embedded application development toolkit which also providedcross compilation support forLinux distributions.
The project was initially developed byMovial and was sponsored byNokia. It was licensed under the GNU General Public License (GPL).
Scratchbox was designed for theMaemo development platform (Nokia770,N800,N810 Internet Tablets and NokiaN900 andN9 phones) and supportedARM architecture andx86. Targets likePowerPC andMIPS architecture worked at experimental level.
In the Linux world, whenbuilding software, many parameters are auto-detected on the host system (like installed libraries and system configuration), for example throughAutotools'./configure
scripts. When one wants to build software for an embedded target by cross-compilation, most auto-detected parameters are incorrect: I.e. host configuration is not the same as theembedded target's configuration, hence the name cross-compilation.
Without Scratchbox 2, one has to manually set many parameters and"hack" the "configure process" to generate working executable code for the embedded target.
Scratchbox 2 allows one to set up a"virtual" environment that will trick Autotools and other executables into thinking that they are directly running on the embedded target with its configuration.
Moreover, Scratchbox 2 provides a technique called "CPU-transparency" that goes further: With "CPU-transparency", executables built for the host CPU or for the target CPU could be executed directly on the host with sb2 handling the task to emulate a differentCPU-architecture if necessary to run software components compiled for the target CPU. Hence abuild process can mix using programs built for different CPU-architectures. That is especially useful when a build process requires to build a software component first as abuild dependency for building another software component: For example, a"Lexer" must be built first in order to generate code for / of another software component with it.
BinChengfei/scratchbox2
atGitHub provides an unaltered mirror of the former Scratchbox 2Git repository atGitorious with its latest Git tag being2.3.90
on 2012-09-05.lbt/scratchbox2
(up to tagpkg-mer-2.3.90-4
on 2013-04-25) andmer-packages/scratchbox2
(up to tag2.3.90-git2
on 2014-03-05), both at GitHub, show intermediate states before theNemo / Mer merger, when Scratchbox 2's active source tree was moved to the now dissolvedgit.merproject.org
.git.merproject.org/mer-core/scratchbox2
issailfishos/scratchbox2
at GitHub, which contains all commit history and Git tags of all aforementioned Git repositories.