1bc58f9aaSPavel LabathNDK_ROOT := $(shell dirname $(CC))/../../../../.. 2bc58f9aaSPavel Labath 3bc58f9aaSPavel Labathifeq "$(findstring 64, $(ARCH))" "64" 4bc58f9aaSPavel Labath # lowest 64-bit API level 5bc58f9aaSPavel Labath API_LEVEL := 21 6bc58f9aaSPavel Labathelse ifeq "$(ARCH)" "i386" 7bc58f9aaSPavel Labath # clone(2) declaration is present only since this api level 8bc58f9aaSPavel Labath API_LEVEL := 17 9bc58f9aaSPavel Labathelse 10bc58f9aaSPavel Labath # lowest supported 32-bit API level 1173447900SPavel Labath API_LEVEL := 16 12bc58f9aaSPavel Labathendif 13bc58f9aaSPavel Labath 14bc58f9aaSPavel Labathifeq "$(ARCH)" "arm" 15bc58f9aaSPavel Labath SYSROOT_ARCH := arm 16bc58f9aaSPavel Labath STL_ARCH := armeabi-v7a 179ef57780SPavel Labath TRIPLE := armv7-none-linux-androideabi 18bc58f9aaSPavel Labath ARCH_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm 19bc58f9aaSPavel Labathelse ifeq "$(ARCH)" "aarch64" 20bc58f9aaSPavel Labath SYSROOT_ARCH := arm64 21bc58f9aaSPavel Labath STL_ARCH := arm64-v8a 2273447900SPavel Labath TRIPLE := aarch64-none-linux-android 23bc58f9aaSPavel Labathelse ifeq "$(ARCH)" "i386" 24bc58f9aaSPavel Labath SYSROOT_ARCH := x86 25bc58f9aaSPavel Labath STL_ARCH := x86 269ef57780SPavel Labath TRIPLE := i686-none-linux-android 27bc58f9aaSPavel Labathelse ifeq "$(ARCH)" "mips64r6" 28bc58f9aaSPavel Labath SYSROOT_ARCH := mips64 29bc58f9aaSPavel Labath STL_ARCH := mips64 309ef57780SPavel Labath TRIPLE := mips64el-none-linux-android 31bc58f9aaSPavel Labathelse ifeq "$(ARCH)" "mips32" 32bc58f9aaSPavel Labath SYSROOT_ARCH := mips 33bc58f9aaSPavel Labath STL_ARCH := mips 349ef57780SPavel Labath TRIPLE := mipsel-none-linux-android 35bc58f9aaSPavel Labathelse 36bc58f9aaSPavel Labath SYSROOT_ARCH := $(ARCH) 37bc58f9aaSPavel Labath STL_ARCH := $(ARCH) 389ef57780SPavel Labath TRIPLE := $(ARCH)-none-linux-android 398faf9b75SPavel Labathendif 408faf9b75SPavel Labath 418faf9b75SPavel Labathifeq "$(findstring 86,$(ARCH))" "86" 428faf9b75SPavel Labath TOOLCHAIN_DIR := $(STL_ARCH)-4.9 439ef57780SPavel Labathelse ifeq "$(ARCH)" "arm" 449ef57780SPavel Labath TOOLCHAIN_DIR := arm-linux-androideabi-4.9 458faf9b75SPavel Labathelse 469ef57780SPavel Labath TOOLCHAIN_DIR := $(subst -none,,$(TRIPLE))-4.9 478faf9b75SPavel Labathendif 488faf9b75SPavel Labath 49efe4e412SPavel Labathifeq "$(ARCH)" "arm" 50efe4e412SPavel Labath TOOL_PREFIX := arm-linux-androideabi 51efe4e412SPavel Labathelse 52efe4e412SPavel Labath TOOL_PREFIX := $(subst -none,,$(TRIPLE)) 53efe4e412SPavel Labathendif 54efe4e412SPavel Labath 558faf9b75SPavel Labathifeq "$(HOST_OS)" "Linux" 568faf9b75SPavel Labath HOST_TAG := linux-x86_64 578faf9b75SPavel Labathelse ifeq "$(HOST_OS)" "Darwin" 588faf9b75SPavel Labath HOST_TAG := darwin-x86_64 598faf9b75SPavel Labathelse 608faf9b75SPavel Labath HOST_TAG := windows-x86_64 618faf9b75SPavel Labathendif 628faf9b75SPavel Labath 63efe4e412SPavel LabathGCC_TOOLCHAIN = $(NDK_ROOT)/toolchains/$(TOOLCHAIN_DIR)/prebuilt/$(HOST_TAG) 64efe4e412SPavel Labath 65efe4e412SPavel LabathOBJCOPY ?= $(GCC_TOOLCHAIN)/bin/$(TOOL_PREFIX)-objcopy 6659bc6d1cSPavel LabathARCHIVER ?= $(GCC_TOOLCHAIN)/bin/$(TOOL_PREFIX)-ar 67efe4e412SPavel Labath 688faf9b75SPavel Labathifeq "$(findstring clang,$(CC))" "clang" 69*40aab041SFangrui Song ARCH_CFLAGS += -target $(TRIPLE) --gcc-toolchain=$(GCC_TOOLCHAIN) 70*40aab041SFangrui Song ARCH_LDFLAGS += -target $(TRIPLE) --gcc-toolchain=$(GCC_TOOLCHAIN) 71bc58f9aaSPavel Labathendif 72bc58f9aaSPavel Labath 7373447900SPavel LabathARCH_CFLAGS += --sysroot=$(NDK_ROOT)/sysroot \ 7473447900SPavel Labath -isystem $(NDK_ROOT)/sysroot/usr/include/$(TOOL_PREFIX) \ 75e5001fe5SAlex Langford -D__ANDROID_API__=$(API_LEVEL) \ 76e5001fe5SAlex Langford -isystem $(NDK_ROOT)/platforms/android-$(API_LEVEL)/arch-$(SYSROOT_ARCH)/usr/include 77e5001fe5SAlex Langford 787163ecb4SPavel LabathARCH_LDFLAGS += --sysroot=$(NDK_ROOT)/platforms/android-$(API_LEVEL)/arch-$(SYSROOT_ARCH) -lm 797163ecb4SPavel Labath 80733ad45bSPavel LabathARCH_CXXFLAGS += \ 817163ecb4SPavel Labath -isystem $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include \ 827163ecb4SPavel Labath -isystem $(NDK_ROOT)/sources/android/support/include \ 837163ecb4SPavel Labath -isystem $(NDK_ROOT)/sources/cxx-stl/llvm-libc++abi/include 847163ecb4SPavel Labath 857163ecb4SPavel LabathARCH_LDFLAGS += \ 867163ecb4SPavel Labath -L$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH) \ 87695f7821SAlex Langford $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH)/libc++_static.a \ 88e5001fe5SAlex Langford -lc++abi \ 89e5001fe5SAlex Langford -nostdlib++ 90