Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: Makefile.android

Issue 10228016: Android build target for libadblockplus (Closed)
Patch Set: Created April 30, 2013, 7:40 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 PATCH ?= patch
2 # Those definitions should be consistent with the main Makefile
3 ANDROID_ARCHES = android_ia32 android_arm android_mipsel
4 MODES = release debug
5 # Generates all combinations of ANDROID ARCHES and MODES,
6 # e.g. "android_ia32.release" or "android_arm.release"
7 ANDROID_BUILDS = $(foreach mode,$(MODES), \
8 $(addsuffix .$(mode),$(ANDROID_ARCHES)))
9
10 HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
11 ifeq ($(HOST_OS), linux)
12 TOOLCHAIN_DIR = linux-x86
13 else
14 ifeq ($(HOST_OS), mac)
15 TOOLCHAIN_DIR = darwin-x86
16 else
17 $(error Host platform "${HOST_OS}" is not supported)
18 endif
19 endif
20
21 ifeq ($(ARCH), android_arm)
22 DEFINES = target_arch=arm v8_target_arch=arm android_target_arch=arm
Wladimir Palant 2013/05/07 08:18:54 Setting v8_target_arch explicitly shouldn't be nec
23 DEFINES += arm_neon=0 armv7=1
24 TOOLCHAIN_ARCH = arm-linux-androideabi-4.6
25 else
26 ifeq ($(ARCH), android_mipsel)
27 DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_arch=mips
28 DEFINES += mips_arch_variant=mips32r2
29 TOOLCHAIN_ARCH = mipsel-linux-android-4.6
30 else
31 ifeq ($(ARCH), android_ia32)
32 DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86
33 TOOLCHAIN_ARCH = x86-4.6
34 else
35 $(error Target architecture "${ARCH}" is not supported)
36 endif
37 endif
38 endif
39
40 TOOLCHAIN_PATH = ${ANDROID_NDK_ROOT}/toolchains/${TOOLCHAIN_ARCH}/prebuilt
41 ANDROID_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/${TOOLCHAIN_DIR}
42 ifeq ($(wildcard $(ANDROID_TOOLCHAIN)),)
43 $(error Cannot find Android toolchain in "${ANDROID_TOOLCHAIN}")
44 endif
45
46 DEFINES += host_os=${HOST_OS} OS=android
47
48 .PHONY: v8
49
50 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN:
51 ifndef ANDROID_NDK_ROOT
52 ifndef ANDROID_TOOLCHAIN
53 $(error ANDROID_NDK_ROOT or ANDROID_TOOLCHAIN must be set))
54 endif
55 endif
56
57 v8:
58 $(PATCH) -d third_party/v8 < patches/V8.patch
Andrey Novikov 2013/04/30 20:16:05 I do not like this approach because it is not erro
Wladimir Palant 2013/05/07 08:18:54 I don't like that approach either. You don't need
59 OUTDIR=../../build $(MAKE) -C third_party/v8 vfp3=off armv7=false $(ARCH ).$(MODE)
60 $(PATCH) -d third_party/v8 -R < patches/V8.patch
61
62 $(ANDROID_BUILDS): must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN v8
63 @GYP_GENERATORS=make-android \
64 GYP_DEFINES="${DEFINES}" \
65 CC="$(ANDROID_TOOLCHAIN)/bin/*-gcc" \
66 CXX="$(ANDROID_TOOLCHAIN)/bin/*-g++" \
67 third_party/gyp/gyp --depth=. -I common.gypi -I third_party/v8/build/sta ndalone.gypi --generator-output=build -Dtarget_arch=$(ARCH) libadblockplus.gyp
Wladimir Palant 2013/05/07 08:18:54 Why do we need to include standalone.gypi? We don'
68 $(MAKE) V=1 -C build \
69 CXX="$(ANDROID_TOOLCHAIN)/bin/*-g++" \
70 AR="$(ANDROID_TOOLCHAIN)/bin/*-ar" \
71 RANLIB="$(ANDROID_TOOLCHAIN)/bin/*-ranlib" \
72 CC="$(ANDROID_TOOLCHAIN)/bin/*-gcc" \
73 LD="$(ANDROID_TOOLCHAIN)/bin/*-ld" \
74 LINK="$(ANDROID_TOOLCHAIN)/bin/*-g++" \
75 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
76 python -c "print raw_input().capitalize()")
OLDNEW

Powered by Google App Engine
This is Rietveld