summaryrefslogtreecommitdiff
path: root/clusters/sdk-example-cluster.morph
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2014-08-18 17:05:22 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2014-08-18 17:05:22 +0000
commit2b10a9677817377618e33d2b07ab7caefe316633 (patch)
tree843ba74b9480f36da273cba79182e3c38b28881b /clusters/sdk-example-cluster.morph
parente424935744d9faf27327ee40987620412c41716f (diff)
downloaddefinitions-2b10a9677817377618e33d2b07ab7caefe316633.tar.gz
Re-organise definitions with scripts/organise-morphologies.pyGENIVI-I0.1baserock/release/GENIVI-I0.1
Diffstat (limited to 'clusters/sdk-example-cluster.morph')
-rw-r--r--clusters/sdk-example-cluster.morph46
1 files changed, 46 insertions, 0 deletions
diff --git a/clusters/sdk-example-cluster.morph b/clusters/sdk-example-cluster.morph
new file mode 100644
index 00000000..f71d093d
--- /dev/null
+++ b/clusters/sdk-example-cluster.morph
@@ -0,0 +1,46 @@
+name: sdk
+kind: cluster
+description: |
+ 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
+ that directory.
+
+ 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.
+systems:
+- morph: systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph
+ deploy:
+ sdk:
+ type: sdk
+ location: armv7lhf-cross-toolchain-system-x86_32-generic.sh
+ PREFIX: /usr
+ TARGET: armv7lhf-baserock-linux-gnueabi
+ subsystems:
+ - morph: systems/devel-system-armv7lhf-highbank.morph
+ deploy:
+ sysroot:
+ type: sysroot
+ location: usr/armv7lhf-baserock-linux-gnueabi/sys-root