blob: cf873811131633b68525736780ac0dcc3e0b8ff6 [file] [log] [blame]
James Robinson646469d2014-10-03 15:33:28 -07001#!/bin/bash -e
2
3# Copyright (c) 2012 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
Etienne Membrives386015a2015-02-19 17:27:12 +01007# Script to install everything needed to build chromium on android, including
8# items requiring sudo privileges.
James Robinson646469d2014-10-03 15:33:28 -07009# See http://code.google.com/p/chromium/wiki/AndroidBuildInstructions
10
11# This script installs the sun-java6 packages (bin, jre and jdk). Sun requires
12# a license agreement, so upon installation it will prompt the user. To get
13# past the curses-based dialog press TAB <ret> TAB <ret> to agree.
14
James Robinson5e66a792015-01-21 17:02:08 -080015args="$@"
16if test "$1" = "--skip-sdk-packages"; then
17 skip_inst_sdk_packages=1
18 args="${@:2}"
19else
20 skip_inst_sdk_packages=0
21fi
22
James Robinson646469d2014-10-03 15:33:28 -070023if ! uname -m | egrep -q "i686|x86_64"; then
24 echo "Only x86 architectures are currently supported" >&2
25 exit
26fi
27
28# Install first the default Linux build deps.
29"$(dirname "${BASH_SOURCE[0]}")/install-build-deps.sh" \
James Robinson5e66a792015-01-21 17:02:08 -080030 --no-syms --lib32 --no-arm --no-chromeos-fonts --no-nacl --no-prompt "${args}"
James Robinson6a64b812014-12-03 13:38:42 -080031
32lsb_release=$(lsb_release --codename --short)
James Robinson646469d2014-10-03 15:33:28 -070033
34# The temporary directory used to store output of update-java-alternatives
35TEMPDIR=$(mktemp -d)
36cleanup() {
37 local status=${?}
38 trap - EXIT
39 rm -rf "${TEMPDIR}"
40 exit ${status}
41}
42trap cleanup EXIT
43
James Robinson646469d2014-10-03 15:33:28 -070044# Fix deps
45sudo apt-get -f install
46
47# Install deps
48# This step differs depending on what Ubuntu release we are running
49# on since the package names are different, and Sun's Java must
50# be installed manually on late-model versions.
51
52# common
53sudo apt-get -y install lighttpd python-pexpect xvfb x11-utils
54
James Robinson6a64b812014-12-03 13:38:42 -080055# Some binaries in the Android SDK require 32-bit libraries on the host.
56# See https://developer.android.com/sdk/installing/index.html?pkg=tools
57if [[ $lsb_release == "precise" ]]; then
58 sudo apt-get -y install ia32-libs
59else
60 sudo apt-get -y install libncurses5:i386 libstdc++6:i386 zlib1g:i386
61fi
James Robinson646469d2014-10-03 15:33:28 -070062
63sudo apt-get -y install ant
64
65# Install openjdk and openjre 7 stuff
66sudo apt-get -y install openjdk-7-jre openjdk-7-jdk
67
68# Switch version of Java to openjdk 7.
69# Some Java plugins (e.g. for firefox, mozilla) are not required to build, and
70# thus are treated only as warnings. Any errors in updating java alternatives
71# which are not '*-javaplugin.so' will cause errors and stop the script from
72# completing successfully.
73if ! sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 \
74 >& "${TEMPDIR}"/update-java-alternatives.out
75then
76 # Check that there are the expected javaplugin.so errors for the update
77 if grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out >& \
78 /dev/null
79 then
80 # Print as warnings all the javaplugin.so errors
81 echo 'WARNING: java-6-sun has no alternatives for the following plugins:'
82 grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
83 fi
84 # Check if there are any errors that are not javaplugin.so
85 if grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out \
86 >& /dev/null
87 then
88 # If there are non-javaplugin.so errors, treat as errors and exit
89 echo 'ERRORS: Failed to update alternatives for java-6-sun:'
90 grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
91 exit 1
92 fi
93fi
94
Etienne Membrives386015a2015-02-19 17:27:12 +010095# Install SDK packages for android
James Robinson5e66a792015-01-21 17:02:08 -080096if test "$skip_inst_sdk_packages" != 1; then
Etienne Membrives386015a2015-02-19 17:27:12 +010097 "$(dirname "${BASH_SOURCE[0]}")/install-android-sdks.sh"
James Robinson5e66a792015-01-21 17:02:08 -080098fi
James Robinsond753aca2015-01-12 13:07:20 -080099
James Robinson646469d2014-10-03 15:33:28 -0700100echo "install-build-deps-android.sh complete."