summaryrefslogtreecommitdiff
path: root/Android.mk (plain)
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
18LOCAL_PATH := $(call my-dir)
19
20# Include platform specific makefiles
21include $(if $(wildcard $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk), $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk,)
22
23MALI_ION?=1
24GRALLOC_VSYNC_BACKEND?=default
25DISABLE_FRAMEBUFFER_HAL?=0
26MALI_SUPPORT_AFBC_WIDEBLK?=0
27GRALLOC_USE_ION_DMA_HEAP?=0
28GRALLOC_USE_ION_COMPOUND_PAGE_HEAP?=0
29
30#framebuffer apis
31include $(CLEAR_VARS)
32ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),)
33 LOCAL_CFLAGS += -DNUM_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS)
34endif
35
36ifeq ($(TARGET_EXTERNAL_DISPLAY),true)
37ifeq ($(TARGET_SINGLE_EXTERNAL_DISPLAY_USE_FB1),true)
38 LOCAL_CFLAGS += -DSINGLE_EXTERNAL_DISPLAY_USE_FB1
39endif
40endif
41
42LOCAL_KK=0
43ifeq ($(GPU_TYPE),t83x)
44LOCAL_KK:=1
45endif
46ifeq ($(GPU_ARCH),midgard)
47LOCAL_KK:=1
48endif
49ifeq ($(LOCAL_KK),1)
50 LOCAL_CFLAGS += -DMALI_AFBC_GRALLOC=1
51else
52 LOCAL_CFLAGS += -DMALI_AFBC_GRALLOC=0
53endif
54
55LOCAL_CFLAGS += -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
56LOCAL_PRELINK_MODULE := false
57LOCAL_SRC_FILES := framebuffer.cpp
58LOCAL_MODULE := libfbcnf
59ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
60 LOCAL_PROPRIETARY_MODULE := true
61endif
62LOCAL_SHARED_LIBRARIES := liblog libcutils libutils
63LOCAL_C_INCLUDES += system/core/libion/include/ \
64 system/core/libion/kernel-headers
65include $(BUILD_SHARED_LIBRARY)
66
67# HAL module implemenation, not prelinked and stored in
68# hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so
69include $(CLEAR_VARS)
70include $(BUILD_SYSTEM)/version_defaults.mk
71
72ifeq ($(LOCAL_KK),1)
73 LOCAL_CFLAGS += -DGRALLOC_T83X
74 MALI_AFBC_GRALLOC := 1
75 MALI_ARCHITECTURE_UTGARD?=0
76else
77 MALI_AFBC_GRALLOC := 0
78 MALI_ARCHITECTURE_UTGARD?=1
79endif
80
81ifeq ($(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))
99else
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
105ifeq ($(MALI_ION),1)
106 ALLOCATOR_SPECIFIC_FILES := alloc_ion.cpp gralloc_module_ion.cpp
107ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
108 ALLOCATOR_SPECIFIC_FILES += ion_wrapper.cpp
109else
110 ALLOCATION_LIB := libion
111endif
112else
113 ALLOCATION_LIB := libGLES_mali
114 ALLOCATOR_SPECIFIC_FILES := alloc_ump.cpp gralloc_module_ump.cpp
115endif
116$(info GRALLOC_FB_SWAP_RED_BLUE1 is $(GRALLOC_FB_SWAP_RED_BLUE))
117endif
118#MALI_AFBC_GRALLOC?=1
119ifeq ($(MALI_AFBC_GRALLOC), 1)
120AFBC_FILES = gralloc_buffer_priv.cpp
121else
122MALI_AFBC_GRALLOC := 0
123AFBC_FILES =
124endif
125$(info MALI_AFBC_GRALLOC is $(MALI_AFBC_GRALLOC))
126
127#If cropping should be enabled for AFBC YUV420 buffers
128AFBC_YUV420_EXTRA_MB_ROW_NEEDED ?= 0
129
130ifdef GRALLOC_DISP_W
131LOCAL_CFLAGS += -DGRALLOC_DISP_W=$(GRALLOC_DISP_W)
132endif
133ifdef GRALLOC_DISP_H
134LOCAL_CFLAGS += -DGRALLOC_DISP_H=$(GRALLOC_DISP_H)
135endif
136
137ifdef MALI_DISPLAY_VERSION
138#if Mali display is available, should disable framebuffer HAL
139DISABLE_FRAMEBUFFER_HAL := 1
140endif
141
142LOCAL_PRELINK_MODULE := false
143
144
145LOCAL_SHARED_LIBRARIES := libhardware liblog libcutils libGLESv1_CM $(ALLOCATION_LIB) libfbcnf
146LOCAL_C_INCLUDES := $(MALI_LOCAL_PATH) $(MALI_DDK_INCLUDES)
147LOCAL_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
149ifdef MALI_DISPLAY_VERSION
150LOCAL_CFLAGS += -DMALI_DISPLAY_VERSION=$(MALI_DISPLAY_VERSION)
151endif
152
153ifeq ($(wildcard system/core/libion/include/ion/ion.h),)
154LOCAL_C_INCLUDES += system/core/include
155LOCAL_CFLAGS += -DGRALLOC_OLD_ION_API
156else
157LOCAL_C_INCLUDES += system/core/libion/include
158endif
159
160ifeq ($(GRALLOC_FB_SWAP_RED_BLUE),1)
161LOCAL_CFLAGS += -DGRALLOC_FB_SWAP_RED_BLUE
162endif
163
164ifeq ($(GRALLOC_ARM_NO_EXTERNAL_AFBC),1)
165LOCAL_CFLAGS += -DGRALLOC_ARM_NO_EXTERNAL_AFBC=1
166endif
167
168ifdef PLATFORM_CFLAGS
169LOCAL_CFLAGS += $(PLATFORM_CFLAGS)
170endif
171
172ifeq ($(TARGET_APP_LAYER_USE_CONTINUOUS_BUFFER),true)
173LOCAL_CFLAGS += -DGRALLOC_APP_ALLOC_CONTINUOUS_BUF
174endif
175
176ifeq ($(TARGET_SUPPORT_SECURE_LAYER),true)
177LOCAL_CFLAGS += -DGRALLOC_ENABLE_SECURE_LAYER
178endif
179
180ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
181LOCAL_CFLAGS += -DGRALLOC_ALLOC_FB_FROM_ION=1
182endif
183
184ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
185LOCAL_MODULE_RELATIVE_PATH := hw
186else
187ifneq ($(TARGET_2ND_ARCH),)
188LOCAL_MODULE_RELATIVE_PATH := hw
189else
190LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
191endif
192endif
193ifeq ($(TARGET_BOARD_PLATFORM),)
194LOCAL_MODULE := gralloc.default
195else
196LOCAL_MODULE := gralloc.amlogic
197endif
198ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
199LOCAL_PROPRIETARY_MODULE := true
200endif
201LOCAL_MODULE_TAGS := optional
202LOCAL_MULTILIB := both
203
204LOCAL_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
214LOCAL_MODULE_OWNER := arm
215
216include $(BUILD_SHARED_LIBRARY)
217