blob: c3c179cc33a228f56193a3f4dd848689967366ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/bin/bash
set -ex
export PATH=$PATH://home/buildslave/bin/
sudo apt-get -q=2 update
sudo apt-get -q=2 install -y libxml2-dev zlib1g-dev libtinfo-dev git-svn gawk libxml2-utils rsync pxz python-requests ninja-build
BASEDIR="${HOME}/srv/aosp/${JOB_NAME}"
rm -rf "${BASEDIR}"
mkdir -p "${BASEDIR}"
cd "${BASEDIR}"
# Download toolchain prebuilt bootstrap tools
repo init -u https://android-git.linaro.org/git/platform/manifest.git -b linaro-upstream-llvm-toolchain
repo sync -j16 -c
# Apply needed patches, if any
for d in toolchain/patches/*; do
[ -d "$d" ] || continue
for i in $d/*.patch; do
[ -e "$i" ] || continue
p="$(realpath $i)"
pushd "toolchain/$(basename $d)"
echo "Applying $(basename $p)"
patch -p1 <"$p"
popd
done
done
# Find the SVN revision the compiler is based on
REVISION=0
for i in clang clang-tools-extra compiler-rt libcxx libcxxabi lld llvm openmp_llvm; do
pushd toolchain/$i
REV=$(git log |grep git-svn-id: |head -n1 |cut -d@ -f2 |cut -d' ' -f1)
[ "$REV" -ge "$REVISION" ] && REVISION="$REV"
popd
done
echo "Building compiler based on clang revision $REVISION"
# And give the build script the correct version information
sed -i -e "s,^svn_revision =.*,svn_revision = 'r${REVISION}'," toolchain/llvm_android/android_version.py
# And build it...
python toolchain/llvm_android/build.py --no-build-windows
# Recompress output to save space
mv out/*.tar.bz2 .
bunzip2 *.tar.bz2
xz -9ef *.tar
echo "Build finished"
|