diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2013-02-08 15:29:01 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2013-02-21 17:10:47 +0000 |
commit | addfb51bc4392ce3e7cc33913175b5665ac284f5 (patch) | |
tree | 65b3e139e322f9a443e0d75947a4877f06293a61 /build-essential.morph.yaml | |
parent | c2d155e8cdf27d2901567337345bfde4b29d1de7 (diff) | |
download | definitions-addfb51bc4392ce3e7cc33913175b5665ac284f5.tar.gz |
Add new build-essential morph
In YAML format!
Diffstat (limited to 'build-essential.morph.yaml')
-rw-r--r-- | build-essential.morph.yaml | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/build-essential.morph.yaml b/build-essential.morph.yaml new file mode 100644 index 00000000..469347b8 --- /dev/null +++ b/build-essential.morph.yaml @@ -0,0 +1,223 @@ +name: build-essential +description: Toolchain stratum +kind: stratum + +chunks: + # Stage 1: build a minimal cross compiler with the host's tools. + # Starting with a cross compiler ensures that (a) nothing from the host + # can leak into the build-essential artifacts, and (b) cross-compiling + # build-essential is fully tested and supported, since we always use the + # cross code paths. + + - name: stage1-binutils + repo: upstream:binutils-redhat + ref: baserock/build-essential + build-mode: bootstrap + build-depends: [] + prefix: /toolchain + + - name: stage1-gcc + repo: upstream:gcc-tarball + ref: baserock/build-essential + build-mode: bootstrap + build-depends: [] + prefix: /toolchain + + # Stage 2: build the whole of build-essential, using the host's tools + # but the cross-compiler toolchain. + + - name: stage2-binutils + repo: upstream:binutils-redhat + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-busybox + repo: upstream:busybox + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-eglibc + repo: upstream:eglibc2 + ref: baserock/2.15-build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-fhs-dirs + repo: baserock:baserock/fhs-dirs + ref: master + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-gawk + repo: upstream:gawk + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-gcc + repo: upstream:gcc-tarball + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-linux-api-headers + repo: upstream:linux + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + - name: stage2-make + repo: upstream:make + ref: baserock/build-essential + build-mode: bootstrap + build-depends: + - stage1-binutils + - stage1-gcc + + # Stage 3: build the whole of build-essential again, this time using a + # staging area containing only the output of stage 2. The result of this + # build is fully reproducible. + + - name: binutils + repo: upstream:binutils-redhat + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: busybox + repo: upstream:busybox + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: eglibc + repo: upstream:eglibc2 + ref: baserock/2.15-build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: fhs-dirs + repo: baserock:baserock/fhs-dirs + ref: master + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: gawk + repo: upstream:gawk + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: gcc + repo: upstream:gcc-tarball + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: linux-api-headers + repo: upstream:linux + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + - name: make + repo: upstream:make + ref: baserock/build-essential + build-mode: staging + build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + + # Extras that need to be in build-essential but don't need bootstrapping. + + - name: ccache + repo: upstream:ccache + ref: baserock/build-essential + build-mode: staging + build-depends: + - binutils + - busybox + - eglibc + - fhs-dirs + - gawk + - gcc + - linux-api-headers + - make |