Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(497)

Side by Side Diff: build/android/envsetup.sh

Issue 8008026: Upstream: Set build target and evnvironment for Android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« build/all_android.gyp ('K') | « build/all_android.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
Mark Mentovai 2011/09/26 21:14:31 I was asking for a blank line between #!/bin/bash
michaelbai 2011/09/26 21:28:11 Sorry, Done
3
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 # Sets up environment for building Chromium on Android. Only Android NDK,
8 # Revision 6b on Linux or Mac is offically supported.
9 #
10 # To run this script, the system environment ANDROID_NDK_ROOT must be set
11 # to Android NDK's root path.
12 #
13 # TODO(michaelbai): Develop a standard for NDK/SDK integration.
14 #
15 # If current path isn't the Chrome's src directory, CHROME_SRC must be set
16 # to the Chrome's src directory.
17
18 if [ ! -d "${ANDROID_NDK_ROOT}" ]; then
19 echo "ANDROID_NDK_ROOT must be set to the path of Android NDK, Revision 6b."
Mark Mentovai 2011/09/26 21:14:31 These three echoes should go to stderr (see the ne
michaelbai 2011/09/26 21:28:11 Done.
20 echo "which could be downloaded from"
21 echo "http://developer.android.com/sdk/ndk/index.html"
22 return 1
23 fi
24
25 host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
26
27 case "${host_os}" in
28 "linux")
29 toolchain_dir="linux-x86"
30 ;;
31 "mac")
32 toolchain_dir="darwin-x86"
33 ;;
34 *)
35 echo "Host platform ${host_os} is not supported"
Mark Mentovai 2011/09/26 21:14:31 Direct error messages to stderr. This should be
michaelbai 2011/09/26 21:28:11 Done.
36 return 1
37 esac
38
39 export ANDROID_TOOLCHAIN="${ANDROID_NDK_ROOT}/toolchains/arm-linux-androideabi-4 .4.3/prebuilt/${toolchain_dir}/bin/"
40
41 if [ ! -d "${ANDROID_TOOLCHAIN}" ]; then
42 echo "Can not find Android toolchain in ${ANDROID_TOOLCHAIN}."
Mark Mentovai 2011/09/26 21:14:31 Both of these echoes should go to stderr (>& 2) to
michaelbai 2011/09/26 21:28:11 Done.
43 echo "The NDK version might be wrong."
44 return 1
45 fi
46
47 if [ -z "${CHROME_SRC}" ]; then
48 # if $CHROME_SRC was not set, assume current directory is CHROME_SRC.
49 export CHROME_SRC=$(pwd)
50 fi
51
52 if [ ! -d "${CHROME_SRC}" ]; then
53 echo "CHROME_SRC must be set to the path of Chrome source code."
Mark Mentovai 2011/09/26 21:14:31 stderr.
michaelbai 2011/09/26 21:28:11 Done.
54 return 1
55 fi
56
57 make() {
58 # TODO(michaelbai): how to use ccache in NDK.
59 if [ -n "${USE_CCACHE}" ]; then
60 if [ -e "${PREBUILT_CCACHE_PATH}" ]; then
61 use_ccache_var="$PREBUILT_CCACHE_PATH "
62 else
63 use_ccache_var=""
64 fi
65 fi
66 if [ -f "$PWD/build/android/envsetup.sh" ]; then
67 CC="${use_ccache_var}${CROSS_CC}" CXX="${use_ccache_var}${CROSS_CXX}" \
68 LINK="${CROSS_LINK}" AR="${CROSS_AR}" RANLIB="${CROSS_RANLIB}" \
69 command make $*
70 else
71 command make $*
72 fi
73 }
74
75 # Performs a gyp_chromium run to convert gyp->Makefile for android code.
76 android_gyp() {
77 "${CHROME_SRC}"/build/gyp_chromium --depth="${CHROME_SRC}"
Mark Mentovai 2011/09/26 21:14:31 The quotes should encompass the entire word. You d
michaelbai 2011/09/26 21:28:11 Done.
78 }
79
80 firstword() {
81 echo "${1}"
82 }
83
84 export CROSS_AR="$(firstword "${ANDROID_TOOLCHAIN}"/*-ar)"
85 export CROSS_CC="$(firstword "${ANDROID_TOOLCHAIN}"/*-gcc)"
86 export CROSS_CXX="$(firstword "${ANDROID_TOOLCHAIN}"/*-g++)"
87 export CROSS_LINK="$(firstword "${ANDROID_TOOLCHAIN}"/*-gcc)"
88 export CROSS_RANLIB="$(firstword "${ANDROID_TOOLCHAIN}"/*-ranlib)"
89 export OBJCOPY="$(firstword "${ANDROID_TOOLCHAIN}"/*-objcopy)"
90 export STRIP="$(firstword "${ANDROID_TOOLCHAIN}"/*-strip)"
91
92 # The set of GYP_DEFINES to pass to gyp. Use 'readlink -e' on directories
93 # to canonicalize them (remove double '/', remove trailing '/', etc).
94 DEFINES="OS=android"
95 DEFINES+=" android_build_type=0" # Currently, Only '0' is supportted.
96 DEFINES+=" host_os=${host_os}"
97 DEFINES+=" linux_fpic=1"
98 DEFINES+=" release_optimize=s"
99 DEFINES+=" linux_use_tcmalloc=0"
100 DEFINES+=" disable_nacl=1"
101 DEFINES+=" remoting=0"
102 DEFINES+=" p2p_apis=0"
103 DEFINES+=" enable_touch_events=1"
104 # TODO(bulach): use "shared_libraries" once the transition from executable
105 # is over.
106 DEFINES+=" gtest_target_type=executable"
107 DEFINES+=" branding=Chromium"
108
109 # If the TARGET_PRODUCT wasn't set, use 'full' by default.
110 if [ -z "${TARGET_PRODUCT}" ]; then
111 TARGET_PRODUCT="full"
112 fi
113
114 # The following defines will affect ARM code generation of both C/C++ compiler
115 # and V8 mksnapshot.
116 case "${TARGET_PRODUCT}" in
117 "full")
118 DEFINES+=" target_arch=arm"
119 DEFINES+=" arm_neon=0 armv7=0 arm_thumb=1 arm_fpu=vfp"
120 ;;
121 *x86*)
122 DEFINES+=" target_arch=ia32 use_libffmpeg=0"
123 ;;
124 *)
125 echo "TARGET_PRODUCT:${TARGET_PRODUCT} is not supported."
Mark Mentovai 2011/09/26 21:14:31 I think the colon (:) should be a space. And this
michaelbai 2011/09/26 21:28:11 Done.
126 return 1
127 esac
128
129 export GYP_DEFINES="${DEFINES}"
130
131 # Use the "android" flavor of the Makefile generator for both Linux and OS X.
132 export GYP_GENERATORS="make-android"
133
134 # We want to use our version of "all" targets.
135 export CHROMIUM_GYP_FILE="${CHROME_SRC}/build/all_android.gyp"
OLDNEW
« build/all_android.gyp ('K') | « build/all_android.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698