2019-06-29 07:35:32 +08:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
set -o xtrace
|
|
|
|
|
|
|
|
############### Install packages for building
|
|
|
|
apt-get -y install ca-certificates
|
2019-10-10 16:56:08 +08:00
|
|
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
2019-10-09 01:46:11 +08:00
|
|
|
dpkg --add-architecture armhf
|
2019-10-10 16:56:08 +08:00
|
|
|
apt-get update
|
|
|
|
apt-get -y install \
|
2019-10-10 00:48:17 +08:00
|
|
|
bc \
|
|
|
|
bison \
|
|
|
|
bzip2 \
|
2019-10-09 01:46:11 +08:00
|
|
|
ccache \
|
2019-10-10 00:48:17 +08:00
|
|
|
cmake \
|
2019-10-09 01:46:11 +08:00
|
|
|
crossbuild-essential-armhf \
|
2019-10-10 00:48:17 +08:00
|
|
|
curl \
|
|
|
|
flex \
|
2019-06-29 07:35:32 +08:00
|
|
|
g++ \
|
2019-10-10 00:48:17 +08:00
|
|
|
gettext \
|
2019-06-29 07:35:32 +08:00
|
|
|
git \
|
2019-10-09 01:46:11 +08:00
|
|
|
libdrm-dev \
|
|
|
|
libdrm-dev:armhf \
|
|
|
|
libelf-dev \
|
|
|
|
libelf-dev:armhf \
|
|
|
|
libexpat1-dev \
|
|
|
|
libexpat1-dev:armhf \
|
2019-10-10 00:48:17 +08:00
|
|
|
libgbm-dev \
|
|
|
|
libgles2-mesa-dev \
|
|
|
|
libpng-dev \
|
|
|
|
libssl-dev \
|
2019-10-09 01:46:11 +08:00
|
|
|
meson \
|
2019-10-10 00:48:17 +08:00
|
|
|
ninja-build \
|
2019-06-29 07:35:32 +08:00
|
|
|
pkg-config \
|
2019-10-10 00:48:17 +08:00
|
|
|
procps \
|
2019-06-29 07:35:32 +08:00
|
|
|
python \
|
2019-10-09 01:46:11 +08:00
|
|
|
python3-mako \
|
2019-06-29 07:35:32 +08:00
|
|
|
wget \
|
2019-10-10 00:48:17 +08:00
|
|
|
zlib1g-dev
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2019-10-09 01:46:11 +08:00
|
|
|
############### Generate cross build file for Meson
|
|
|
|
|
|
|
|
cross_file="/cross_file-armhf.txt"
|
|
|
|
/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
|
|
|
|
# Explicitly set ccache path for cross compilers
|
|
|
|
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
|
|
|
# Don't need wrapper for armhf executables
|
|
|
|
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2019-10-09 01:46:11 +08:00
|
|
|
export LIBDRM_VERSION=libdrm-2.4.99
|
2019-06-29 07:35:32 +08:00
|
|
|
|
|
|
|
############### Build libdrm
|
|
|
|
|
|
|
|
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
|
|
|
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
|
|
|
cd $LIBDRM_VERSION; meson build/ -Detnaviv=true; ninja -C build/ install; cd ..
|
|
|
|
rm -rf $LIBDRM_VERSION
|
|
|
|
|
|
|
|
############### Build dEQP
|
|
|
|
|
|
|
|
git config --global user.email "mesa@example.com"
|
|
|
|
git config --global user.name "Mesa CI"
|
|
|
|
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
|
|
|
git clone \
|
|
|
|
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
|
|
|
-b opengl-es-cts-3.2.5.1 \
|
|
|
|
/VK-GL-CTS
|
|
|
|
cd /VK-GL-CTS
|
|
|
|
# Fix surfaceless build
|
|
|
|
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
|
|
|
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
|
|
|
|
|
|
|
# surfaceless links against libkms and such despite not using it.
|
|
|
|
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
|
|
|
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
|
|
|
|
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
|
|
|
|
|
|
|
|
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
|
|
|
# libpng (sigh). The archives get their checksums checked anyway, and git
|
|
|
|
# always goes through ssh or https.
|
|
|
|
python3 external/fetch_sources.py --insecure
|
|
|
|
|
|
|
|
mkdir -p /deqp
|
|
|
|
cd /deqp
|
|
|
|
cmake -G Ninja \
|
|
|
|
-DDEQP_TARGET=surfaceless \
|
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
/VK-GL-CTS
|
|
|
|
ninja
|
|
|
|
|
|
|
|
# Copy out the mustpass lists we want from a bunch of other junk.
|
|
|
|
mkdir /deqp/mustpass
|
|
|
|
for gles in gles2 gles3 gles31; do
|
|
|
|
cp \
|
|
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
|
|
|
/deqp/mustpass/$gles-master.txt
|
|
|
|
done
|
|
|
|
|
|
|
|
rm -rf /deqp/external
|
|
|
|
rm -rf /deqp/modules/internal
|
|
|
|
rm -rf /deqp/executor
|
|
|
|
rm -rf /deqp/execserver
|
|
|
|
rm -rf /deqp/modules/egl
|
|
|
|
rm -rf /deqp/framework
|
|
|
|
du -sh *
|
|
|
|
rm -rf /VK-GL-CTS
|
|
|
|
|
|
|
|
############### Uninstall the build software
|
|
|
|
|
|
|
|
apt-get purge -y \
|
2019-10-10 00:48:17 +08:00
|
|
|
cmake \
|
|
|
|
git \
|
2019-10-09 01:46:11 +08:00
|
|
|
libgbm-dev \
|
|
|
|
libgles2-mesa-dev \
|
|
|
|
wget
|
2019-10-10 16:56:08 +08:00
|
|
|
|
|
|
|
apt-get autoremove -y --purge
|