brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 44aedf7 Raw
60 lines · plain
1NDK_ROOT := $(shell dirname $(CC))/../../../../..2 3ifeq "$(HOST_OS)" "Linux"4	HOST_TAG := linux-x86_645else ifeq "$(HOST_OS)" "Darwin"6	HOST_TAG := darwin-x86_647else8	HOST_TAG := windows-x86_649endif10 11TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TAG)12TOOLCHAIN_SYSROOT := $(TOOLCHAIN_ROOT)/sysroot13 14OBJCOPY ?= $(TOOLCHAIN_ROOT)/bin/llvm-objcopy15ARCHIVER ?= $(TOOLCHAIN_ROOT)/bin/llvm-ar16 17ifeq "$(wildcard $(TOOLCHAIN_SYSROOT)/.)" ""18# Compiling test inferiors for Android requires an NDK with the unified19# toolchain introduced in version r19.20$(error "No unified toolchain sysroot found in $(NDK_ROOT). NDK must be r19 or later.")21endif22 23ifeq "$(ARCH)" "arm"24	TRIPLE := armv7-none-linux-androideabi25	ARCH_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm26else ifeq "$(ARCH)" "aarch64"27	TRIPLE := aarch64-none-linux-android28else ifeq "$(ARCH)" "i386"29	TRIPLE := i686-none-linux-android30else31	TRIPLE := $(ARCH)-none-linux-android32endif33 34# lowest 64-bit API level35API_LEVEL := 2136 37ifeq "$(ARCH)" "arm"38	ARCH_DIR := arm-linux-androideabi39else40	ARCH_DIR := $(subst -none,,$(TRIPLE))41endif42 43ARCH_CFLAGS += \44	--target=$(TRIPLE) \45	--sysroot=$(TOOLCHAIN_SYSROOT) \46	-D__ANDROID_API__=$(API_LEVEL)47 48ARCH_CXXFLAGS += \49	-isystem $(TOOLCHAIN_SYSROOT)/usr/include/c++/v150 51ARCH_LDFLAGS += \52	--target=$(TRIPLE) \53	--sysroot=$(TOOLCHAIN_SYSROOT) \54	--prefix=$(TOOLCHAIN_SYSROOT)/usr/lib/$(ARCH_DIR)/$(API_LEVEL) \55	-L$(TOOLCHAIN_SYSROOT)/usr/lib/$(ARCH_DIR)/$(API_LEVEL) \56	$(TOOLCHAIN_SYSROOT)/usr/lib/$(ARCH_DIR)/libc++_static.a \57	-lm \58	-lc++abi \59	-nostdlib++60