diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/make/Android.rules')
| -rw-r--r-- | packages/Python/lldbsuite/test/make/Android.rules | 91 | 
1 files changed, 91 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/make/Android.rules b/packages/Python/lldbsuite/test/make/Android.rules new file mode 100644 index 000000000000..3e6a093f4bae --- /dev/null +++ b/packages/Python/lldbsuite/test/make/Android.rules @@ -0,0 +1,91 @@ +NDK_ROOT := $(shell dirname $(CC))/../../../../.. + +ifeq "$(findstring 64, $(ARCH))" "64" +	# lowest 64-bit API level +	API_LEVEL := 21 +else ifeq "$(ARCH)" "i386" +	# clone(2) declaration is present only since this api level +	API_LEVEL := 17 +else +	# lowest supported 32-bit API level +	API_LEVEL := 9 +endif + +ifeq "$(ARCH)" "arm" +	SYSROOT_ARCH := arm +	STL_ARCH := armeabi-v7a +	TRIPLE := armv7-none-linux-androideabi +	ARCH_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm +else ifeq "$(ARCH)" "aarch64" +	SYSROOT_ARCH := arm64 +	TRIPLE := aarch64-none-linux-android +	STL_ARCH := arm64-v8a +else ifeq "$(ARCH)" "i386" +	SYSROOT_ARCH := x86 +	STL_ARCH := x86 +	TRIPLE := i686-none-linux-android +else ifeq "$(ARCH)" "mips64r6" +	SYSROOT_ARCH := mips64 +	STL_ARCH := mips64 +	TRIPLE := mips64el-none-linux-android +else ifeq "$(ARCH)" "mips32" +	SYSROOT_ARCH := mips +	STL_ARCH := mips +	TRIPLE := mipsel-none-linux-android +else +	SYSROOT_ARCH := $(ARCH) +	STL_ARCH := $(ARCH) +	TRIPLE := $(ARCH)-none-linux-android +endif + +ifeq "$(findstring 86,$(ARCH))" "86" +	TOOLCHAIN_DIR := $(STL_ARCH)-4.9 +else ifeq "$(ARCH)" "arm" +	TOOLCHAIN_DIR := arm-linux-androideabi-4.9 +else +	TOOLCHAIN_DIR := $(subst -none,,$(TRIPLE))-4.9 +endif + +ifeq "$(ARCH)" "arm" +	TOOL_PREFIX := arm-linux-androideabi +else +	TOOL_PREFIX := $(subst -none,,$(TRIPLE)) +endif + +ifeq "$(HOST_OS)" "Linux" +	HOST_TAG := linux-x86_64 +else ifeq "$(HOST_OS)" "Darwin" +	HOST_TAG := darwin-x86_64 +else +	HOST_TAG := windows-x86_64 +endif + +GCC_TOOLCHAIN = $(NDK_ROOT)/toolchains/$(TOOLCHAIN_DIR)/prebuilt/$(HOST_TAG) + +OBJCOPY ?= $(GCC_TOOLCHAIN)/bin/$(TOOL_PREFIX)-objcopy + +ifeq "$(findstring clang,$(CC))" "clang" +	ARCH_CFLAGS += -target $(TRIPLE) -gcc-toolchain $(GCC_TOOLCHAIN) +	ARCH_LDFLAGS += -target $(TRIPLE) -gcc-toolchain $(GCC_TOOLCHAIN) +endif + +ARCH_CFLAGS += --sysroot=$(NDK_ROOT)/platforms/android-$(API_LEVEL)/arch-$(SYSROOT_ARCH) +ARCH_LDFLAGS += --sysroot=$(NDK_ROOT)/platforms/android-$(API_LEVEL)/arch-$(SYSROOT_ARCH) -lm + +ifeq (1,$(USE_LIBCPP)) +	ARCH_CFLAGS += \ +		-isystem $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include \ +		-isystem $(NDK_ROOT)/sources/android/support/include \ +		-isystem $(NDK_ROOT)/sources/cxx-stl/llvm-libc++abi/include + +	ARCH_LDFLAGS += \ +		-L$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH) \ +		$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH)/libc++.a +else +	ARCH_CFLAGS += \ +		-isystem $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.9/include \ +		-isystem $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.9/libs/$(STL_ARCH)/include \ +		-isystem $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.9/include/backward + +	ARCH_LDFLAGS += $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.9/libs/$(STL_ARCH)/libgnustl_static.a +endif  | 
