xref: /aosp_15_r20/system/chre/build/arch/arm64.mk (revision 84e339476a462649f82315436d70fd732297a399)
1*84e33947SAndroid Build Coastguard Worker#
2*84e33947SAndroid Build Coastguard Worker# Build targets for an ARM64 processor
3*84e33947SAndroid Build Coastguard Worker#
4*84e33947SAndroid Build Coastguard Worker
5*84e33947SAndroid Build Coastguard Worker# arm64 Environment Checks #####################################################
6*84e33947SAndroid Build Coastguard Worker
7*84e33947SAndroid Build Coastguard Workerifeq ($(ANDROID_NDK_PREFIX),)
8*84e33947SAndroid Build Coastguard Worker$(error "You should supply an ANDROID_NDK_PREFIX environment variable \
9*84e33947SAndroid Build Coastguard Worker         containing a path to a generated Android NDK toolchain. i.e. \
10*84e33947SAndroid Build Coastguard Worker         ./build/tools/make-standalone-toolchain.sh --arch=arm64 \
11*84e33947SAndroid Build Coastguard Worker         --platform=android-26 --install-dir=$$ANDROID_NDK_PREFIX")
12*84e33947SAndroid Build Coastguard Workerendif
13*84e33947SAndroid Build Coastguard Worker
14*84e33947SAndroid Build Coastguard Workerexport ARM64_TOOLS_PREFIX=$(ANDROID_NDK_PREFIX)/bin
15*84e33947SAndroid Build Coastguard Worker
16*84e33947SAndroid Build Coastguard Worker# arm64 Tools ##################################################################
17*84e33947SAndroid Build Coastguard Worker
18*84e33947SAndroid Build Coastguard WorkerTARGET_AR = $(ARM64_TOOLS_PREFIX)/llvm-ar
19*84e33947SAndroid Build Coastguard WorkerTARGET_CC = $(ARM64_TOOLS_PREFIX)/clang++
20*84e33947SAndroid Build Coastguard WorkerTARGET_LD = $(ARM64_TOOLS_PREFIX)/clang++
21*84e33947SAndroid Build Coastguard Worker
22*84e33947SAndroid Build Coastguard Worker# arm64 Compiler Flags #########################################################
23*84e33947SAndroid Build Coastguard Worker
24*84e33947SAndroid Build Coastguard Worker# Add arm64 compiler flags.
25*84e33947SAndroid Build Coastguard WorkerTARGET_CFLAGS += $(ARM64_CFLAGS)
26*84e33947SAndroid Build Coastguard Worker
27*84e33947SAndroid Build Coastguard Worker# Generate a position independent executable.
28*84e33947SAndroid Build Coastguard WorkerTARGET_CFLAGS += -fPIE
29*84e33947SAndroid Build Coastguard Worker
30*84e33947SAndroid Build Coastguard Worker# arm64 Shared Object Linker Flags #############################################
31*84e33947SAndroid Build Coastguard Worker
32*84e33947SAndroid Build Coastguard WorkerTARGET_SO_LDFLAGS += -shared
33*84e33947SAndroid Build Coastguard WorkerTARGET_SO_LDFLAGS += -Wl,-gc-sections
34*84e33947SAndroid Build Coastguard Worker
35*84e33947SAndroid Build Coastguard Worker# Optimization Level ###########################################################
36*84e33947SAndroid Build Coastguard Worker
37*84e33947SAndroid Build Coastguard WorkerTARGET_CFLAGS += -O$(OPT_LEVEL)
38*84e33947SAndroid Build Coastguard Worker
39*84e33947SAndroid Build Coastguard Worker# Variant Specific Sources #####################################################
40*84e33947SAndroid Build Coastguard Worker
41*84e33947SAndroid Build Coastguard WorkerTARGET_VARIANT_SRCS += $(ARM64_SRCS)
42