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.
Original author(s) | Lauri Leukkunen, Lauri T. Aarnio, Valtteri Rahkonen, Riku Voipio |
---|---|
Final release | 2.3.42
/ 07/03/2012 |
Operating system | Linux |
Platform | Cross-platform |
Type | Build automation |
License | LGPL 2.1 |
Website | www.freedesktop.org/wiki/Software/sbox2 https://maemo.gitorious.org/scratchbox2 |
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
- Tizen
- Maemo
- MeeGo / Mer
- WIDK webOS Internals Development Kit
- Raspberry Pi (Used to build binaries for the Raspberry Pi alphaboard)
- Sailfish OS