DRM_GPU_DRIVERS := $(strip $(filter-out swrast, $(BOARD_GPU_DRIVERS)))
-intel_drivers := i915 i965 i915g
-radeon_drivers := r300g r600g
+freedreno_drivers := freedreno
+intel_drivers := i915 i965 i915g ilo
+radeon_drivers := r300g r600g radeonsi
nouveau_drivers := nouveau
-vmwgfx_drivers := vmwgfx
valid_drivers := \
prebuilt \
+ $(freedreno_drivers) \
$(intel_drivers) \
$(radeon_drivers) \
- $(nouveau_drivers) \
- $(vmwgfx_drivers)
-
-# warn about invalid drivers
-invalid_drivers := $(filter-out $(valid_drivers), $(DRM_GPU_DRIVERS))
-ifneq ($(invalid_drivers),)
-$(warning invalid GPU drivers: $(invalid_drivers))
-# tidy up
-DRM_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(DRM_GPU_DRIVERS))
-endif
+ $(nouveau_drivers)
-ifneq ($(filter $(vmwgfx_drivers), $(DRM_GPU_DRIVERS)),)
-DRM_USES_PIPE := true
-else
-DRM_USES_PIPE := false
+# Assume other driver names are pipe drivers
+ifneq ($(filter-out $(valid_drivers), $(DRM_GPU_DRIVERS)),)
+DRM_GPU_DRIVERS += pipe
endif
ifneq ($(strip $(DRM_GPU_DRIVERS)),)
LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := gralloc.$(TARGET_PRODUCT)
-LOCAL_MODULE_TAGS := optional
+# Use the PREBUILT libraries
ifeq ($(strip $(DRM_GPU_DRIVERS)),prebuilt)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw/
+include $(CLEAR_VARS)
+LOCAL_MODULE := libgralloc_drm
+LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := ../../$(BOARD_GPU_DRIVER_BINARY)
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := $(TARGET_SHLIB_SUFFIX)
include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_MODULE := gralloc.$(TARGET_PRODUCT)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_SRC_FILES := ../../$(BOARD_GPU_DRIVER_BINARY)
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_SUFFIX := $(TARGET_SHLIB_SUFFIX)
+include $(BUILD_PREBUILT)
+
+# Use the sources
else
+include $(CLEAR_VARS)
+LOCAL_MODULE := libgralloc_drm
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_CFLAGS := -std=c99
+
LOCAL_SRC_FILES := \
- gralloc.c \
gralloc_drm.c \
gralloc_drm_kms.c
-LOCAL_C_INCLUDES := \
- external/drm \
- external/drm/include/drm
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+ $(LOCAL_PATH)
LOCAL_SHARED_LIBRARIES := \
libdrm \
liblog \
libcutils \
+ libhardware_legacy \
-# for glFlush/glFinish
-LOCAL_SHARED_LIBRARIES += \
- libGLESv1_CM
+ifneq ($(filter $(freedreno_drivers), $(DRM_GPU_DRIVERS)),)
+LOCAL_SRC_FILES += gralloc_drm_freedreno.c
+LOCAL_CFLAGS += -DENABLE_FREEDRENO
+LOCAL_SHARED_LIBRARIES += libdrm_freedreno
+endif
ifneq ($(filter $(intel_drivers), $(DRM_GPU_DRIVERS)),)
LOCAL_SRC_FILES += gralloc_drm_intel.c
-LOCAL_C_INCLUDES += external/drm/intel
LOCAL_CFLAGS += -DENABLE_INTEL
LOCAL_SHARED_LIBRARIES += libdrm_intel
endif
ifneq ($(filter $(radeon_drivers), $(DRM_GPU_DRIVERS)),)
LOCAL_SRC_FILES += gralloc_drm_radeon.c
-LOCAL_C_INCLUDES += external/drm/radeon
LOCAL_CFLAGS += -DENABLE_RADEON
LOCAL_SHARED_LIBRARIES += libdrm_radeon
endif
ifneq ($(filter $(nouveau_drivers), $(DRM_GPU_DRIVERS)),)
LOCAL_SRC_FILES += gralloc_drm_nouveau.c
-LOCAL_C_INCLUDES += external/drm/nouveau
LOCAL_CFLAGS += -DENABLE_NOUVEAU
LOCAL_SHARED_LIBRARIES += libdrm_nouveau
endif
-ifeq ($(strip $(DRM_USES_PIPE)),true)
+ifneq ($(filter pipe, $(DRM_GPU_DRIVERS)),)
LOCAL_SRC_FILES += gralloc_drm_pipe.c
LOCAL_CFLAGS += -DENABLE_PIPE
LOCAL_C_INCLUDES += \
+ external/mesa/include \
+ external/mesa/src \
external/mesa/src/gallium/include \
- external/mesa/src/gallium/winsys \
- external/mesa/src/gallium/drivers \
external/mesa/src/gallium/auxiliary
-ifneq ($(filter r600g, $(DRM_GPU_DRIVERS)),)
-LOCAL_CFLAGS += -DENABLE_PIPE_R600
-LOCAL_STATIC_LIBRARIES += \
- libmesa_pipe_r600 \
- libmesa_winsys_r600
-endif
-ifneq ($(filter vmwgfx, $(DRM_GPU_DRIVERS)),)
-LOCAL_CFLAGS += -DENABLE_PIPE_VMWGFX
-LOCAL_STATIC_LIBRARIES += \
- libmesa_pipe_svga \
- libmesa_winsys_svga
-LOCAL_C_INCLUDES += \
- external/mesa/src/gallium/drivers/svga/include
-endif
-LOCAL_STATIC_LIBRARIES += \
- libmesa_gallium
LOCAL_SHARED_LIBRARIES += libdl
-endif # DRM_USES_PIPE
+endif # pipe_drivers
+
+include $(BUILD_SHARED_LIBRARY)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := \
+ gralloc.c \
+
+LOCAL_SHARED_LIBRARIES := \
+ libgralloc_drm \
+ libdrm \
+ liblog \
+
+# for glFlush/glFinish
+LOCAL_SHARED_LIBRARIES += \
+ libGLESv1_CM
+
+LOCAL_MODULE := gralloc.drm
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_RELATIVE_PATH := hw
include $(BUILD_SHARED_LIBRARY)
endif # DRM_GPU_DRIVERS=prebuilt