android13/hardware/rockchip/hwcomposer/drmhwc/Android.mk

547 lines
15 KiB
Makefile
Executable File

#
# Copyright (C) 2018 Fuzhou Rockchip Electronics Co.Ltd.
#
# Modification based on code covered by the Apache License, Version 2.0 (the "License").
# You may not use this software except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS TO YOU ON AN "AS IS" BASIS
# AND ANY AND ALL WARRANTIES AND REPRESENTATIONS WITH RESPECT TO SUCH SOFTWARE, WHETHER EXPRESS,
# IMPLIED, STATUTORY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF TITLE,
# NON-INFRINGEMENT, MERCHANTABILITY, SATISFACTROY QUALITY, ACCURACY OR FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.
#
# IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
BOARD_USES_DRM_HWCOMPOSER2=false
BOARD_USES_DRM_HWCOMPOSER=false
ifneq ($(filter rk356x rk3588 rk3528 rk3562, $(strip $(TARGET_BOARD_PLATFORM))), )
BOARD_USES_DRM_HWCOMPOSER2=true
else
BOARD_USES_DRM_HWCOMPOSER=true
endif
ifeq ($(strip $(BOARD_USES_DRM_HWCOMPOSER)),true)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := \
libcutils \
libdrm \
libEGL \
libGLESv2 \
libhardware \
liblog \
libui \
libutils \
librga
LOCAL_STATIC_LIBRARIES := \
libtinyxml2
LOCAL_C_INCLUDES := \
external/tinyxml2 \
external/libdrm \
external/libdrm/include/drm \
system/core/include/utils \
hardware/rockchip/librga
LOCAL_SRC_FILES := \
autolock.cpp \
drmresources.cpp \
drmcomposition.cpp \
drmcompositor.cpp \
drmcompositorworker.cpp \
drmconnector.cpp \
drmcrtc.cpp \
drmdisplaycomposition.cpp \
drmdisplaycompositor.cpp \
drmencoder.cpp \
drmeventlistener.cpp \
drmmode.cpp \
drmplane.cpp \
drmproperty.cpp \
glworker.cpp \
hwcomposer.cpp \
platform.cpp \
platformdrmgeneric.cpp \
platformnv.cpp \
separate_rects.cpp \
virtualcompositorworker.cpp \
vsyncworker.cpp \
worker.cpp \
hwc_util.cpp \
hwc_rockchip.cpp \
hwc_debug.cpp
# API 30 -> Android 11.0
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 30)))
LOCAL_CFLAGS += -DANDROID_R
endif
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 31)))
LOCAL_CFLAGS += -Wno-unreachable-code-loop-increment -DANDROID_S
LOCAL_HEADER_LIBRARIES += \
libhardware_rockchip_headers
endif
# API 29 -> Android 10.0
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 29)))
#DRM driver version is 2.0,kernel version is 4.19
LOCAL_CFLAGS += -DDRM_DRIVER_VERSION=2 -DUSE_NO_ASPECT_RATIO=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-tDVx)
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/bifrost \
hardware/rockchip/libgralloc/midgard
endif
ifneq (,$(filter mali-t860 mali-t760, $(TARGET_BOARD_PLATFORM_GPU)))
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/midgard
endif
ifneq (,$(filter mali400 mali450, $(TARGET_BOARD_PLATFORM_GPU)))
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/utgard
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3368)
# Android 11+
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 30)))
LOCAL_C_INCLUDES += \
system/memory/libion/original-kernel-headers
else
LOCAL_C_INCLUDES += \
system/core/libion/original-kernel-headers
endif
endif
else
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc
endif
# API 28 -> Android 9.0
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 28)))
LOCAL_CFLAGS += -DANDROID_P
LOCAL_SHARED_LIBRARIES += \
libsync_vendor
LOCAL_C_INCLUDES += \
system/core \
system/core/liblog/include \
frameworks/native/include
else #Android 9.0
LOCAL_SHARED_LIBRARIES += \
libsync
LOCAL_C_INCLUDES += \
system/core/libsync \
system/core/libsync/include
endif
ifeq ($(strip $(BOARD_DRM_HWCOMPOSER_BUFFER_IMPORTER)),nvidia-gralloc)
LOCAL_CPPFLAGS += -DUSE_NVIDIA_IMPORTER
else
# Disable afbc by default.
USE_AFBC_LAYER = 0
# RGA1: 0 RGA1_plus: 1 RGA2-Lite: 2 RGA2: 3 RGA2-Enhance: 4
RGA_VER = 3
RK_RGA_SCALE_AND_ROTATE = 1
RK_3D_VIDEO = 1
# When enter rotate video,we need improve cpu freq in some platforms.
RK_ROTATE_VIDEO_MODE = 0
# In performance mode,we get handle's parameters from gralloc_drm_handle_t instead of gralloc's perform.
# it will lead reduce compatibility. So we disable it by default.
RK_PER_MODE = 0
ifeq ($(strip $(RK_PER_MODE)), 1)
RK_PRINT_LAYER_NAME = 0
else
RK_PRINT_LAYER_NAME = 1
endif
RK_CTS_WORKROUND = 0
# vop Multi-Zone sort
RK_SORT_AREA_BY_XPOS = 1
# vop Multi-Zone can intersect in horizontal line.
RK_HOR_INTERSECT_LIMIT = 0
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-t720)
USE_AFBC_LAYER = 0
LOCAL_CPPFLAGS += -DMALI_PRODUCT_ID_T72X=1
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-t760)
# rk3288 vop cann't support AFBC.
ifneq ($(strip $(TARGET_BOARD_PLATFORM)),rk3288)
USE_AFBC_LAYER = 1
endif
LOCAL_CPPFLAGS += -DMALI_PRODUCT_ID_T76X=1
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-t860)
USE_AFBC_LAYER = 1
LOCAL_CPPFLAGS += -DMALI_PRODUCT_ID_T86X=1
endif
#ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk322x)
ifneq ($(filter rk3128h rk322x, $(strip $(TARGET_BOARD_PLATFORM))), )
RGA_VER = 2
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK322x -DRK_DRM_GRALLOC=1 \
-DMALI_AFBC_GRALLOC=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK322x_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK322x_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK322x_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK322x_VR
endif
endif
ifeq ($(strip $(TARGET_PRODUCT)),iot_rk3229_evb)
RGA_VER = 2
RK_3D_VIDEO = 0
RK_PRINT_LAYER_NAME = 0
LOCAL_CPPFLAGS += -DTARGET_PRODUCT_IOT_RK3229_EVB
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3368)
RK_RGA_SCALE_AND_ROTATE = 0
RGA_VER = 2
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3368
#USE_AFBC_LAYER = 1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3368_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3368_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3368_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3368_VR
endif
ifeq ($(strip $(PRODUCT_BUILD_MODULE)),px5car)
LOCAL_CPPFLAGS += -DUSE_PLANE_RESERVED
endif
endif
# 3399, 3399pro
ifneq ($(filter rk3399 rk3399pro, $(strip $(TARGET_BOARD_PLATFORM))), )
USE_AFBC_LAYER = 1
RGA_VER = 4
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3399 \
-DMALI_AFBC_GRALLOC=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3399_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3399_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3399_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3399_VR
endif
# Gralloc 4.0
ifeq ($(TARGET_RK_GRALLOC_VERSION),4)
LOCAL_CFLAGS += -DUSE_GRALLOC_4=1
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/midgard/src \
hardware/libhardware/include
LOCAL_SRC_FILES += \
drmgralloc4.cpp
LOCAL_SHARED_LIBRARIES += \
libhidlbase \
libgralloctypes \
android.hardware.graphics.mapper@4.0
LOCAL_HEADER_LIBRARIES += \
libgralloc_headers
else
LOCAL_CPPFLAGS += -DRK_DRM_GRALLOC=1
endif
endif
# 3366
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3366)
RGA_VER = 2
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3366 -DRK_DRM_GRALLOC=1 \
-DMALI_AFBC_GRALLOC=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3366_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3366_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3366_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3366_VR
endif
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3288)
RGA_VER = 3
RK_CTS_WORKROUND = 0
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3288 \
-DMALI_AFBC_GRALLOC=1
LOCAL_CPPFLAGS += -DRK_MULTI_AREAS_FORMAT_LIMIT
RK_SORT_AREA_BY_XPOS = 0
RK_HOR_INTERSECT_LIMIT = 1
RK_ROTATE_VIDEO_MODE = 1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3288_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3288_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3288_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3288_VR
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),stbvr)
LOCAL_CPPFLAGS += -DRK3288_VR
endif
# Gralloc 4.0
ifeq ($(TARGET_RK_GRALLOC_VERSION),4)
LOCAL_CFLAGS += -DUSE_GRALLOC_4=1
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/midgard/src \
hardware/libhardware/include
LOCAL_SRC_FILES += \
drmgralloc4.cpp
LOCAL_SHARED_LIBRARIES += \
libhidlbase \
libgralloctypes \
android.hardware.graphics.mapper@4.0
LOCAL_HEADER_LIBRARIES += \
libgralloc_headers
else
+LOCAL_CPPFLAGS += -DRK_DRM_GRALLOC=1
endif
endif
ifneq ($(filter rk3328 rk3228h, $(TARGET_BOARD_PLATFORM)),)
RK_VER = 2
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3328 -DRK_DRM_GRALLOC=1 \
-DMALI_AFBC_GRALLOC=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3328_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3328_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3328_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3328_VR
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),stbvr)
LOCAL_CPPFLAGS += -DRK3328_VR
endif
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3126c)
# disable scale when using rga1/rga1_plus.
RK_RGA_SCALE_AND_ROTATE = 0
RGA_VER = 1
RK_CTS_WORKROUND = 1
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3126C -DRK_DRM_GRALLOC=1 \
-DMALI_AFBC_GRALLOC=1
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3126C_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3126C_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3126C_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3126C_VR
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),stbvr)
LOCAL_CPPFLAGS += -DRK3126C_VR
endif
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3326)
USE_AFBC_LAYER = 1
RGA_VER = 2
LOCAL_CPPFLAGS += -DTARGET_BOARD_PLATFORM_RK3326 \
-DMALI_AFBC_GRALLOC=1
LOCAL_CPPFLAGS += -DRK_MULTI_AREAS_FORMAT_LIMIT
RK_SORT_AREA_BY_XPOS = 0
RK_HOR_INTERSECT_LIMIT = 1
# Gralloc 4.0
ifeq ($(TARGET_RK_GRALLOC_VERSION),4)
LOCAL_CFLAGS += -DUSE_GRALLOC_4=1
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/bifrost/src \
hardware/rockchip/libgralloc/midgard/src \
hardware/libhardware/include
LOCAL_SRC_FILES += \
drmgralloc4.cpp
LOCAL_SHARED_LIBRARIES += \
libhidlbase \
libgralloctypes \
android.hardware.graphics.mapper@4.0
LOCAL_HEADER_LIBRARIES += \
libgralloc_headers
else
LOCAL_CPPFLAGS += -DRK_DRM_GRALLOC=1
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CPPFLAGS += -DRK3326_MID
endif
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CPPFLAGS += -DRK3326_BOX
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CPPFLAGS += -DRK3326_PHONE
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CPPFLAGS += -DRK3326_VR
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),stbvr)
LOCAL_CPPFLAGS += -DRK3326_VR
endif
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),tablet)
LOCAL_CFLAGS += -DRK_MID
else
ifneq ($(filter box atv, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
LOCAL_CFLAGS += -DRK_BOX
# Disable afbc in box platform.
USE_AFBC_LAYER = 0
else
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),phone)
LOCAL_CFLAGS += -DRK_PHONE
else
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),vr)
LOCAL_CFLAGS += -DRK_VIR
else
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),stbvr)
LOCAL_CFLAGS += -DRK_VIR
endif #stbvr
endif #vr
endif #phone
endif #box
endif #tablet
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3126c)
RK_INVALID_REFRESH = 0
else
RK_INVALID_REFRESH = 1
endif
ifeq ($(TARGET_USES_HWC2),true)
LOCAL_CFLAGS += -DUSE_HWC2
endif
# DUAL_VIEW_MODE enable
ifeq ($(strip $(BOARD_MULTISCREEN_SPLICING)),true)
LOCAL_CPPFLAGS += -DDUAL_VIEW_MODE=1
else
LOCAL_CPPFLAGS += -DDUAL_VIEW_MODE=0
endif
#USE_PLANE_RESERVED enable
#LOCAL_CPPFLAGS += -DUSE_PLANE_RESERVED
# RK_RGA_PREPARE_ASYNC and RK_RGA_COMPSITE_SYNC are exclusive.
# RK_RGA_PREPARE_ASYNC: use async rga in hwc_prepare.
# RK_RGA_COMPSITE_SYNC: use sync rga in composite thread.
LOCAL_CPPFLAGS += -DUSE_SQUASH=0 -DRK_RGA_TEST=0 -DRK_VR=0 -DRK_STEREO=0 -DUSE_GL_WORKER=0
LOCAL_CPPFLAGS += -DUSE_DRM_GENERIC_IMPORTER \
-DUSE_MULTI_AREAS=1 -DRK_RGA_PREPARE_ASYNC=1 -DRK_RGA_COMPSITE_SYNC=0 \
-DUSE_AFBC_LAYER=$(USE_AFBC_LAYER) -DRK_SKIP_SUB=1 \
-DRK_VIDEO_UI_OPT=1 -DRK_VIDEO_SKIP_LINE=1 \
-DRK_INVALID_REFRESH=$(RK_INVALID_REFRESH) -DRK_HDR_PERF_MODE=0 \
-DRK_3D_VIDEO=$(RK_3D_VIDEO) -DRK_PRINT_LAYER_NAME=$(RK_PRINT_LAYER_NAME) \
-DRK_SORT_AREA_BY_XPOS=$(RK_SORT_AREA_BY_XPOS) -DRK_HOR_INTERSECT_LIMIT=$(RK_HOR_INTERSECT_LIMIT) \
-DRK_RGA_SCALE_AND_ROTATE=$(RK_RGA_SCALE_AND_ROTATE) \
-DRGA_VER=$(RGA_VER) -DRK_PER_MODE=$(RK_PER_MODE) -DRK_ROTATE_VIDEO_MODE=$(RK_ROTATE_VIDEO_MODE) \
-DRK_CTS_WORKROUND=$(RK_CTS_WORKROUND)
MAJOR_VERSION := "RK_GRAPHICS_VER=commit-id:$(shell cd $(LOCAL_PATH) && git log -1 --oneline | awk '{print $$1}')"
LOCAL_CPPFLAGS += -DRK_GRAPHICS_VER=\"$(MAJOR_VERSION)\"
endif
ifeq ($(strip $(TARGET_PRODUCT)),iot_rk3229_evb)
LOCAL_MODULE := hwcomposer.rk3229
else
LOCAL_MODULE := hwcomposer.$(TARGET_BOARD_HARDWARE)
endif
# API 26 -> Android 8.0
ifeq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \>= 26)))
LOCAL_PROPRIETARY_MODULE := true
endif
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -Wno-unused-function -Wno-unused-parameter
LOCAL_CFLAGS += -Wno-unused-variable
LOCAL_CFLAGS += -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := $(TARGET_SHLIB_SUFFIX)
include $(BUILD_SHARED_LIBRARY)
endif