aboutsummaryrefslogtreecommitdiff
path: root/android-clang-toolchain/builders.sh
blob: b849e71e431aee90647999416d1811dbbd448883 (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
53
54
55
56
57
58
59
60
61
62
#!/bin/bash

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

wget -q \
  http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb \
  http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb \
  http://archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb \
  https://cmake.org/files/v3.5/cmake-3.5.2-Linux-x86_64.sh
sudo dpkg -i --force-all *.deb
rm -f *.deb

yes y | bash cmake-3.5.2-Linux-x86_64.sh
export PATH=${PWD}/cmake-3.5.2-Linux-x86_64/bin/:${PATH}

mkdir -p ${HOME}/srv/aosp/${JOB_NAME}
cd ${HOME}/srv/aosp/${JOB_NAME}

# Toolchain src downloads
if [ -d llvm ]; then
    rm llvm -rf
fi
repo init -u https://android-git.linaro.org/git/platform/manifest.git -b clang-build
repo sync -j16 -c

# For building LLVMgold.so using -DLLVM_BINUTILS_INCDIR flag
if [ ! -d binutils ]; then
    git clone https://android.googlesource.com/toolchain/binutils
else
    cd binutils
    git pull
    cd ..
fi

# Toolchain download
if [ ! -d clang+llvm-5.0.0-linux-x86_64-ubuntu14.04 ]; then
    wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
    tar xvfJ clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
fi

cd llvm
mkdir -p build/clang-master
cd build
cmake -G "Unix Makefiles" ../ \
	 -DCMAKE_BUILD_TYPE=Release \
	 -DPYTHON_EXECUTABLE=/usr/bin/python2 \
	 -DCMAKE_INSTALL_PREFIX=./clang-master \
	 -DLLVM_TARGETS_TO_BUILD="host;ARM;X86;AArch64" \
	 -DLLVM_ENABLE_ASSERTIONS=false \
	 -DCMAKE_C_COMPILER=${HOME}/srv/aosp/${JOB_NAME}/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang \
	 -DCMAKE_CXX_COMPILER=${HOME}/srv/aosp/${JOB_NAME}/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang++ \
	 -DLIBCXXABI_LIBCXX_INCLUDES=${HOME}/srv/aosp/${JOB_NAME}/llvm/projects/libcxx/include \
	 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${HOME}/srv/aosp/${JOB_NAME}/llvm/projects/libcxxabi/include \
	 -DLLVM_BINUTILS_INCDIR=${HOME}/srv/aosp/${JOB_NAME}/binutils/binutils-2.27/include

make install VERBOSE=1 -j"$(nproc)"

rm -f clang-master.tar.xz
tar -I pxz -cf clang-master.tar.xz clang-master

echo "Build finished"