summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authornavabi@google.com <navabi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 02:22:18 +0000
committernavabi@google.com <navabi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 02:22:18 +0000
commitc4fabbc3ef6602974c2b5922ef7548c6038db07d (patch)
tree8e9888c049c974ffa4366092fb590b3872571c7c /build
parent19d163529c071754dd7bd31cc0d62f32e66632de (diff)
downloadchromium_src-c4fabbc3ef6602974c2b5922ef7548c6038db07d.zip
chromium_src-c4fabbc3ef6602974c2b5922ef7548c6038db07d.tar.gz
chromium_src-c4fabbc3ef6602974c2b5922ef7548c6038db07d.tar.bz2
Add install script for ant/java for Android and rename sdk install script.
As we upstream Java source code, the upstream bots and developers need to hava java and ant. Ant is used to build the java source code. Installing ant/java requires sudo privileges which installation of sdk/ndk does not require. The patch moves the install script for sdk/ndk to install-build-deps-android-sdk.sh. The new install script for ant/java is called install-ubild-deps-android.sh and will prompt the user for sudo password. BUG=http://code.google.com/p/chromium/issues/detail?id=117023 TEST= Review URL: http://codereview.chromium.org/9605020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125297 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rwxr-xr-xbuild/android/buildbot_functions.sh4
-rwxr-xr-xbuild/android/envsetup.sh4
-rwxr-xr-xbuild/install-build-deps-android-sdk.sh161
-rwxr-xr-xbuild/install-build-deps-android.sh168
4 files changed, 206 insertions, 131 deletions
diff --git a/build/android/buildbot_functions.sh b/build/android/buildbot_functions.sh
index 9ad5d49..bb7f6f4 100755
--- a/build/android/buildbot_functions.sh
+++ b/build/android/buildbot_functions.sh
@@ -22,11 +22,11 @@ function bb_setup_environment {
}
# Install the build deps by running
-# build/install-build-deps-android.sh. This may update local tools.
+# build/install-build-deps-android-sdk.sh. This may update local tools.
# $1: source root.
function bb_install_build_deps {
echo "@@@BUILD_STEP install build deps android@@@"
- local script="$1/build/install-build-deps-android.sh"
+ local script="$1/build/install-build-deps-android-sdk.sh"
if [[ -f "$script" ]]; then
"$script"
else
diff --git a/build/android/envsetup.sh b/build/android/envsetup.sh
index 49990fb..3f4df52 100755
--- a/build/android/envsetup.sh
+++ b/build/android/envsetup.sh
@@ -19,7 +19,7 @@ if [ ! -d "${ANDROID_NDK_ROOT}" ]; then
echo "ANDROID_NDK_ROOT must be set to the path of Android NDK, Revision 6b." \
>& 2
echo "which could be installed by" >& 2
- echo "<chromium_tree>/src/build/install-build-deps-android.sh" >& 2
+ echo "<chromium_tree>/src/build/install-build-deps-android-sdk.sh" >& 2
return 1
fi
@@ -27,7 +27,7 @@ if [ ! -d "${ANDROID_SDK_ROOT}" ]; then
echo "ANDROID_SDK_ROOT must be set to the path of Android SDK, Android 3.2." \
>& 2
echo "which could be installed by" >& 2
- echo "<chromium_tree>/src/build/install-build-deps-android.sh" >& 2
+ echo "<chromium_tree>/src/build/install-build-deps-android-sdk.sh" >& 2
return 1
fi
diff --git a/build/install-build-deps-android-sdk.sh b/build/install-build-deps-android-sdk.sh
new file mode 100755
index 0000000..1709845
--- /dev/null
+++ b/build/install-build-deps-android-sdk.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+set -e
+
+# The script is to install Android SDK, NDK for build chromium on Android, and
+# doesn't need to run as root.
+
+# Using Android 4.0, API Level: 14 (ice cream sandwich). The SDK package is
+# about 25M.
+SDK_FILE_NAME="android-sdk_r16-linux.tgz"
+SDK_DOWNLOAD_URL="http://dl.google.com/android/${SDK_FILE_NAME}"
+SDK_MD5SUM="3ba457f731d51da3741c29c8830a4583"
+
+# Using "ANDROID_SDK_ROOT/tools/android list targets" to get the matching target
+# id which will be loaded in simulator for testing.
+# For example: the output of the listed the target could be below, and the
+# 'android-13' is the SDK_TARGET_ID in this case.
+# id: 9 or "android-13"
+# Name: Android 3.2
+# Type: Platform
+# API level: 13
+# Revision: 1
+# Skins: WXGA (default)
+SDK_TARGET_ID=android-14
+
+# Using NDK r7; The package is about 64M.
+# *** DO NOT UPDATE THE NDK without updating the 64-bit linker changes ***
+# *** at the end of this file ***
+NDK_FILE_NAME="android-ndk-r7-linux-x86.tar.bz2"
+NDK_DOWNLOAD_URL="http://dl.google.com/android/ndk/${NDK_FILE_NAME}"
+NDK_MD5SUM="bf15e6b47bf50824c4b96849bf003ca3"
+
+# The temporary directory used to store the downloaded file.
+TEMPDIR=$(mktemp -d)
+cleanup() {
+ local status=${?}
+ trap - EXIT
+ rm -rf "${TEMPDIR}"
+ exit ${status}
+}
+trap cleanup EXIT
+
+##########################################################
+# Download and install a tgz package by wget and tar -xvf.
+# The current directory is changed in this function.
+# Arguments:
+# local_file_name, the name of downloaded file.
+# download_url, the url to download the package.
+# md5, the package's md5 which could be found in download page.
+# install_path, where the package should be installed.
+# Returns:
+# None
+##########################################################
+install_dev_kit() {
+ local local_file_name="${1}"
+ local download_url="${2}"
+ local md5="${3}"
+ local install_path="${4}"
+
+ cd "${TEMPDIR}"
+ wget "${download_url}"
+
+ local computed_md5=$(md5sum "${local_file_name}" | cut -d' ' -f1)
+ if [[ "${computed_md5}" != "${md5}" ]]; then
+ echo "Downloaded ${local_file_name} has bad md5sum, which is expected" >& 2
+ echo "to be ${md5} but was ${computed_md5}" >& 2
+ exit 1
+ fi
+
+ echo "Install ${local_file_name}"
+ mv "${local_file_name}" "${install_path}"
+ cd "${install_path}"
+ tar -xvf "${local_file_name}"
+}
+
+if [[ -z "${ANDROID_SDK_ROOT}" ]]; then
+ echo "Please set ANDROID_SDK_ROOT to where they should installed to." >& 2
+ echo "For example: /usr/local/android-sdk-linux_x86" >& 2
+ exit 1
+fi
+
+if [[ -z "${ANDROID_NDK_ROOT}" ]]; then
+ echo "Please set ANDROID_NDK_ROOT to where they should installed to." >& 2
+ echo "For example: /usr/local/android-ndk-r6b" >& 2
+ exit 1
+fi
+
+# Install Android SDK if it doesn't exist.
+if [[ ! -d "${ANDROID_SDK_ROOT}" ]]; then
+ echo 'Install ANDROID SDK ...'
+ (install_dev_kit "${SDK_FILE_NAME}" "${SDK_DOWNLOAD_URL}" "${SDK_MD5SUM}" \
+ $(dirname "${ANDROID_SDK_ROOT}"))
+fi
+
+# Install the target if it doesn't exist. The package installed above contains
+# no platform, platform-tool or tool, all those should be installed by
+# ${ANDROID_SDK_ROOT}/tools/android.
+found=$("${ANDROID_SDK_ROOT}/tools/android" list targets \
+ | grep "${SDK_TARGET_ID}" | wc -l)
+if [[ "$found" = "0" ]]; then
+ # Updates the SDK by installing the necessary components.
+ # From current configuration, all android platforms will be installed.
+ # This will take a little bit long time.
+ echo "Install platform, platform-tool and tool ..."
+
+ "${ANDROID_SDK_ROOT}"/tools/android update sdk -o --no-ui \
+ --filter platform,platform-tool,tool,system-image
+fi
+
+# Create a Android Virtual Device named 'buildbot' with default hardware
+# configuration and override the existing one, since there is no easy way to
+# check whether current AVD has correct configuration and it takes almost no
+# time to create a new one.
+"${ANDROID_SDK_ROOT}/tools/android" --silent create avd --name buildbot \
+ --target ${SDK_TARGET_ID} --force <<< "no"
+
+# Install Android NDK if it doesn't exist.
+if [[ ! -d "${ANDROID_NDK_ROOT}" ]]; then
+ echo 'Install ANDROID NDK ...'
+ (install_dev_kit "${NDK_FILE_NAME}" "${NDK_DOWNLOAD_URL}" "${NDK_MD5SUM}" \
+ $(dirname "${ANDROID_NDK_ROOT}"))
+fi
+
+# Install the 64-bit linker if needed.
+ROOT=$(cd "$(dirname $0)/.."; pwd)
+LINKER_DIR_PREFIX="$ANDROID_NDK_ROOT/toolchains/\
+arm-linux-androideabi-4.4.3/prebuilt/linux-x86"
+LINKER_DIRNAME_1="$LINKER_DIR_PREFIX/bin"
+LINKER_BASENAME_1=arm-linux-androideabi-ld
+LINKER_DIRNAME_2="$LINKER_DIR_PREFIX/arm-linux-androideabi/bin"
+LINKER_BASENAME_2=ld
+NEW_LINKER=arm-linux-androideabi-ld.e4df3e0a5bb640ccfa2f30ee67fe9b3146b152d6
+
+# $1: destination directory
+# $2: destination binary
+function replace_linker {
+ local linker_dirname=$1
+ local linker_basename=$2
+ if [[ -f "$ROOT/third_party/aosp/$NEW_LINKER" ]]; then
+ if [[ -d "$linker_dirname" ]]; then
+ if [[ ! -f "$linker_dirname/$NEW_LINKER" ]]; then
+ echo "Installing linker in $linker_dirname"
+ cp $ROOT/third_party/aosp/$NEW_LINKER "$linker_dirname/$NEW_LINKER"
+ mv "$linker_dirname/$linker_basename" \
+ "$linker_dirname/$linker_basename.orig"
+ ( cd "$linker_dirname" ; ln -s "$NEW_LINKER" "$linker_basename" )
+ fi
+ if [[ ! -f "$linker_dirname/$NEW_LINKER" ]]; then
+ echo "Could not copy linker"
+ exit 1
+ fi
+ fi
+ fi
+}
+
+replace_linker $LINKER_DIRNAME_1 $LINKER_BASENAME_1
+replace_linker $LINKER_DIRNAME_2 $LINKER_BASENAME_2
diff --git a/build/install-build-deps-android.sh b/build/install-build-deps-android.sh
index 1709845..8077e8ea 100755
--- a/build/install-build-deps-android.sh
+++ b/build/install-build-deps-android.sh
@@ -1,38 +1,31 @@
-#!/bin/bash
+#!/bin/bash -e
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-set -e
-
-# The script is to install Android SDK, NDK for build chromium on Android, and
-# doesn't need to run as root.
-
-# Using Android 4.0, API Level: 14 (ice cream sandwich). The SDK package is
-# about 25M.
-SDK_FILE_NAME="android-sdk_r16-linux.tgz"
-SDK_DOWNLOAD_URL="http://dl.google.com/android/${SDK_FILE_NAME}"
-SDK_MD5SUM="3ba457f731d51da3741c29c8830a4583"
-
-# Using "ANDROID_SDK_ROOT/tools/android list targets" to get the matching target
-# id which will be loaded in simulator for testing.
-# For example: the output of the listed the target could be below, and the
-# 'android-13' is the SDK_TARGET_ID in this case.
-# id: 9 or "android-13"
-# Name: Android 3.2
-# Type: Platform
-# API level: 13
-# Revision: 1
-# Skins: WXGA (default)
-SDK_TARGET_ID=android-14
-
-# Using NDK r7; The package is about 64M.
-# *** DO NOT UPDATE THE NDK without updating the 64-bit linker changes ***
-# *** at the end of this file ***
-NDK_FILE_NAME="android-ndk-r7-linux-x86.tar.bz2"
-NDK_DOWNLOAD_URL="http://dl.google.com/android/ndk/${NDK_FILE_NAME}"
-NDK_MD5SUM="bf15e6b47bf50824c4b96849bf003ca3"
+# Script to install everything needed to build chromium on android that
+# requires sudo privileges.
+# See http://code.google.com/p/chromium/wiki/AndroidBuildInstructions
+
+DOWNLOAD_URL="http://ftp.us.debian.org/debian/pool/non-free/s/sun-java6"
+
+BIN_FILE_NAME="sun-java6-bin_6.26-0squeeze1_amd64.deb"
+JRE_FILE_NAME="sun-java6-jre_6.26-0squeeze1_all.deb"
+JDK_FILE_NAME="sun-java6-jdk_6.26-0squeeze1_amd64.deb"
+
+if ! uname -m | egrep -q "i686|x86_64"; then
+ echo "Only x86 architectures are currently supported" >&2
+ exit
+fi
+
+if [ "x$(id -u)" != x0 ]; then
+ echo "Running as non-root user."
+ echo "You might have to enter your password one or more times for 'sudo'."
+ echo
+fi
+
+sudo apt-get update
# The temporary directory used to store the downloaded file.
TEMPDIR=$(mktemp -d)
@@ -45,117 +38,38 @@ cleanup() {
trap cleanup EXIT
##########################################################
-# Download and install a tgz package by wget and tar -xvf.
+# Download (i.e. wget) and install debian package.
# The current directory is changed in this function.
# Arguments:
-# local_file_name, the name of downloaded file.
-# download_url, the url to download the package.
-# md5, the package's md5 which could be found in download page.
-# install_path, where the package should be installed.
+# file_name
# Returns:
# None
##########################################################
-install_dev_kit() {
- local local_file_name="${1}"
- local download_url="${2}"
- local md5="${3}"
- local install_path="${4}"
+install_deb_pkg() {
+ local file_name="${1}"
+ local download_url="${DOWNLOAD_URL}/${file_name}"
cd "${TEMPDIR}"
wget "${download_url}"
- local computed_md5=$(md5sum "${local_file_name}" | cut -d' ' -f1)
- if [[ "${computed_md5}" != "${md5}" ]]; then
- echo "Downloaded ${local_file_name} has bad md5sum, which is expected" >& 2
- echo "to be ${md5} but was ${computed_md5}" >& 2
- exit 1
- fi
-
- echo "Install ${local_file_name}"
- mv "${local_file_name}" "${install_path}"
- cd "${install_path}"
- tar -xvf "${local_file_name}"
+ echo "Install ${file_name}"
+ sudo dpkg -i "${file_name}"
}
-if [[ -z "${ANDROID_SDK_ROOT}" ]]; then
- echo "Please set ANDROID_SDK_ROOT to where they should installed to." >& 2
- echo "For example: /usr/local/android-sdk-linux_x86" >& 2
- exit 1
-fi
-if [[ -z "${ANDROID_NDK_ROOT}" ]]; then
- echo "Please set ANDROID_NDK_ROOT to where they should installed to." >& 2
- echo "For example: /usr/local/android-ndk-r6b" >& 2
- exit 1
-fi
+# Install ant
+sudo apt-get install python-pexpect ant
-# Install Android SDK if it doesn't exist.
-if [[ ! -d "${ANDROID_SDK_ROOT}" ]]; then
- echo 'Install ANDROID SDK ...'
- (install_dev_kit "${SDK_FILE_NAME}" "${SDK_DOWNLOAD_URL}" "${SDK_MD5SUM}" \
- $(dirname "${ANDROID_SDK_ROOT}"))
-fi
+# Install sun-java6-bin
+install_deb_pkg "${BIN_FILE_NAME}"
-# Install the target if it doesn't exist. The package installed above contains
-# no platform, platform-tool or tool, all those should be installed by
-# ${ANDROID_SDK_ROOT}/tools/android.
-found=$("${ANDROID_SDK_ROOT}/tools/android" list targets \
- | grep "${SDK_TARGET_ID}" | wc -l)
-if [[ "$found" = "0" ]]; then
- # Updates the SDK by installing the necessary components.
- # From current configuration, all android platforms will be installed.
- # This will take a little bit long time.
- echo "Install platform, platform-tool and tool ..."
-
- "${ANDROID_SDK_ROOT}"/tools/android update sdk -o --no-ui \
- --filter platform,platform-tool,tool,system-image
-fi
+# Install sun-java6-jre
+install_deb_pkg "${JRE_FILE_NAME}"
-# Create a Android Virtual Device named 'buildbot' with default hardware
-# configuration and override the existing one, since there is no easy way to
-# check whether current AVD has correct configuration and it takes almost no
-# time to create a new one.
-"${ANDROID_SDK_ROOT}/tools/android" --silent create avd --name buildbot \
- --target ${SDK_TARGET_ID} --force <<< "no"
-
-# Install Android NDK if it doesn't exist.
-if [[ ! -d "${ANDROID_NDK_ROOT}" ]]; then
- echo 'Install ANDROID NDK ...'
- (install_dev_kit "${NDK_FILE_NAME}" "${NDK_DOWNLOAD_URL}" "${NDK_MD5SUM}" \
- $(dirname "${ANDROID_NDK_ROOT}"))
-fi
+# Install sun-java6-jdk
+install_deb_pkg "${JDK_FILE_NAME}"
-# Install the 64-bit linker if needed.
-ROOT=$(cd "$(dirname $0)/.."; pwd)
-LINKER_DIR_PREFIX="$ANDROID_NDK_ROOT/toolchains/\
-arm-linux-androideabi-4.4.3/prebuilt/linux-x86"
-LINKER_DIRNAME_1="$LINKER_DIR_PREFIX/bin"
-LINKER_BASENAME_1=arm-linux-androideabi-ld
-LINKER_DIRNAME_2="$LINKER_DIR_PREFIX/arm-linux-androideabi/bin"
-LINKER_BASENAME_2=ld
-NEW_LINKER=arm-linux-androideabi-ld.e4df3e0a5bb640ccfa2f30ee67fe9b3146b152d6
-
-# $1: destination directory
-# $2: destination binary
-function replace_linker {
- local linker_dirname=$1
- local linker_basename=$2
- if [[ -f "$ROOT/third_party/aosp/$NEW_LINKER" ]]; then
- if [[ -d "$linker_dirname" ]]; then
- if [[ ! -f "$linker_dirname/$NEW_LINKER" ]]; then
- echo "Installing linker in $linker_dirname"
- cp $ROOT/third_party/aosp/$NEW_LINKER "$linker_dirname/$NEW_LINKER"
- mv "$linker_dirname/$linker_basename" \
- "$linker_dirname/$linker_basename.orig"
- ( cd "$linker_dirname" ; ln -s "$NEW_LINKER" "$linker_basename" )
- fi
- if [[ ! -f "$linker_dirname/$NEW_LINKER" ]]; then
- echo "Could not copy linker"
- exit 1
- fi
- fi
- fi
-}
+# Switch version of Java to java-6-sun
+sudo update-java-alternatives -s java-6-sun
-replace_linker $LINKER_DIRNAME_1 $LINKER_BASENAME_1
-replace_linker $LINKER_DIRNAME_2 $LINKER_BASENAME_2
+echo "install-build-deps-android.sh complete."