Why to cross-compile everything from scratch instead of using natively compiled binaries like everybody else does?
Speed, control and quality. You get much faster turnaround and better integration with continuous building / regression testing. This enables much more distributed development.
Note that commercial embedded distributions allow you to cross-compile only software they are providing, with their systems you can't just get some Open Source software from the internet and expect to be able to cross-compile it.
How can I use the same CPU transparency device for different users using different versions of the Scratchbox?
You can specify in which port the Sbrshd daemon listens to connections. When you upgrade to newer Scratchbox with newer Sbrshd daemon, just run the daemon at different port on the CPU transparency device. When users upgrade to that Scratchbox version, they just need to change the .sbrsh files in their Sbox home directory to contain the correct target port number (add ':' after the target IP address, example <ip>:<port>, 192.168.0.100:1202).
What EnvironmentVariables are used to control scratchbox?
If you have installed scratchbox from tar.gz files a list of all environment variables used by scratchbox are described in /scratchbox/doc/variables.txt. Debian packages install the documentation to /usr/share/doc/scratchbox-core. See also the EnvironmentVariables wiki page.
How do I test in my [script|Makefile] whether I'm running inside Scratchbox?
In shell scripts:
if [ -f /targets/links/scratchbox.config ] then echo yes fiIn Makefiles:
SBOX = $(shell if [ -f /targets/links/scratchbox.config ]; then echo yes; fi) ifeq ($(SBOX),yes) # do sbox specific stuff endifHow my [script|Makefile] can know which target [target|CPU|C-library] is currently effective inside Scratchbox?
This information is in 'scratchbox.config' file in a format which can be used both:
In shell scripts:
source /targets/links/scratchbox.config echo $SBOX_CPUIn Makefiles:
include /targets/links/scratchbox.config all: $(SBOX_CPU)-programNote that 'configure' scripts have a generic way of handling this, above is intended for things that are Scratchbox specific.
How I can see the size of (cross-)compilation object cache, number of cache hits/misses and how I empty the cache?
[sbox-HOST: ~] > ccache -h
More FAQs and known issues:
http://scratchbox.org/faq/.
These pages might also be helpful: