Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/bin/bash -e | |
|
Mark Mentovai
2011/10/05 18:16:05
I don’t think this is as portable as making “set -
michaelbai
2011/10/05 20:55:18
Done.
| |
| 2 | |
| 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 4 # Use of this source code is governed by a BSD-style license that can be | |
| 5 # found in the LICENSE file. | |
| 6 | |
| 7 # The script is to install Android SDK, NDK for build chromium on Android, and | |
| 8 # doesn't need to run as root. | |
| 9 | |
| 10 # Using Android 3.2, API Level: 13 (Honeycomb). The SDK package is about 30M. | |
| 11 SDK_FILE_NAME="android-sdk_r13-linux_x86.tgz" | |
| 12 SDK_DOWNLOAD_URL="http://dl.google.com/android/android-sdk_r13-linux_x86.tgz" | |
| 13 SDK_MD5SUM="d80d7530a46c665644ae76084a9a0dc4" | |
| 14 # Using "ADROID_SDK_ROOT/tools/android list targets" to get the matching target | |
|
Mark Mentovai
2011/10/05 18:16:05
Blank line before.
Also, you misspelled ANDROID_S
michaelbai
2011/10/05 20:55:18
Done.
| |
| 15 # id which will be loaded in simulator for testing. | |
| 16 # For example: the output of the listed the target could be below, and the | |
| 17 # 'android-13' is the SDK_TARGET_ID in this case. | |
| 18 # id: 9 or "android-13" | |
| 19 # Name: Android 3.2 | |
| 20 # Type: Platform | |
| 21 # API level: 13 | |
| 22 # Revision: 1 | |
| 23 # Skins: WXGA (default) | |
| 24 SDK_TARGET_ID=android-13 | |
| 25 | |
| 26 # Using NDK r6b; The package is about 44M. | |
| 27 NDK_FILE_NAME="android-ndk-r6b-linux-x86.tar.bz2" | |
| 28 NDK_DOWNLOAD_URL="http://dl.google.com/android/ndk/android-ndk-r6b-linux-x86.tar .bz2" | |
| 29 NDK_MD5SUM="309f35e49b64313cfb20ac428df4cec2" | |
| 30 | |
| 31 # Download and install a tgz package by wget and tar -xvf. | |
| 32 # This should be called as: | |
| 33 # install local_file_name download_url md5 install_path | |
| 34 install_dev_kit() { | |
| 35 test -f $1 || wget $2 | |
|
Mark Mentovai
2011/10/05 18:16:05
Always use {braces} like ${1} and ${2}. Also, alwa
michaelbai
2011/10/05 20:55:18
Done.
| |
| 36 if test "`md5sum $1 |cut -d' ' -f1`" != $3; then | |
|
Mark Mentovai
2011/10/05 18:16:05
Don’t write “if test”, use “if [[”.
Don’t use `ba
michaelbai
2011/10/05 20:55:18
Done.
| |
| 37 echo "Bad md5sum of $2" >& 2 | |
| 38 rm $1 | |
| 39 exit 1 | |
| 40 fi | |
| 41 | |
| 42 echo "Install $1" | |
| 43 mv $1 $4 | |
| 44 pushd . | |
|
Mark Mentovai
2011/10/05 18:16:05
Rather than pushd/cd/operate/popd, you can do
(cd
michaelbai
2011/10/05 20:55:18
Done.
| |
| 45 cd $4 | |
| 46 tar -xvf $4/$1 | |
| 47 popd | |
| 48 } | |
| 49 | |
| 50 if [ -z "${ANDROID_SDK_ROOT}" ]; then | |
|
Mark Mentovai
2011/10/05 18:16:05
[[ double brackets ]] throughout (see e-mail comin
michaelbai
2011/10/05 20:55:18
Done.
| |
| 51 echo "Please set ANDROID_SDK_ROOT to where they should installed to." >& 2 | |
| 52 echo "For example: /usr/local/android-sdk-linux_x86" >& 2 | |
| 53 exit 1 | |
| 54 fi | |
| 55 | |
| 56 if [ -z "${ANDROID_NDK_ROOT}" ]; then | |
| 57 echo "Please set ANDROID_NDK_ROOT to where they should installed to." >& 2 | |
| 58 echo "For example: /usr/local/android-ndk-r6b" >& 2 | |
| 59 exit 1 | |
| 60 fi | |
| 61 | |
| 62 # Install Android SDK if it doesn't exist. | |
| 63 if [ ! -d ${ANDROID_SDK_ROOT} ]; then | |
| 64 echo 'Install ANDROID SDK ...' | |
| 65 install_dev_kit ${SDK_FILE_NAME} ${SDK_DOWNLOAD_URL} ${SDK_MD5SUM} \ | |
| 66 $(dirname ${ANDROID_SDK_ROOT}) | |
| 67 fi | |
| 68 | |
| 69 # Install the target if it doesn't exist. The package installed above contains | |
| 70 # no platform, platform-tool or tool, all those should be installed by | |
| 71 # ${ANDROID_SDK_ROOT}/tools/android. | |
| 72 if [ $(${ANDROID_SDK_ROOT}/tools/android list targets \ | |
|
Mark Mentovai
2011/10/05 18:16:05
Don’t forget to quote things like ANDROID_SDK_ROOT
michaelbai
2011/10/05 20:55:18
Done.
| |
| 73 | grep "${SDK_TARGET_ID}" | wc -w) == 0 ]; then | |
|
Mark Mentovai
2011/10/05 18:16:05
What’s the wc about? Why not test grep’s exit stat
michaelbai
2011/10/05 20:55:18
Done.
| |
| 74 # Updates the SDK by installing the necessary components. | |
| 75 # From current configuration, all android platforms will be installed. | |
| 76 # This will take a little bit long time. | |
| 77 $echo "Install platform, platform-tool and tool ..." | |
|
Mark Mentovai
2011/10/05 18:16:05
What’s $echo?
michaelbai
2011/10/05 20:55:18
Done.
| |
| 78 ${ANDROID_SDK_ROOT}/tools/android update sdk --no-ui \ | |
| 79 --filter platform,platform-tool,tool | |
| 80 fi | |
| 81 | |
| 82 # Create a AVD named 'buildbot' with default hw configuration and override the | |
|
Mark Mentovai
2011/10/05 18:16:05
I don’t know what AVD means. This comment can expl
michaelbai
2011/10/05 20:55:18
Done.
| |
| 83 # existing one since there is no easy way to check whether current AVD has | |
| 84 # correct configuration and it takes almost no time to create a new one. | |
| 85 echo no | ${ANDROID_SDK_ROOT}/tools/android --silent create avd \ | |
|
Mark Mentovai
2011/10/05 18:16:05
Since you’re a bash script, you can use <<< to giv
michaelbai
2011/10/05 20:55:18
Done.
| |
| 86 --name buildbot --target ${SDK_TARGET_ID} --force | |
| 87 | |
| 88 # Install Android NDK if it doesn't exist. | |
| 89 if [ ! -d ${ANDROID_NDK_ROOT} ]; then | |
| 90 echo 'Install ANDROID NDK ...' | |
| 91 install_dev_kit ${NDK_FILE_NAME} ${NDK_DOWNLOAD_URL} ${NDK_MD5SUM} \ | |
| 92 $(dirname ${ANDROID_NDK_ROOT}) | |
| 93 fi | |
| OLD | NEW |