Currently, building with "mmma external/mesa3d" which builds all targets and dependencies is broken for targets that require LLVM. This is due to the build settings depending on MESA_ENABLE_LLVM. Instead of using a conditional in the global Android.common.mk, make all the components that need LLVM explicitly include the necessary build settings. GALLIVM_CPP_SOURCES doesn't exist anymore, so remove that as well. Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>tags/17.2-branchpoint
| endif | endif | ||||
| endif | endif | ||||
| ifeq ($(MESA_ENABLE_LLVM),true) | |||||
| ifeq ($(MESA_ANDROID_MAJOR_VERSION),6) | |||||
| LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0 | |||||
| endif | |||||
| ifeq ($(MESA_ANDROID_MAJOR_VERSION),7) | |||||
| LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0 | |||||
| endif | |||||
| endif | |||||
| ifneq ($(LOCAL_IS_HOST_MODULE),true) | ifneq ($(LOCAL_IS_HOST_MODULE),true) | ||||
| LOCAL_CFLAGS += -DHAVE_LIBDRM | LOCAL_CFLAGS += -DHAVE_LIBDRM | ||||
| LOCAL_SHARED_LIBRARIES += libdrm | LOCAL_SHARED_LIBRARIES += libdrm |
| MESA_ENABLE_LLVM := true | MESA_ENABLE_LLVM := true | ||||
| endif | endif | ||||
| define mesa-build-with-llvm | |||||
| $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \ | |||||
| $(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \ | |||||
| $(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \ | |||||
| $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0) \ | |||||
| $(eval LOCAL_STATIC_LIBRARIES += libLLVMCore) \ | |||||
| $(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) \ | |||||
| $(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \ | |||||
| $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0) \ | |||||
| $(eval LOCAL_STATIC_LIBRARIES += libLLVMCore) \ | |||||
| $(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) | |||||
| endef | |||||
| # add subdirectories | # add subdirectories | ||||
| SUBDIRS := \ | SUBDIRS := \ | ||||
| src/gbm \ | src/gbm \ |
| $(LOCAL_PATH)/common | $(LOCAL_PATH)/common | ||||
| LOCAL_STATIC_LIBRARIES := \ | LOCAL_STATIC_LIBRARIES := \ | ||||
| libLLVMCore \ | |||||
| libmesa_nir | libmesa_nir | ||||
| LOCAL_WHOLE_STATIC_LIBRARIES := \ | LOCAL_WHOLE_STATIC_LIBRARIES := \ | ||||
| libelf | libelf | ||||
| $(call mesa-build-with-llvm) | |||||
| include $(MESA_COMMON_MK) | include $(MESA_COMMON_MK) | ||||
| include $(BUILD_STATIC_LIBRARY) | include $(BUILD_STATIC_LIBRARY) |
| $(GALLIUM_TOP)/winsys \ | $(GALLIUM_TOP)/winsys \ | ||||
| $(GALLIUM_TOP)/drivers | $(GALLIUM_TOP)/drivers | ||||
| ifeq ($(MESA_ENABLE_LLVM),true) | |||||
| LOCAL_C_INCLUDES += \ | |||||
| external/llvm/include \ | |||||
| external/llvm/device/include | |||||
| endif | |||||
| include $(MESA_COMMON_MK) | include $(MESA_COMMON_MK) |
| ifeq ($(MESA_ENABLE_LLVM),true) | ifeq ($(MESA_ENABLE_LLVM),true) | ||||
| LOCAL_SRC_FILES += \ | LOCAL_SRC_FILES += \ | ||||
| $(GALLIVM_SOURCES) \ | |||||
| $(GALLIVM_CPP_SOURCES) | |||||
| LOCAL_STATIC_LIBRARIES += libLLVMCore | |||||
| LOCAL_CPPFLAGS := -std=c++11 | |||||
| $(GALLIVM_SOURCES) | |||||
| $(call mesa-build-with-llvm) | |||||
| endif | endif | ||||
| LOCAL_CPPFLAGS += -std=c++11 | |||||
| # We need libmesa_nir to get NIR's generated include directories. | # We need libmesa_nir to get NIR's generated include directories. | ||||
| LOCAL_MODULE := libmesa_gallium | LOCAL_MODULE := libmesa_gallium | ||||
| LOCAL_STATIC_LIBRARIES += libmesa_nir | LOCAL_STATIC_LIBRARIES += libmesa_nir |
| LOCAL_SRC_FILES := $(C_SOURCES) | LOCAL_SRC_FILES := $(C_SOURCES) | ||||
| LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | |||||
| LOCAL_MODULE := libmesa_pipe_radeon | |||||
| ifeq ($(MESA_ENABLE_LLVM),true) | ifeq ($(MESA_ENABLE_LLVM),true) | ||||
| LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions | LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions | ||||
| $(call mesa-build-with-llvm) | |||||
| endif | endif | ||||
| LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | |||||
| LOCAL_MODULE := libmesa_pipe_radeon | |||||
| include $(GALLIUM_COMMON_MK) | include $(GALLIUM_COMMON_MK) | ||||
| include $(BUILD_STATIC_LIBRARY) | include $(BUILD_STATIC_LIBRARY) | ||||
| LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | ||||
| LOCAL_MODULE := libmesa_pipe_radeonsi | LOCAL_MODULE := libmesa_pipe_radeonsi | ||||
| $(call mesa-build-with-llvm) | |||||
| include $(GALLIUM_COMMON_MK) | include $(GALLIUM_COMMON_MK) | ||||
| include $(BUILD_STATIC_LIBRARY) | include $(BUILD_STATIC_LIBRARY) | ||||
| LOCAL_SHARED_LIBRARIES := libdrm_amdgpu | LOCAL_SHARED_LIBRARIES := libdrm_amdgpu | ||||
| LOCAL_MODULE := libmesa_winsys_amdgpu | LOCAL_MODULE := libmesa_winsys_amdgpu | ||||
| $(call mesa-build-with-llvm) | |||||
| include $(GALLIUM_COMMON_MK) | include $(GALLIUM_COMMON_MK) | ||||
| include $(BUILD_STATIC_LIBRARY) | include $(BUILD_STATIC_LIBRARY) | ||||