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/PlaneCapabilities.cpp \
60    ../../ips/common/GrallocBufferBase.cpp \
61    ../../ips/common/GrallocBufferMapperBase.cpp \
62    ../../ips/common/TTMBufferMapper.cpp \
63    ../../ips/common/DrmConfig.cpp \
64    ../../ips/common/VideoPayloadManager.cpp \
65    ../../ips/common/Wsbm.cpp \
66    ../../ips/common/WsbmWrapper.c \
67    ../../ips/common/RotationBufferProvider.cpp
68
69LOCAL_SRC_FILES += \
70    ../../ips/tangier/TngGrallocBuffer.cpp \
71    ../../ips/tangier/TngGrallocBufferMapper.cpp \
72    ../../ips/tangier/TngOverlayPlane.cpp \
73    ../../ips/tangier/TngPrimaryPlane.cpp \
74    ../../ips/tangier/TngSpritePlane.cpp \
75    ../../ips/tangier/TngDisplayQuery.cpp \
76    ../../ips/tangier/TngPlaneManager.cpp \
77    ../../ips/tangier/TngDisplayContext.cpp \
78    ../../ips/tangier/TngCursorPlane.cpp
79
80
81LOCAL_SRC_FILES += \
82    PlatfBufferManager.cpp \
83    PlatFactory.cpp
84
85LOCAL_C_INCLUDES := $(addprefix $(LOCAL_PATH)/../../../, $(SGX_INCLUDES)) \
86    $(call include-path-for, frameworks-native)/media/openmax \
87    $(TARGET_OUT_HEADERS)/khronos/openmax \
88    $(call include-path-for, opengl) \
89    $(call include-path-for, libhardware_legacy)/hardware_legacy \
90    prebuilts/intel/vendor/intel/hardware/prebuilts/$(REF_DEVICE_NAME)/rgx \
91    prebuilts/intel/vendor/intel/hardware/prebuilts/$(REF_DEVICE_NAME)/rgx/include \
92    vendor/intel/hardware/PRIVATE/widi/libhwcwidi/ \
93    system/core \
94    system/core/libsync/include \
95    $(TARGET_OUT_HEADERS)/drm \
96    $(TARGET_OUT_HEADERS)/libdrm \
97    $(TARGET_OUT_HEADERS)/libdrm/shared-core \
98    $(TARGET_OUT_HEADERS)/libwsbm/wsbm \
99    $(TARGET_OUT_HEADERS)/libttm \
100    $(TARGET_OUT_HEADERS)/libva
101
102LOCAL_C_INCLUDES += $(LOCAL_PATH) \
103    $(LOCAL_PATH)/../../include \
104    $(LOCAL_PATH)/../../include/pvr/hal \
105    $(LOCAL_PATH)/../../common/base \
106    $(LOCAL_PATH)/../../common/buffers \
107    $(LOCAL_PATH)/../../common/devices \
108    $(LOCAL_PATH)/../../common/observers \
109    $(LOCAL_PATH)/../../common/planes \
110    $(LOCAL_PATH)/../../common/utils \
111    $(LOCAL_PATH)/../../ips/ \
112    $(LOCAL_PATH)/
113
114
115LOCAL_MODULE_TAGS := optional
116LOCAL_MODULE := hwcomposer.$(TARGET_BOARD_PLATFORM)
117LOCAL_CFLAGS += -DLINUX
118
119ifeq ($(BOARD_PANEL_IS_180_ROTATED), true)
120    $(warning  "Panel rotates 180")
121    LOCAL_CFLAGS += -DENABLE_ROTATION_180
122endif
123ifeq ($(INTEL_WIDI), true)
124   LOCAL_SHARED_LIBRARIES += libhwcwidi libbinder
125   LOCAL_CFLAGS += -DINTEL_WIDI
126endif
127
128ifeq ($(TARGET_HAS_MULTIPLE_DISPLAY),true)
129   LOCAL_SHARED_LIBRARIES += libmultidisplay libbinder
130   LOCAL_CFLAGS += -DTARGET_HAS_MULTIPLE_DISPLAY
131endif
132
133LOCAL_COPY_HEADERS := \
134    ../../include/pvr/hal/hal_public.h \
135    ../../include/pvr/hal/img_gralloc_public.h
136LOCAL_COPY_HEADERS_TO := pvr/hal
137
138ifneq ($(TARGET_BUILD_VARIANT),user)
139   LOCAL_CFLAGS += -DHWC_TRACE_FPS
140endif
141
142include $(BUILD_SHARED_LIBRARY)
143
144