aboutsummaryrefslogtreecommitdiff
path: root/build-scripts/build-android-toolchain
diff options
context:
space:
mode:
authorMichael Hudson <michael.hudson@linaro.org>2011-03-23 10:51:49 +1300
committerMichael Hudson <michael.hudson@linaro.org>2011-03-23 10:51:49 +1300
commit78aa2901eda75e5ae97fe5a062a09b00fd825a04 (patch)
tree38325a46f6001433456d24960d4b54d32000db65 /build-scripts/build-android-toolchain
parent72fa907f34cb8338732c3b926d7a820431dd57e7 (diff)
move build scripts into own dir, extract config processing into driver script
Diffstat (limited to 'build-scripts/build-android-toolchain')
-rwxr-xr-xbuild-scripts/build-android-toolchain69
1 files changed, 69 insertions, 0 deletions
diff --git a/build-scripts/build-android-toolchain b/build-scripts/build-android-toolchain
new file mode 100755
index 0000000..418be19
--- /dev/null
+++ b/build-scripts/build-android-toolchain
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+###############################################################################
+# Copyright (c) 2011 Linaro
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+###############################################################################
+
+# BINUTILS_URL - set this in env to override default binutils version shipped by a version downloaded from ftp
+BINUTILS_VERSION=2.21
+# GCC_URL - set this in env to override default gcc version shipped by a version downloaded from ftp
+GCC_VERSION=4.6+linaro
+
+EABI="${EABI-arm-eabi}"
+MANIFEST_REPO="${MANIFEST_REPO-git://http://android.git.kernel.org/platform/manifest.git}"
+MANIFEST_BRANCH="${MANIFEST_BRANCH-master}"
+MANIFEST_FILENAME="${MANIFEST_FILENAME-default.xml}"
+
+repo init -u "${MANIFEST_REPO}" -b "${MANIFEST_BRANCH}" -m "${MANIFEST_FILENAME}"
+
+time python -c 'import xmlrpclib, sys; print xmlrpclib.ServerProxy(sys.argv[1]).mirror(open(".repo/manifest.xml").read())' "http://${1}:8080" > temp-manifest.xml
+echo "Received modified manifest"
+cat temp-manifest.xml
+echo ----------------------------
+mv temp-manifest.xml .repo/manifest.xml
+repo sync -j8
+
+wget http://dl.google.com/android/ndk/android-ndk-r5-linux-x86.tar.bz2
+
+tar xvjf android-ndk-r5-linux-x86.tar.bz2
+rm -f android-ndk-r5-linux-x86.tar.bz2
+
+cpuc=`cat /proc/cpuinfo | grep processor | wc -l`
+threads=$(($cpuc * 4))
+
+if ! test -d objdir; then
+ mkdir objdir
+fi
+
+if test -n "$BINUTILS_URL"; then
+ BINUTILS_FILE=`echo "$BINUTILS_URL" | sed -e 's/^.*\/\([^/]*\)$/\1/'`
+ BINUTILS_VERSION=`echo "$BINUTILS_FILE" | sed -e 's/^.*-//' -e 's/\.tar.*$//'`
+ wget $BINUTILS_URL
+ sh -c "cd binutils/; tar xf ../$BINUTILS_FILE"
+fi
+
+if test -n "$GCC_URL"; then
+ GCC_FILE=`echo "$GCC_URL" | sed -e 's/^.*\/\([^/]*\)$/\1/'`
+ GCC_VERSION=`echo "$GCC_FILE" | sed -e 's/^.*-//' -e 's/\.tar.*$//'`
+ wget $GCC_URL
+ sh -c "cd gcc/; tar xf ../$GCC_FILE"
+fi
+
+cd objdir/
+
+../build/configure --target=$EABI --prefix=/opt/linaro-toolchain-11.05/ \
+ --with-gcc-version=$GCC_VERSION --with-binutils-version=$BINUTILS_VERSION \
+ --with-mpfr-version=2.4.1 --disable-libquadmath \
+ --with-ppl=no \
+ --with-sysroot=`pwd`/../android-ndk-r5/platforms/android-9/arch-arm/
+
+time -p make -j${threads}
+
+# here submit stuff back:
+# + logs
+# + build results
+