17ec681f3Smrg#!/bin/bash
27ec681f3Smrg
37ec681f3Smrgset -e
47ec681f3Smrgset -o xtrace
57ec681f3Smrg
67ec681f3Smrgexport DEBIAN_FRONTEND=noninteractive
77ec681f3Smrg
87ec681f3Smrg# Ephemeral packages (installed for this script and removed again at the end)
97ec681f3SmrgSTABLE_EPHEMERAL=" \
107ec681f3Smrg        "
117ec681f3Smrg
127ec681f3Smrgdpkg --add-architecture $arch
137ec681f3Smrgapt-get update
147ec681f3Smrg
157ec681f3Smrgapt-get install -y --no-remove \
167ec681f3Smrg        $STABLE_EPHEMERAL \
177ec681f3Smrg        crossbuild-essential-$arch \
187ec681f3Smrg        libelf-dev:$arch \
197ec681f3Smrg        libexpat1-dev:$arch \
207ec681f3Smrg        libpciaccess-dev:$arch \
217ec681f3Smrg        libstdc++6:$arch \
227ec681f3Smrg        libvulkan-dev:$arch \
237ec681f3Smrg        libx11-dev:$arch \
247ec681f3Smrg        libx11-xcb-dev:$arch \
257ec681f3Smrg        libxcb-dri2-0-dev:$arch \
267ec681f3Smrg        libxcb-dri3-dev:$arch \
277ec681f3Smrg        libxcb-glx0-dev:$arch \
287ec681f3Smrg        libxcb-present-dev:$arch \
297ec681f3Smrg        libxcb-randr0-dev:$arch \
307ec681f3Smrg        libxcb-shm0-dev:$arch \
317ec681f3Smrg        libxcb-xfixes0-dev:$arch \
327ec681f3Smrg        libxdamage-dev:$arch \
337ec681f3Smrg        libxext-dev:$arch \
347ec681f3Smrg        libxrandr-dev:$arch \
357ec681f3Smrg        libxshmfence-dev:$arch \
367ec681f3Smrg        libxxf86vm-dev:$arch \
377ec681f3Smrg        wget
387ec681f3Smrg
397ec681f3Smrgif [[ $arch != "armhf" ]]; then
407ec681f3Smrg    if [[ $arch == "s390x" ]]; then
417ec681f3Smrg        LLVM=9
427ec681f3Smrg    else
437ec681f3Smrg        LLVM=11
447ec681f3Smrg    fi
457ec681f3Smrg
467ec681f3Smrg    # llvm-*-tools:$arch conflicts with python3:amd64. Install dependencies only
477ec681f3Smrg    # with apt-get, then force-install llvm-*-{dev,tools}:$arch with dpkg to get
487ec681f3Smrg    # around this.
497ec681f3Smrg    apt-get install -y --no-remove \
507ec681f3Smrg            libclang-cpp${LLVM}:$arch \
517ec681f3Smrg            libffi-dev:$arch \
527ec681f3Smrg            libgcc-s1:$arch \
537ec681f3Smrg            libtinfo-dev:$arch \
547ec681f3Smrg            libz3-dev:$arch \
557ec681f3Smrg            llvm-${LLVM}:$arch \
567ec681f3Smrg            zlib1g
577ec681f3Smrgfi
587ec681f3Smrg
597ec681f3Smrg. .gitlab-ci/container/create-cross-file.sh $arch
607ec681f3Smrg
617ec681f3Smrg
627ec681f3Smrg. .gitlab-ci/container/container_pre_build.sh
637ec681f3Smrg
647ec681f3Smrg
657ec681f3Smrg# dependencies where we want a specific version
667ec681f3SmrgEXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH)"
677ec681f3Smrg. .gitlab-ci/container/build-libdrm.sh
687ec681f3Smrg
697ec681f3Smrgapt-get purge -y \
707ec681f3Smrg        $STABLE_EPHEMERAL
717ec681f3Smrg
727ec681f3Smrg. .gitlab-ci/container/container_post_build.sh
737ec681f3Smrg
747ec681f3Smrg# This needs to be done after container_post_build.sh, or apt-get breaks in there
757ec681f3Smrgif [[ $arch != "armhf" ]]; then
767ec681f3Smrg    apt-get download llvm-${LLVM}-{dev,tools}:$arch
777ec681f3Smrg    dpkg -i --force-depends llvm-${LLVM}-*_${arch}.deb
787ec681f3Smrg    rm llvm-${LLVM}-*_${arch}.deb
797ec681f3Smrgfi
80