| # |
| # 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 |