diff options
author | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2013-09-30 15:56:41 +0000 |
---|---|---|
committer | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2013-09-30 16:08:08 +0000 |
commit | 90b1bdee61c6d06ebb14a47102c000ffbbbcd2dc (patch) | |
tree | 2f138678093bb8c3468941159ea2215c9ce185e8 /build-essential.morph | |
parent | 5640acb7ec437f0b584dbb1ff044e1495c87448a (diff) | |
download | definitions-90b1bdee61c6d06ebb14a47102c000ffbbbcd2dc.tar.gz |
Delete genivi-staging and reorder morph contents
Diffstat (limited to 'build-essential.morph')
-rw-r--r-- | build-essential.morph | 602 |
1 files changed, 292 insertions, 310 deletions
diff --git a/build-essential.morph b/build-essential.morph index bba9a0a2..c13572f3 100644 --- a/build-essential.morph +++ b/build-essential.morph @@ -1,319 +1,301 @@ -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 - prefix: /tools - build-depends: [] - - - name: stage1-gcc - repo: upstream:gcc-tarball - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - # Stage 2: cross-build the whole of build-essential, using the host's tools - # but the cross-compiler toolchain. - # - # Stage 2 GCC outputs code for the same 'bootstrap' machine as stage 1 GCC, - # but because stage 2 GCC is also built to *run* on the bootstrap machine - # it can only execute inside the stage 3 chroot (due to being built against - # a libc with a non-standard prefix). - - - name: stage2-linux-api-headers - repo: upstream:linux - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - - name: stage2-eglibc - repo: upstream:eglibc2 - ref: baserock/2.15-build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-linux-api-headers - - - name: stage2-binutils - repo: upstream:binutils-redhat - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc - - - name: stage2-gcc-fixed-headers - repo: upstream:gcc-tarball - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc - - - name: stage2-gcc - repo: upstream:gcc-tarball - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc - - stage2-gcc-fixed-headers - - name: stage2-busybox - repo: upstream:busybox - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc +# 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: stage2-fhs-dirs - repo: baserock:baserock/fhs-dirs - ref: master - build-mode: bootstrap - prefix: /tools - build-depends: [] +- build-depends: [] + build-mode: bootstrap + name: stage1-binutils + prefix: /tools + ref: baserock/build-essential + repo: upstream:binutils-redhat +- build-depends: + - stage1-binutils + build-mode: bootstrap + name: stage1-gcc + prefix: /tools + ref: baserock/build-essential + repo: upstream:gcc-tarball - - name: stage2-gawk - repo: upstream:gawk - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc +# Stage 2: cross-build the whole of build-essential, using the host's tools +# but the cross-compiler toolchain. +# +# Stage 2 GCC outputs code for the same 'bootstrap' machine as stage 1 GCC, +# but because stage 2 GCC is also built to *run* on the bootstrap machine +# it can only execute inside the stage 3 chroot (due to being built against +# a libc with a non-standard prefix). - - name: stage2-make - repo: upstream:make - ref: baserock/build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-eglibc +- build-depends: + - stage1-binutils + - stage1-gcc + build-mode: bootstrap + name: stage2-linux-api-headers + prefix: /tools + ref: baserock/build-essential + repo: upstream:linux +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-linux-api-headers + build-mode: bootstrap + name: stage2-eglibc + prefix: /tools + ref: baserock/2.15-build-essential + repo: upstream:eglibc2 +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + build-mode: bootstrap + name: stage2-binutils + prefix: /tools + ref: baserock/build-essential + repo: upstream:binutils-redhat +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + build-mode: bootstrap + name: stage2-gcc-fixed-headers + prefix: /tools + ref: baserock/build-essential + repo: upstream:gcc-tarball +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + - stage2-gcc-fixed-headers + build-mode: bootstrap + name: stage2-gcc + prefix: /tools + ref: baserock/build-essential + repo: upstream:gcc-tarball +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + build-mode: bootstrap + name: stage2-busybox + prefix: /tools + ref: baserock/build-essential + repo: upstream:busybox +- build-depends: [] + build-mode: bootstrap + name: stage2-fhs-dirs + prefix: /tools + ref: master + repo: baserock:baserock/fhs-dirs +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + build-mode: bootstrap + name: stage2-gawk + prefix: /tools + ref: baserock/build-essential + repo: upstream:gawk +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-eglibc + build-mode: bootstrap + name: stage2-make + prefix: /tools + ref: baserock/build-essential + repo: upstream:make +- build-depends: + - stage1-binutils + - stage1-gcc + - stage2-linux-api-headers + - stage2-eglibc + build-mode: bootstrap + name: stage2-reset-specs + prefix: /tools + ref: baserock/2.15-build-essential + repo: upstream:eglibc2 - - name: stage2-reset-specs - repo: upstream:eglibc2 - ref: baserock/2.15-build-essential - build-mode: bootstrap - prefix: /tools - build-depends: - - stage1-binutils - - stage1-gcc - - stage2-linux-api-headers - - stage2-eglibc +# 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. +# +# We do a switch-a-roo between stage 2 and 3: stages 2 chunks are all built +# to run on a host *-bootstrap-* while stage 3 chunks are native-built for +# a *-baserock-* machine. This works, because the cross build was all for +# show (and cleanliness) and the binaries actually still run on the host. +# +# After build-essential is built we do another trick. See +# stage2-fhs-dirs.morph for details. Basically, /bin is a symlink to +# /tools/bin during stage 2 but in stage 3 it becomes a real directory +# again. - # 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. - # - # We do a switch-a-roo between stage 2 and 3: stages 2 chunks are all built - # to run on a host *-bootstrap-* while stage 3 chunks are native-built for - # a *-baserock-* machine. This works, because the cross build was all for - # show (and cleanliness) and the binaries actually still run on the host. - # - # After build-essential is built we do another trick. See - # stage2-fhs-dirs.morph for details. Basically, /bin is a symlink to - # /tools/bin during stage 2 but in stage 3 it becomes a real directory - # again. +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + build-mode: staging + name: fhs-dirs + prefix: /usr + ref: master + repo: baserock:baserock/fhs-dirs +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + build-mode: staging + name: linux-api-headers + prefix: /usr + ref: baserock/build-essential + repo: upstream:linux +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - linux-api-headers + build-mode: staging + name: eglibc + prefix: /usr + ref: baserock/2.15-build-essential + repo: upstream:eglibc2 +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + build-mode: staging + name: zlib + prefix: /usr + ref: baserock/build-essential + repo: upstream:zlib +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + - zlib + build-mode: staging + name: binutils + prefix: /usr + ref: baserock/build-essential + repo: upstream:binutils-redhat +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + build-mode: staging + name: busybox + prefix: /usr + ref: baserock/build-essential + repo: upstream:busybox +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + build-mode: staging + name: gawk + prefix: /usr + ref: baserock/build-essential + repo: upstream:gawk +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + - zlib + build-mode: staging + name: gcc + prefix: /usr + ref: baserock/build-essential + repo: upstream:gcc-tarball +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + build-mode: staging + name: make + prefix: /usr + ref: baserock/build-essential + repo: upstream:make - - name: fhs-dirs - repo: baserock:baserock/fhs-dirs - ref: master - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs +# Extras that need to be in build-essential but don't need bootstrapping. - - name: linux-api-headers - repo: upstream:linux - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - - name: eglibc - repo: upstream:eglibc2 - ref: baserock/2.15-build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - linux-api-headers - - - name: zlib - repo: upstream:zlib - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - - name: binutils - repo: upstream:binutils-redhat - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - zlib - - - name: busybox - repo: upstream:busybox - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - - name: gawk - repo: upstream:gawk - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - - name: gcc - repo: upstream:gcc-tarball - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - zlib - - - name: make - repo: upstream:make - ref: baserock/build-essential - build-mode: staging - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - # 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 - prefix: /usr - build-depends: - - stage2-binutils - - stage2-busybox - - stage2-eglibc - - stage2-fhs-dirs - - stage2-gawk - - stage2-gcc - - stage2-linux-api-headers - - stage2-make - - stage2-reset-specs - - eglibc - - zlib +- build-depends: + - stage2-binutils + - stage2-busybox + - stage2-eglibc + - stage2-fhs-dirs + - stage2-gawk + - stage2-gcc + - stage2-linux-api-headers + - stage2-make + - stage2-reset-specs + - eglibc + - zlib + build-mode: staging + name: ccache + prefix: /usr + ref: baserock/build-essential + repo: upstream:ccache +description: Toolchain stratum +kind: stratum +name: build-essential |