blob: f71d093d0330e815f6b067e428a214472e422e6d (plain
An example of creating a cross-compile SDK for an embedded Baserock system.
This cluster demonstrates how you can use the 'sdk' write extension to
produce a cross-compile SDK tarball for an Baserock applicance. In this
example the system is assumed to run on ARMv7, and the SDK is built to
run on any x86_32 GNU/Linux system.
The SDK is a Baserock system itself, containing just 'build-essential' and a
'cross-toolchain' stratum. The SDK system also includes the target
appliance's system, as a 'subsystem', so that the libraries and headers are
available when building.
This cluster deploys the SDK system using the 'sdk' write extension, which
produces a tarball with a small shell header. When the shell header is
executed, and passed a directory name on the commandline, it extracts the SDK
to that path and patches the binaries so that they execute correctly from
Deploying the applicate system artifact to the target device should be
done with a separate cluster morphology, because you will often want to
do this without rebuilding the SDK.
You must build each system with `morph build` before deploying. We recommend
doing this all from your Baserock development machine, using a Baserock
ARM distributed build network to produce the system artifact. Once both
system artifacts are cached locally, the `morph deploy` command will produce
a self-extracting shell script/tarball following the 'location' field.
See the documentation of the sdk.write extension for more information.
- morph: systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph
- morph: systems/devel-system-armv7lhf-highbank.morph