|  | # | 
|  | # Copyright 2015 The Android Open-Source Project | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | # you may not use this file except in compliance with the License. | 
|  | # You may obtain a copy of the License at | 
|  | # | 
|  | #      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, | 
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | # See the License for the specific language governing permissions and | 
|  | # limitations under the License. | 
|  | # | 
|  |  | 
|  | LOCAL_PATH := $(call my-dir) | 
|  | swiftshader_root := $(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 |