blob: ab4782840a22200333f6361c0ecf7975fc20b0b0
1 | # |
2 | # Copyright (C) 2010 ARM Limited. All rights reserved. |
3 | # |
4 | # Copyright (C) 2008 The Android Open Source Project |
5 | # |
6 | # Licensed under the Apache License, Version 2.0 (the "License"); |
7 | # you may not use this file except in compliance with the License. |
8 | # You may obtain a copy of the License at |
9 | # |
10 | # http://www.apache.org/licenses/LICENSE-2.0 |
11 | # |
12 | # Unless required by applicable law or agreed to in writing, software |
13 | # distributed under the License is distributed on an "AS IS" BASIS, |
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15 | # See the License for the specific language governing permissions and |
16 | # limitations under the License. |
17 | |
18 | LOCAL_PATH := $(call my-dir) |
19 | |
20 | # Include platform specific makefiles |
21 | include $(if $(wildcard $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk), $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk,) |
22 | |
23 | MALI_ION?=1 |
24 | GRALLOC_VSYNC_BACKEND?=default |
25 | DISABLE_FRAMEBUFFER_HAL?=0 |
26 | MALI_SUPPORT_AFBC_WIDEBLK?=0 |
27 | GRALLOC_USE_ION_DMA_HEAP?=0 |
28 | GRALLOC_USE_ION_COMPOUND_PAGE_HEAP?=0 |
29 | |
30 | #framebuffer apis |
31 | include $(CLEAR_VARS) |
32 | ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),) |
33 | LOCAL_CFLAGS += -DNUM_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS) |
34 | endif |
35 | |
36 | ifeq ($(TARGET_EXTERNAL_DISPLAY),true) |
37 | ifeq ($(TARGET_SINGLE_EXTERNAL_DISPLAY_USE_FB1),true) |
38 | LOCAL_CFLAGS += -DSINGLE_EXTERNAL_DISPLAY_USE_FB1 |
39 | endif |
40 | endif |
41 | |
42 | LOCAL_KK=0 |
43 | ifeq ($(GPU_TYPE),t83x) |
44 | LOCAL_KK:=1 |
45 | endif |
46 | ifeq ($(GPU_ARCH),midgard) |
47 | LOCAL_KK:=1 |
48 | endif |
49 | ifeq ($(LOCAL_KK),1) |
50 | LOCAL_CFLAGS += -DMALI_AFBC_GRALLOC=1 |
51 | else |
52 | LOCAL_CFLAGS += -DMALI_AFBC_GRALLOC=0 |
53 | endif |
54 | |
55 | LOCAL_CFLAGS += -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) |
56 | LOCAL_PRELINK_MODULE := false |
57 | LOCAL_SRC_FILES := framebuffer.cpp |
58 | LOCAL_MODULE := libfbcnf |
59 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
60 | LOCAL_PROPRIETARY_MODULE := true |
61 | endif |
62 | LOCAL_SHARED_LIBRARIES := liblog libcutils libutils |
63 | LOCAL_C_INCLUDES += system/core/libion/include/ \ |
64 | system/core/libion/kernel-headers |
65 | include $(BUILD_SHARED_LIBRARY) |
66 | |
67 | # HAL module implemenation, not prelinked and stored in |
68 | # hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so |
69 | include $(CLEAR_VARS) |
70 | include $(BUILD_SYSTEM)/version_defaults.mk |
71 | |
72 | ifeq ($(LOCAL_KK),1) |
73 | LOCAL_CFLAGS += -DGRALLOC_T83X |
74 | MALI_AFBC_GRALLOC := 1 |
75 | MALI_ARCHITECTURE_UTGARD?=0 |
76 | else |
77 | MALI_AFBC_GRALLOC := 0 |
78 | MALI_ARCHITECTURE_UTGARD?=1 |
79 | endif |
80 | |
81 | ifeq ($(MALI_ARCHITECTURE_UTGARD),1) |
82 | # Utgard build settings |
83 | MALI_LOCAL_PATH?=hardware/arm/mali |
84 | GRALLOC_DEPTH?=GRALLOC_32_BITS |
85 | GRALLOC_FB_SWAP_RED_BLUE?=0 |
86 | MALI_DDK_INCLUDES=$(MALI_LOCAL_PATH)/include $(MALI_LOCAL_PATH)/src/ump/include |
87 | ifeq ($(MALI_ION),1) |
88 | ALLOCATOR_SPECIFIC_FILES := alloc_ion.cpp gralloc_module_ion.cpp |
89 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
90 | ALLOCATOR_SPECIFIC_FILES += ion_wrapper.cpp |
91 | else |
92 | ALLOCATION_LIB := libion |
93 | endif |
94 | else |
95 | ALLOCATION_LIB := libUMP |
96 | ALLOCATOR_SPECIFIC_FILES := alloc_ump.cpp gralloc_module_ump.cpp |
97 | endif |
98 | $(info GRALLOC_FB_SWAP_RED_BLUE0 is $(GRALLOC_FB_SWAP_RED_BLUE)) |
99 | else |
100 | # Midgard build settings |
101 | MALI_LOCAL_PATH?=vendor/arm/t83x |
102 | GRALLOC_DEPTH?=GRALLOC_32_BITS |
103 | GRALLOC_FB_SWAP_RED_BLUE?=0 |
104 | MALI_DDK_INCLUDES=$(MALI_LOCAL_PATH)/include $(MALI_LOCAL_PATH)/kernel/include |
105 | ifeq ($(MALI_ION),1) |
106 | ALLOCATOR_SPECIFIC_FILES := alloc_ion.cpp gralloc_module_ion.cpp |
107 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
108 | ALLOCATOR_SPECIFIC_FILES += ion_wrapper.cpp |
109 | else |
110 | ALLOCATION_LIB := libion |
111 | endif |
112 | else |
113 | ALLOCATION_LIB := libGLES_mali |
114 | ALLOCATOR_SPECIFIC_FILES := alloc_ump.cpp gralloc_module_ump.cpp |
115 | endif |
116 | $(info GRALLOC_FB_SWAP_RED_BLUE1 is $(GRALLOC_FB_SWAP_RED_BLUE)) |
117 | endif |
118 | #MALI_AFBC_GRALLOC?=1 |
119 | ifeq ($(MALI_AFBC_GRALLOC), 1) |
120 | AFBC_FILES = gralloc_buffer_priv.cpp |
121 | else |
122 | MALI_AFBC_GRALLOC := 0 |
123 | AFBC_FILES = |
124 | endif |
125 | $(info MALI_AFBC_GRALLOC is $(MALI_AFBC_GRALLOC)) |
126 | |
127 | #If cropping should be enabled for AFBC YUV420 buffers |
128 | AFBC_YUV420_EXTRA_MB_ROW_NEEDED ?= 0 |
129 | |
130 | ifdef GRALLOC_DISP_W |
131 | LOCAL_CFLAGS += -DGRALLOC_DISP_W=$(GRALLOC_DISP_W) |
132 | endif |
133 | ifdef GRALLOC_DISP_H |
134 | LOCAL_CFLAGS += -DGRALLOC_DISP_H=$(GRALLOC_DISP_H) |
135 | endif |
136 | |
137 | ifdef MALI_DISPLAY_VERSION |
138 | #if Mali display is available, should disable framebuffer HAL |
139 | DISABLE_FRAMEBUFFER_HAL := 1 |
140 | endif |
141 | |
142 | LOCAL_PRELINK_MODULE := false |
143 | |
144 | |
145 | LOCAL_SHARED_LIBRARIES := libhardware liblog libcutils libGLESv1_CM $(ALLOCATION_LIB) libfbcnf |
146 | LOCAL_C_INCLUDES := $(MALI_LOCAL_PATH) $(MALI_DDK_INCLUDES) |
147 | LOCAL_CFLAGS += -DLOG_TAG=\"gralloc\" -DSTANDARD_LINUX_SCREEN -DMALI_ION=$(MALI_ION) -DMALI_AFBC_GRALLOC=$(MALI_AFBC_GRALLOC) -D$(GRALLOC_DEPTH) -DMALI_ARCHITECTURE_UTGARD=$(MALI_ARCHITECTURE_UTGARD) -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) -DDISABLE_FRAMEBUFFER_HAL=$(DISABLE_FRAMEBUFFER_HAL) -DMALI_SUPPORT_AFBC_WIDEBLK=$(MALI_SUPPORT_AFBC_WIDEBLK) -DAFBC_YUV420_EXTRA_MB_ROW_NEEDED=$(AFBC_YUV420_EXTRA_MB_ROW_NEEDED) -DGRALLOC_USE_ION_DMA_HEAP=$(GRALLOC_USE_ION_DMA_HEAP) -DGRALLOC_USE_ION_COMPOUND_PAGE_HEAP=$(GRALLOC_USE_ION_COMPOUND_PAGE_HEAP) |
148 | |
149 | ifdef MALI_DISPLAY_VERSION |
150 | LOCAL_CFLAGS += -DMALI_DISPLAY_VERSION=$(MALI_DISPLAY_VERSION) |
151 | endif |
152 | |
153 | ifeq ($(wildcard system/core/libion/include/ion/ion.h),) |
154 | LOCAL_C_INCLUDES += system/core/include |
155 | LOCAL_CFLAGS += -DGRALLOC_OLD_ION_API |
156 | else |
157 | LOCAL_C_INCLUDES += system/core/libion/include |
158 | endif |
159 | |
160 | ifeq ($(GRALLOC_FB_SWAP_RED_BLUE),1) |
161 | LOCAL_CFLAGS += -DGRALLOC_FB_SWAP_RED_BLUE |
162 | endif |
163 | |
164 | ifeq ($(GRALLOC_ARM_NO_EXTERNAL_AFBC),1) |
165 | LOCAL_CFLAGS += -DGRALLOC_ARM_NO_EXTERNAL_AFBC=1 |
166 | endif |
167 | |
168 | ifdef PLATFORM_CFLAGS |
169 | LOCAL_CFLAGS += $(PLATFORM_CFLAGS) |
170 | endif |
171 | |
172 | ifeq ($(TARGET_APP_LAYER_USE_CONTINUOUS_BUFFER),true) |
173 | LOCAL_CFLAGS += -DGRALLOC_APP_ALLOC_CONTINUOUS_BUF |
174 | endif |
175 | |
176 | ifeq ($(TARGET_SUPPORT_SECURE_LAYER),true) |
177 | LOCAL_CFLAGS += -DGRALLOC_ENABLE_SECURE_LAYER |
178 | endif |
179 | |
180 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
181 | LOCAL_CFLAGS += -DGRALLOC_ALLOC_FB_FROM_ION=1 |
182 | endif |
183 | |
184 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
185 | LOCAL_MODULE_RELATIVE_PATH := hw |
186 | else |
187 | ifneq ($(TARGET_2ND_ARCH),) |
188 | LOCAL_MODULE_RELATIVE_PATH := hw |
189 | else |
190 | LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw |
191 | endif |
192 | endif |
193 | ifeq ($(TARGET_BOARD_PLATFORM),) |
194 | LOCAL_MODULE := gralloc.default |
195 | else |
196 | LOCAL_MODULE := gralloc.amlogic |
197 | endif |
198 | ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) |
199 | LOCAL_PROPRIETARY_MODULE := true |
200 | endif |
201 | LOCAL_MODULE_TAGS := optional |
202 | LOCAL_MULTILIB := both |
203 | |
204 | LOCAL_SRC_FILES := \ |
205 | gralloc_module.cpp \ |
206 | alloc_device.cpp \ |
207 | $(ALLOCATOR_SPECIFIC_FILES) \ |
208 | framebuffer_device.cpp \ |
209 | format_chooser.cpp \ |
210 | format_chooser_blockinit.cpp \ |
211 | $(AFBC_FILES) \ |
212 | gralloc_vsync_${GRALLOC_VSYNC_BACKEND}.cpp |
213 | |
214 | LOCAL_MODULE_OWNER := arm |
215 | |
216 | include $(BUILD_SHARED_LIBRARY) |
217 |