1 # 2 # Copyright (C) 2016 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 17 LOCAL_PATH := $(call my-dir) 18 LLVM_ROOT_PATH := external/llvm 19 LIBBCC_ROOT_PATH := frameworks/compile/libbcc 20 LIBSPIRV_ROOT_PATH := external/spirv-llvm/lib/SPIRV 21 22 FORCE_RS2SPIRV_DEBUG_BUILD ?= false 23 RS2SPRIV_DEVICE_BUILD ?= true 24 25 RS2SPIRV_SOURCES := \ 26 rs2spirv.cpp \ 27 Builtin.cpp \ 28 Context.cpp \ 29 GlobalAllocPass.cpp \ 30 GlobalAllocSPIRITPass.cpp \ 31 GlobalMergePass.cpp \ 32 InlinePreparationPass.cpp \ 33 RemoveNonkernelsPass.cpp \ 34 RSAllocationUtils.cpp \ 35 RSSPIRVWriter.cpp \ 36 Wrapper.cpp \ 37 38 RS2SPIRV_INCLUDES := \ 39 $(LIBSPIRV_ROOT_PATH) \ 40 $(LIBSPIRV_ROOT_PATH)/Mangler \ 41 $(LIBSPIRV_ROOT_PATH)/libSPIRV \ 42 $(LIBBCC_ROOT_PATH)/include \ 43 $(LLVM_ROOT_PATH)/include \ 44 $(LLVM_ROOT_PATH)/host/include 45 46 #===================================================================== 47 # Unit tests for Wrapper module 48 #===================================================================== 49 50 include $(CLEAR_VARS) 51 include $(CLEAR_TBLGEN_VARS) 52 53 LOCAL_SRC_FILES := \ 54 Builtin.cpp \ 55 Context.cpp \ 56 GlobalAllocSPIRITPass.cpp \ 57 RSAllocationUtils.cpp \ 58 Wrapper.cpp \ 59 Wrapper_test.cpp \ 60 61 LOCAL_STATIC_LIBRARIES := libgtest_host 62 63 LOCAL_SHARED_LIBRARIES := libLLVM_android libbcinfo libspirit 64 65 LOCAL_C_INCLUDES := \ 66 $(LLVM_ROOT_PATH)/include \ 67 $(LLVM_ROOT_PATH)/host/include 68 69 # End protobuf section 70 71 LOCAL_MODULE := Wrapper_test 72 LOCAL_MULTILIB := first 73 LOCAL_MODULE_TAGS := tests 74 75 LOCAL_MODULE_CLASS := NATIVE_TESTS 76 77 include $(LLVM_ROOT_PATH)/llvm.mk 78 include $(LLVM_HOST_BUILD_MK) 79 include $(LLVM_GEN_INTRINSICS_MK) 80 include $(LLVM_GEN_ATTRIBUTES_MK) 81 include $(BUILD_HOST_NATIVE_TEST) 82 83 #===================================================================== 84 # Unit tests for Builtin module 85 #===================================================================== 86 87 include $(CLEAR_VARS) 88 include $(CLEAR_TBLGEN_VARS) 89 90 LOCAL_SRC_FILES := \ 91 Builtin.cpp \ 92 Builtin_test.cpp \ 93 94 LOCAL_STATIC_LIBRARIES := libgtest_host 95 96 LOCAL_SHARED_LIBRARIES := libspirit 97 98 # End protobuf section 99 100 LOCAL_MODULE := Builtin_test 101 LOCAL_MULTILIB := first 102 LOCAL_MODULE_TAGS := tests 103 LOCAL_CFLAGS := -Wall -Werror 104 105 LOCAL_MODULE_CLASS := NATIVE_TESTS 106 107 include $(BUILD_HOST_NATIVE_TEST) 108 109 #===================================================================== 110 # Host Executable rs2spirv 111 #===================================================================== 112 113 # Don't build for unbundled branches 114 ifeq (,$(TARGET_BUILD_APPS)) 115 116 include $(CLEAR_VARS) 117 include $(CLEAR_TBLGEN_VARS) 118 119 LOCAL_SRC_FILES := \ 120 $(RS2SPIRV_SOURCES) 121 122 LOCAL_C_INCLUDES := \ 123 $(RS2SPIRV_INCLUDES) 124 125 LOCAL_MODULE := rs2spirv 126 LOCAL_MODULE_CLASS := EXECUTABLES 127 128 # TODO: fix the remaining warnings 129 130 LOCAL_CFLAGS += $(TOOL_CFLAGS) \ 131 -D_SPIRV_LLVM_API \ 132 -Wno-error=pessimizing-move \ 133 -Wno-error=unused-variable \ 134 -Wno-error=unused-private-field \ 135 -Wno-error=unused-function \ 136 -Wno-error=dangling-else \ 137 -Wno-error=ignored-qualifiers \ 138 -Wno-error=non-virtual-dtor 139 140 ifeq (true, $(FORCE_RS2SPIRV_DEBUG_BUILD)) 141 LOCAL_CFLAGS += -O0 -DRS2SPIRV_DEBUG=1 142 endif 143 144 LOCAL_SHARED_LIBRARIES := libLLVM_android libbcinfo libSPIRV libspirit 145 146 include $(LLVM_ROOT_PATH)/llvm.mk 147 include $(LLVM_HOST_BUILD_MK) 148 include $(LLVM_GEN_INTRINSICS_MK) 149 include $(LLVM_GEN_ATTRIBUTES_MK) 150 include $(BUILD_HOST_EXECUTABLE) 151 152 endif # Don't build in unbundled branches 153 154 #===================================================================== 155 # Device Executable rs2spirv 156 #===================================================================== 157 158 ifneq (true,$(RS2SPRIV_DEVICE_BUILD))) 159 160 include $(CLEAR_VARS) 161 include $(CLEAR_TBLGEN_VARS) 162 163 LOCAL_SRC_FILES := \ 164 $(RS2SPIRV_SOURCES) 165 166 LOCAL_C_INCLUDES := \ 167 $(RS2SPIRV_INCLUDES) 168 169 LOCAL_MODULE := rs2spirv 170 LOCAL_MODULE_CLASS := EXECUTABLES 171 172 LOCAL_SHARED_LIBRARIES += libLLVM_android libbcinfo libSPIRV libspirit 173 174 LOCAL_CFLAGS += $(TOOL_CFLAGS) \ 175 -D_SPIRV_LLVM_API \ 176 -Wno-error=pessimizing-move \ 177 -Wno-error=unused-variable \ 178 -Wno-error=unused-private-field \ 179 -Wno-error=unused-function \ 180 -Wno-error=dangling-else \ 181 -Wno-error=ignored-qualifiers \ 182 -Wno-error=non-virtual-dtor \ 183 184 ifeq (true, $(FORCE_RS2SPIRV_DEBUG_BUILD)) 185 LOCAL_CFLAGS += -O0 -DRS2SPIRV_DEBUG=1 186 endif 187 188 include $(LLVM_GEN_INTRINSICS_MK) 189 include $(LLVM_GEN_ATTRIBUTES_MK) 190 include $(LLVM_DEVICE_BUILD_MK) 191 include $(BUILD_EXECUTABLE) 192 193 endif # Don't build in unbundled branches 194 195 #===================================================================== 196 # Include Subdirectories 197 #===================================================================== 198 199 include $(call all-makefiles-under,$(LOCAL_PATH)) 200