X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=Android.mk;h=1cc9690ff1e5593a957a0515e6019021e2e5d22f;hb=refs%2Fheads%2Fpie-x86;hp=b97a8ba61c9a2a5049e69436cc1357c88df22a12;hpb=cd4fe6aab0648c79492fe1f3551c23ffdd2d0a76;p=android-x86%2Fexternal-swiftshader.git diff --git a/Android.mk b/Android.mk index b97a8ba61..1cc9690ff 100644 --- a/Android.mk +++ b/Android.mk @@ -14,8 +14,50 @@ # limitations under the License. # -LOCAL_PATH:= $(call my-dir) +LOCAL_PATH := $(call my-dir) +swiftshader_root := $(LOCAL_PATH) -ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64)) -include $(call all-makefiles-under,$(LOCAL_PATH)) +# Default LLVM version for SwiftShader's JIT compiler (Reactor). +REACTOR_LLVM_VERSION ?= 7 + +# Subzero is an alternative JIT compiler. It is smaller and generally slower. +REACTOR_USE_SUBZERO := false + +ifeq ($(REACTOR_LLVM_VERSION),3) +# Reactor with LLVM 3.0 doesn't support ARM. Use Subzero as the Reactor JIT +# back-end on ARM. +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm)) +REACTOR_USE_SUBZERO := true +endif +endif + +# Subzero and LLVM 7.0 require C++11. +# Full C++11 support is only available from Marshmallow and up. +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow) +# Fall back to LLVM 3.0. +REACTOR_USE_SUBZERO := false +REACTOR_LLVM_VERSION := 3 +endif + +# Check whether $(TARGET_ARCH) is supported. +ifeq ($(REACTOR_LLVM_VERSION),3) +ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm)) +swiftshader_unsupported_build := true +endif +endif + +ifeq ($(REACTOR_LLVM_VERSION),7) +ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm arm64)) +swiftshader_unsupported_build := true +endif +endif + +ifneq ($(swiftshader_unsupported_build),true) +include $(swiftshader_root)/src/Android.mk +include $(swiftshader_root)/tests/GLESUnitTests/Android.mk +ifeq ($(REACTOR_LLVM_VERSION),3) +include $(swiftshader_root)/third_party/LLVM/Android.mk +else +include $(swiftshader_root)/third_party/llvm-7.0/Android.mk +endif endif