1# Copyright (C) 2008 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15LOCAL_PATH := $(call my-dir)
16
17# HAL module implemenation, not prelinked and stored in
18# hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so
19include $(CLEAR_VARS)
20
21LOCAL_PRELINK_MODULE := false
22LOCAL_MODULE_RELATIVE_PATH := hw
23LOCAL_SHARED_LIBRARIES := liblog libcutils libdrm \
24                          libwsbm libutils libhardware \
25                          libva libva-tpi libva-android libsync
26LOCAL_SRC_FILES := \
27    ../../common/base/Drm.cpp \
28    ../../common/base/HwcLayer.cpp \
29    ../../common/base/HwcLayerList.cpp \
30    ../../common/base/Hwcomposer.cpp \
31    ../../common/base/HwcModule.cpp \
32    ../../common/base/DisplayAnalyzer.cpp \
33    ../../common/base/VsyncManager.cpp \
34    ../../common/buffers/BufferCache.cpp \
35    ../../common/buffers/GraphicBuffer.cpp \
36    ../../common/buffers/BufferManager.cpp \
37    ../../common/devices/PhysicalDevice.cpp \
38    ../../common/devices/PrimaryDevice.cpp \
39    ../../common/devices/ExternalDevice.cpp \
40    ../../common/devices/VirtualDevice.cpp \
41    ../../common/observers/UeventObserver.cpp \
42    ../../common/observers/VsyncEventObserver.cpp \
43    ../../common/observers/SoftVsyncObserver.cpp \
44    ../../common/observers/MultiDisplayObserver.cpp \
45    ../../common/planes/DisplayPlane.cpp \
46    ../../common/planes/DisplayPlaneManager.cpp \
47    ../../common/utils/Dump.cpp
48
49
50LOCAL_SRC_FILES += \
51    ../../ips/common/BlankControl.cpp \
52    ../../ips/common/HdcpControl.cpp \
53    ../../ips/common/DrmControl.cpp \
54    ../../ips/common/VsyncControl.cpp \
55    ../../ips/common/PrepareListener.cpp \
56    ../../ips/common/OverlayPlaneBase.cpp \
57    ../../ips/common/SpritePlaneBase.cpp \
58    ../../ips/common/PixelFormat.cpp \
59    ../../ips/common/GrallocBufferBase.cpp \
60    ../../ips/common/GrallocBufferMapperBase.cpp \
61    ../../ips/common/TTMBufferMapper.cpp \
62    ../../ips/common/DrmConfig.cpp \
63    ../../ips/common/VideoPayloadManager.cpp \
64    ../../ips/common/Wsbm.cpp \
65    ../../ips/common/WsbmWrapper.c \
66    ../../ips/common/RotationBufferProvider.cpp
67
68LOCAL_SRC_FILES += \
69    ../../ips/tangier/TngGrallocBuffer.cpp \
70    ../../ips/tangier/TngGrallocBufferMapper.cpp \
71    ../../ips/tangier/TngDisplayQuery.cpp \
72    ../../ips/tangier/TngDisplayContext.cpp
73
74
75LOCAL_SRC_FILES += \
76    ../../ips/anniedale/AnnPlaneManager.cpp \
77    ../../ips/anniedale/AnnOverlayPlane.cpp \
78    ../../ips/anniedale/AnnRGBPlane.cpp \
79    ../../ips/anniedale/AnnCursorPlane.cpp \
80    ../../ips/anniedale/PlaneCapabilities.cpp
81
82
83LOCAL_SRC_FILES += \
84    PlatfBufferManager.cpp \
85    PlatFactory.cpp
86
87
88LOCAL_C_INCLUDES := $(addprefix $(LOCAL_PATH)/../../../, $(SGX_INCLUDES)) \
89    frameworks/native/include/media/openmax \
90    $(TARGET_OUT_HEADERS)/khronos/openmax \
91    frameworks/native/opengl/include \
92    hardware/libhardware_legacy/include/hardware_legacy \
93    prebuilts/intel/vendor/intel/hardware/prebuilts/$(REF_DEVICE_NAME)/rgx \
94    prebuilts/intel/vendor/intel/hardware/prebuilts/$(REF_DEVICE_NAME)/rgx/include \
95    vendor/intel/hardware/PRIVATE/widi/libhwcwidi/ \
96    system/core \
97    system/core/libsync/include \
98    $(TARGET_OUT_HEADERS)/drm \
99    $(TARGET_OUT_HEADERS)/libdrm \
100    $(TARGET_OUT_HEADERS)/libdrm/shared-core \
101    $(TARGET_OUT_HEADERS)/libwsbm/wsbm \
102    $(TARGET_OUT_HEADERS)/libttm \
103    $(TARGET_OUT_HEADERS)/libva
104
105LOCAL_C_INCLUDES += $(LOCAL_PATH) \
106    $(LOCAL_PATH)/../../include \
107    $(LOCAL_PATH)/../../include/pvr/hal \
108    $(LOCAL_PATH)/../../common/base \
109    $(LOCAL_PATH)/../../common/buffers \
110    $(LOCAL_PATH)/../../common/devices \
111    $(LOCAL_PATH)/../../common/observers \
112    $(LOCAL_PATH)/../../common/planes \
113    $(LOCAL_PATH)/../../common/utils \
114    $(LOCAL_PATH)/../../ips/ \
115    $(LOCAL_PATH)/
116
117
118LOCAL_MODULE_TAGS := optional
119LOCAL_MODULE := hwcomposer.$(TARGET_BOARD_PLATFORM)
120LOCAL_CFLAGS += -DLINUX
121
122ifeq ($(INTEL_WIDI), true)
123   LOCAL_SHARED_LIBRARIES += libhwcwidi libbinder
124   LOCAL_CFLAGS += -DINTEL_WIDI
125endif
126
127ifeq ($(TARGET_HAS_MULTIPLE_DISPLAY),true)
128   LOCAL_SHARED_LIBRARIES += libmultidisplay libbinder
129   LOCAL_CFLAGS += -DTARGET_HAS_MULTIPLE_DISPLAY
130endif
131
132LOCAL_COPY_HEADERS := \
133    ../../include/pvr/hal/img_gralloc.h \
134    ../../include/pvr/hal/img_gralloc1.h \
135    ../../include/pvr/hal/img_gralloc_common_public.h \
136    ../../include/pvr/hal/hal_public.h
137LOCAL_COPY_HEADERS_TO := pvr/hal
138
139ifneq ($(TARGET_BUILD_VARIANT),user)
140   LOCAL_CFLAGS += -DHWC_TRACE_FPS
141endif
142
143include $(BUILD_SHARED_LIBRARY)
144
145