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
@@ -86,15 +86,6 @@ LOCAL_CFLAGS += \ | |||
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) | |||
LOCAL_CFLAGS += -DHAVE_LIBDRM | |||
LOCAL_SHARED_LIBRARIES += libdrm |
@@ -82,6 +82,19 @@ ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),) | |||
MESA_ENABLE_LLVM := true | |||
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 | |||
SUBDIRS := \ | |||
src/gbm \ |
@@ -61,11 +61,12 @@ LOCAL_EXPORT_C_INCLUDE_DIRS := \ | |||
$(LOCAL_PATH)/common | |||
LOCAL_STATIC_LIBRARIES := \ | |||
libLLVMCore \ | |||
libmesa_nir | |||
LOCAL_WHOLE_STATIC_LIBRARIES := \ | |||
libelf | |||
$(call mesa-build-with-llvm) | |||
include $(MESA_COMMON_MK) | |||
include $(BUILD_STATIC_LIBRARY) |
@@ -29,10 +29,4 @@ LOCAL_C_INCLUDES += \ | |||
$(GALLIUM_TOP)/winsys \ | |||
$(GALLIUM_TOP)/drivers | |||
ifeq ($(MESA_ENABLE_LLVM),true) | |||
LOCAL_C_INCLUDES += \ | |||
external/llvm/include \ | |||
external/llvm/device/include | |||
endif | |||
include $(MESA_COMMON_MK) |
@@ -38,12 +38,12 @@ LOCAL_C_INCLUDES := \ | |||
ifeq ($(MESA_ENABLE_LLVM),true) | |||
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 | |||
LOCAL_CPPFLAGS += -std=c++11 | |||
# We need libmesa_nir to get NIR's generated include directories. | |||
LOCAL_MODULE := libmesa_gallium | |||
LOCAL_STATIC_LIBRARIES += libmesa_nir |
@@ -30,13 +30,14 @@ include $(CLEAR_VARS) | |||
LOCAL_SRC_FILES := $(C_SOURCES) | |||
LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | |||
LOCAL_MODULE := libmesa_pipe_radeon | |||
ifeq ($(MESA_ENABLE_LLVM),true) | |||
LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions | |||
$(call mesa-build-with-llvm) | |||
endif | |||
LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | |||
LOCAL_MODULE := libmesa_pipe_radeon | |||
include $(GALLIUM_COMMON_MK) | |||
include $(BUILD_STATIC_LIBRARY) | |||
@@ -43,6 +43,8 @@ LOCAL_STATIC_LIBRARIES := libmesa_amd_common | |||
LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM | |||
LOCAL_MODULE := libmesa_pipe_radeonsi | |||
$(call mesa-build-with-llvm) | |||
include $(GALLIUM_COMMON_MK) | |||
include $(BUILD_STATIC_LIBRARY) | |||
@@ -39,6 +39,8 @@ LOCAL_STATIC_LIBRARIES := libmesa_amdgpu_addrlib | |||
LOCAL_SHARED_LIBRARIES := libdrm_amdgpu | |||
LOCAL_MODULE := libmesa_winsys_amdgpu | |||
$(call mesa-build-with-llvm) | |||
include $(GALLIUM_COMMON_MK) | |||
include $(BUILD_STATIC_LIBRARY) | |||