android: enable the radeonsi driver

Based on the nice work of Paulo Sergio Travaglia <pstglia@gmail.com>.

The main modifications are:

- Include paths for LLVM header files and shared/static libraries
- Set C++ flag "c++11" to avoid compiling errors on LLVM header files
- Set defines for LLVM
- Add GALLIVM source files
- Changes path of libelf library for lollipop

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Acked-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Chih-Wei Huang
2015-05-20 11:25:34 +08:00
committed by Eric Anholt
parent 1e4081f54a
commit 1842832660
6 changed files with 40 additions and 0 deletions

View File

@@ -68,6 +68,14 @@ LOCAL_CFLAGS += \
endif endif
endif endif
ifeq ($(MESA_ENABLE_LLVM),true)
LOCAL_CFLAGS += \
-DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=2 \
-D__STDC_CONSTANT_MACROS \
-D__STDC_FORMAT_MACROS \
-D__STDC_LIMIT_MACROS
endif
LOCAL_CPPFLAGS += \ LOCAL_CPPFLAGS += \
-Wno-error=non-virtual-dtor \ -Wno-error=non-virtual-dtor \
-Wno-non-virtual-dtor -Wno-non-virtual-dtor

View File

@@ -80,6 +80,8 @@ else
MESA_BUILD_GALLIUM := false MESA_BUILD_GALLIUM := false
endif endif
MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
# add subdirectories # add subdirectories
ifneq ($(strip $(MESA_GPU_DRIVERS)),) ifneq ($(strip $(MESA_GPU_DRIVERS)),)

View File

@@ -29,4 +29,12 @@ LOCAL_C_INCLUDES += \
$(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 \
external/libcxx/include \
external/elfutils/$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),0.153/)libelf
endif
include $(MESA_COMMON_MK) include $(MESA_COMMON_MK)

View File

@@ -35,6 +35,14 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := \ LOCAL_C_INCLUDES := \
$(GALLIUM_TOP)/auxiliary/util $(GALLIUM_TOP)/auxiliary/util
ifeq ($(MESA_ENABLE_LLVM),true)
LOCAL_SRC_FILES += \
$(GALLIVM_SOURCES) \
$(GALLIVM_CPP_SOURCES)
LOCAL_CPPFLAGS := -std=c++11
endif
LOCAL_MODULE := libmesa_gallium LOCAL_MODULE := libmesa_gallium
# generate sources # generate sources

View File

@@ -30,6 +30,10 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(C_SOURCES) LOCAL_SRC_FILES := $(C_SOURCES)
ifeq ($(MESA_ENABLE_LLVM),true)
LOCAL_SRC_FILES += $(LLVM_C_FILES)
endif
LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
LOCAL_MODULE := libmesa_pipe_radeon LOCAL_MODULE := libmesa_pipe_radeon

View File

@@ -80,6 +80,7 @@ LOCAL_CFLAGS += -DGALLIUM_R600
endif endif
ifneq ($(filter radeonsi,$(MESA_GPU_DRIVERS)),) ifneq ($(filter radeonsi,$(MESA_GPU_DRIVERS)),)
gallium_DRIVERS += libmesa_pipe_radeonsi gallium_DRIVERS += libmesa_pipe_radeonsi
LOCAL_SHARED_LIBRARIES += libLLVM
LOCAL_CFLAGS += -DGALLIUM_RADEONSI LOCAL_CFLAGS += -DGALLIUM_RADEONSI
endif endif
gallium_DRIVERS += libmesa_winsys_radeon libmesa_pipe_radeon gallium_DRIVERS += libmesa_winsys_radeon libmesa_pipe_radeon
@@ -108,5 +109,14 @@ LOCAL_STATIC_LIBRARIES := \
libmesa_util \ libmesa_util \
libmesa_loader \ libmesa_loader \
ifeq ($(MESA_ENABLE_LLVM),true)
LOCAL_STATIC_LIBRARIES += \
libLLVMR600CodeGen \
libLLVMR600Desc \
libLLVMR600Info \
libLLVMR600AsmPrinter \
libelf
endif
include $(GALLIUM_COMMON_MK) include $(GALLIUM_COMMON_MK)
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)