summaryrefslogtreecommitdiff
path: root/build-essential.morph
diff options
context:
space:
mode:
authorJonathan Maw <jonathan.maw@codethink.co.uk>2013-09-30 15:56:41 +0000
committerJonathan Maw <jonathan.maw@codethink.co.uk>2013-09-30 16:08:08 +0000
commit90b1bdee61c6d06ebb14a47102c000ffbbbcd2dc (patch)
tree2f138678093bb8c3468941159ea2215c9ce185e8 /build-essential.morph
parent5640acb7ec437f0b584dbb1ff044e1495c87448a (diff)
downloaddefinitions-90b1bdee61c6d06ebb14a47102c000ffbbbcd2dc.tar.gz
Delete genivi-staging and reorder morph contents
Diffstat (limited to 'build-essential.morph')
-rw-r--r--build-essential.morph602
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