1#
2# Build targets for an ARM64 processor
3#
4
5# arm64 Environment Checks #####################################################
6
7ifeq ($(ANDROID_NDK_PREFIX),)
8$(error "You should supply an ANDROID_NDK_PREFIX environment variable \
9         containing a path to a generated Android NDK toolchain. i.e. \
10         ./build/tools/make-standalone-toolchain.sh --arch=arm64 \
11         --platform=android-26 --install-dir=$$ANDROID_NDK_PREFIX")
12endif
13
14export ARM64_TOOLS_PREFIX=$(ANDROID_NDK_PREFIX)/bin
15
16# arm64 Tools ##################################################################
17
18TARGET_AR = $(ARM64_TOOLS_PREFIX)/llvm-ar
19TARGET_CC = $(ARM64_TOOLS_PREFIX)/clang++
20TARGET_LD = $(ARM64_TOOLS_PREFIX)/clang++
21
22# arm64 Compiler Flags #########################################################
23
24# Add arm64 compiler flags.
25TARGET_CFLAGS += $(ARM64_CFLAGS)
26
27# Generate a position independent executable.
28TARGET_CFLAGS += -fPIE
29
30# arm64 Shared Object Linker Flags #############################################
31
32TARGET_SO_LDFLAGS += -shared
33TARGET_SO_LDFLAGS += -Wl,-gc-sections
34
35# Optimization Level ###########################################################
36
37TARGET_CFLAGS += -O$(OPT_LEVEL)
38
39# Variant Specific Sources #####################################################
40
41TARGET_VARIANT_SRCS += $(ARM64_SRCS)
42