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
26
27LOCAL_HEADER_LIBRARIES := libsystem_headers
28
29LOCAL_SRC_FILES := \
30    ../../common/base/Drm.cpp \
31    ../../common/base/HwcLayer.cpp \
32    ../../common/base/HwcLayerList.cpp \
33    ../../common/base/Hwcomposer.cpp \
34    ../../common/base/HwcModule.cpp \
35    ../../common/base/DisplayAnalyzer.cpp \
36    ../../common/base/VsyncManager.cpp \
37    ../../common/buffers/BufferCache.cpp \
38    ../../common/buffers/GraphicBuffer.cpp \
39    ../../common/buffers/BufferManager.cpp \
40    ../../common/devices/PhysicalDevice.cpp \
41    ../../common/devices/PrimaryDevice.cpp \
42    ../../common/devices/ExternalDevice.cpp \
43    ../../common/devices/VirtualDevice.cpp \
44    ../../common/observers/UeventObserver.cpp \
45    ../../common/observers/VsyncEventObserver.cpp \
46    ../../common/observers/SoftVsyncObserver.cpp \
47    ../../common/observers/MultiDisplayObserver.cpp \
48    ../../common/planes/DisplayPlane.cpp \
49    ../../common/planes/DisplayPlaneManager.cpp \
50    ../../common/utils/Dump.cpp
51
52
53LOCAL_SRC_FILES += \
54    ../../ips/common/BlankControl.cpp \
55    ../../ips/common/HdcpControl.cpp \
56    ../../ips/common/DrmControl.cpp \
57    ../../ips/common/VsyncControl.cpp \
58    ../../ips/common/PrepareListener.cpp \
59    ../../ips/common/OverlayPlaneBase.cpp \
60    ../../ips/common/SpritePlaneBase.cpp \
61    ../../ips/common/PixelFormat.cpp \
62    ../../ips/common/PlaneCapabilities.cpp \
63    ../../ips/common/GrallocBufferBase.cpp \
64    ../../ips/common/GrallocBufferMapperBase.cpp \
65    ../../ips/common/TTMBufferMapper.cpp \
66    ../../ips/common/DrmConfig.cpp \
67    ../../ips/common/VideoPayloadManager.cpp \
68    ../../ips/common/Wsbm.cpp \
69    ../../ips/common/WsbmWrapper.c \
70    ../../ips/common/RotationBufferProvider.cpp
71
72LOCAL_SRC_FILES += \
73    ../../ips/tangier/TngGrallocBuffer.cpp \
74    ../../ips/tangier/TngGrallocBufferMapper.cpp \
75    ../../ips/tangier/TngOverlayPlane.cpp \
76    ../../ips/tangier/TngPrimaryPlane.cpp \
77    ../../ips/tangier/TngSpritePlane.cpp \
78    ../../ips/tangier/TngDisplayQuery.cpp \
79    ../../ips/tangier/TngPlaneManager.cpp \
80    ../../ips/tangier/TngDisplayContext.cpp \
81    ../../ips/tangier/TngCursorPlane.cpp
82
83
84LOCAL_SRC_FILES += \
85    PlatfBufferManager.cpp \
86    PlatFactory.cpp
87
88LOCAL_C_INCLUDES := $(addprefix $(LOCAL_PATH)/../../../, $(SGX_INCLUDES)) \
89    $(call include-path-for, frameworks-native)/media/openmax \
90    $(TARGET_OUT_HEADERS)/khronos/openmax \
91    $(call include-path-for, opengl) \
92    $(call include-path-for, libhardware_legacy)/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 ($(BOARD_PANEL_IS_180_ROTATED), true)
123    $(warning  "Panel rotates 180")
124    LOCAL_CFLAGS += -DENABLE_ROTATION_180
125endif
126ifeq ($(INTEL_WIDI), true)
127   LOCAL_SHARED_LIBRARIES += libhwcwidi libbinder
128   LOCAL_CFLAGS += -DINTEL_WIDI
129endif
130
131ifeq ($(TARGET_HAS_MULTIPLE_DISPLAY),true)
132   LOCAL_SHARED_LIBRARIES += libmultidisplay libbinder
133   LOCAL_CFLAGS += -DTARGET_HAS_MULTIPLE_DISPLAY
134endif
135
136LOCAL_COPY_HEADERS := \
137    ../../include/pvr/hal/img_gralloc.h \
138    ../../include/pvr/hal/img_gralloc1.h \
139    ../../include/pvr/hal/img_gralloc_common_public.h \
140    ../../include/pvr/hal/hal_public.h
141LOCAL_COPY_HEADERS_TO := pvr/hal
142
143ifneq ($(TARGET_BUILD_VARIANT),user)
144   LOCAL_CFLAGS += -DHWC_TRACE_FPS
145endif
146
147include $(BUILD_SHARED_LIBRARY)
148
149