forked from Tasssadar/multirom
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAndroid.mk
265 lines (220 loc) · 6.9 KB
/
Android.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# MultiROM
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
multirom_local_path := $(LOCAL_PATH)
LOCAL_C_INCLUDES += $(multirom_local_path) \
external/libpng \
external/zlib \
external/freetype/include
LOCAL_SRC_FILES:= \
animation.c \
button.c \
containers.c \
framebuffer.c \
framebuffer_generic.c \
framebuffer_png.c \
framebuffer_truetype.c \
fstab.c \
input.c \
kexec.c \
listview.c \
main.c \
multirom.c \
multirom_ui.c \
multirom_ui_themes.c \
themes/multirom_ui_landscape.c \
themes/multirom_ui_portrait.c \
notification_card.c \
pong.c \
progressdots.c \
rom_quirks.c \
tabview.c \
touch_tracker.c \
util.c \
workers.c
# With these, GCC optimizes aggressively enough so full-screen alpha blending
# is quick enough to be done in an animation
LOCAL_CFLAGS += -O3 -funsafe-math-optimizations
#LOCAL_CFLAGS += -D_FORTIFY_SOURCE=2 -fstack-protector-all -O0 -g -fno-omit-frame-pointer -Wall
LOCAL_MODULE:= multirom
LOCAL_MODULE_TAGS := eng
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)
LOCAL_STATIC_LIBRARIES := libcutils libc libm libpng libz libft2_mrom_static
# clone libbootimg to /system/extras/ from
# https://github.com/Tasssadar/libbootimg.git
LOCAL_STATIC_LIBRARIES += libbootimg
LOCAL_C_INCLUDES += system/extras/libbootimg/include
# Defines from device files
# Init default define values
MULTIROM_DEFAULT_ROTATION := 0
LOCAL_CFLAGS += -DMR_LOG_TAG=\"multirom\"
# This value is used to have different folders on USB drives
# for different devices. Grouper didn't have that, hence the hack
LOCAL_CFLAGS += -DTARGET_DEVICE="\"$(TARGET_DEVICE)\""
ifeq ($(TARGET_DEVICE),grouper)
LOCAL_CFLAGS += -DMR_MOVE_USB_DIR
endif
# Flo's bootloader removes first 26 characters from boot.img's cmdline
# because of reasons. On unmodified boot.img, those 26 characters are
# "console=ttyHSL0,115200,n8 "
ifeq ($(TARGET_DEVICE),flo)
LOCAL_CFLAGS += -DFLO_CMDLINE_HACK
endif
ifeq ($(MR_INPUT_TYPE),)
MR_INPUT_TYPE := type_b
endif
LOCAL_SRC_FILES += input_$(MR_INPUT_TYPE).c
ifeq ($(MR_SWITCH_TOUCH_XY),false)
MR_SWITCH_TOUCH_XY := 0
else ifeq ($(MR_SWITCH_TOUCH_XY),true)
MR_SWITCH_TOUCH_XY := 1
else
MR_SWITCH_TOUCH_XY := 2
endif
LOCAL_CFLAGS += -DMR_SWITCH_TOUCH_XY=$(MR_SWITCH_TOUCH_XY)
ifeq ($(DEVICE_RESOLUTION),)
$(info DEVICE_RESOLUTION was not specified)
else ifneq ($(wildcard $(multirom_local_path)/themes/multirom_ui_$(DEVICE_RESOLUTION).c),)
LOCAL_SRC_FILES += themes/multirom_ui_$(DEVICE_RESOLUTION).c
LOCAL_CFLAGS += -DMULTIROM_THEME_$(DEVICE_RESOLUTION)
endif
ifneq ($(LANDSCAPE_RESOLUTION),)
ifneq ($(wildcard $(multirom_local_path)/themes/multirom_ui_$(LANDSCAPE_RESOLUTION).c),)
LOCAL_SRC_FILES += themes/multirom_ui_$(LANDSCAPE_RESOLUTION).c
LOCAL_CFLAGS += -DMULTIROM_THEME_$(LANDSCAPE_RESOLUTION)
endif
endif
ifneq ($(TW_DEFAULT_ROTATION),)
MULTIROM_DEFAULT_ROTATION := $(TW_DEFAULT_ROTATION)
endif
LOCAL_CFLAGS += -DMULTIROM_DEFAULT_ROTATION=$(MULTIROM_DEFAULT_ROTATION)
# TWRP framebuffer flags
ifeq ($(RECOVERY_GRAPHICS_USE_LINELENGTH), true)
LOCAL_CFLAGS += -DRECOVERY_GRAPHICS_USE_LINELENGTH
endif
ifeq ($(TARGET_RECOVERY_PIXEL_FORMAT),"RGBX_8888")
LOCAL_CFLAGS += -DRECOVERY_RGBX
endif
ifeq ($(TARGET_RECOVERY_PIXEL_FORMAT),"BGRA_8888")
LOCAL_CFLAGS += -DRECOVERY_BGRA
endif
ifeq ($(TARGET_RECOVERY_PIXEL_FORMAT),"RGB_565")
LOCAL_CFLAGS += -DRECOVERY_RGB_565
endif
ifeq ($(MR_DPI),)
$(info MR_DPI not defined in device files)
else ifeq ($(MR_DPI),hdpi)
ifeq ($(MR_DPI_MUL),)
MR_DPI_MUL := 1
endif
else ifeq ($(MR_DPI),xhdpi)
ifeq ($(MR_DPI_MUL),)
MR_DPI_MUL := 1.5
endif
endif
ifeq ($(MR_DPI_FONT),)
MR_DPI_FONT := 96
endif
LOCAL_CFLAGS += -DMR_DPI_FONT=$(MR_DPI_FONT)
ifneq ($(MR_DPI_MUL),)
LOCAL_CFLAGS += -DDPI_MUL=$(MR_DPI_MUL)
else
$(info MR_DPI_MUL not defined!)
endif
ifeq ($(MR_DISABLE_ALPHA),true)
LOCAL_CFLAGS += -DMR_DISABLE_ALPHA
endif
ifneq ($(TW_BRIGHTNESS_PATH),)
LOCAL_CFLAGS += -DTW_BRIGHTNESS_PATH=\"$(TW_BRIGHTNESS_PATH)\"
endif
ifneq ($(MR_KEXEC_MEM_MIN),)
LOCAL_CFLAGS += -DMR_KEXEC_MEM_MIN=\"$(MR_KEXEC_MEM_MIN)\"
else
$(info MR_KEXEC_MEM_MIN was not defined in device files!)
endif
ifeq ($(MR_KEXEC_DTB),true)
LOCAL_CFLAGS += -DMR_KEXEC_DTB
endif
ifneq ($(MR_DEVICE_HOOKS),)
ifeq ($(MR_DEVICE_HOOKS_VER),)
$(info MR_DEVICE_HOOKS is set but MR_DEVICE_HOOKS_VER is not specified!)
else
LOCAL_CFLAGS += -DMR_DEVICE_HOOKS=$(MR_DEVICE_HOOKS_VER)
LOCAL_SRC_FILES += ../../../$(MR_DEVICE_HOOKS)
endif
endif
ifeq ($(MR_USE_QCOM_OVERLAY),true)
LOCAL_CFLAGS += -DMR_USE_QCOM_OVERLAY
LOCAL_SRC_FILES += framebuffer_qcom_overlay.c
ifneq ($(MR_QCOM_OVERLAY_HEADER),)
LOCAL_CFLAGS += -DMR_QCOM_OVERLAY_HEADER=\"../../../$(MR_QCOM_OVERLAY_HEADER)\"
else
$(error MR_USE_QCOM_OVERLAY is true but MR_QCOM_OVERLAY_HEADER was not specified!)
endif
ifneq ($(MR_QCOM_OVERLAY_CUSTOM_PIXEL_FORMAT),)
LOCAL_CFLAGS += -DMR_QCOM_OVERLAY_CUSTOM_PIXEL_FORMAT=$(MR_QCOM_OVERLAY_CUSTOM_PIXEL_FORMAT)
endif
ifeq ($(MR_QCOM_OVERLAY_USE_VSYNC),true)
LOCAL_CFLAGS += -DMR_QCOM_OVERLAY_USE_VSYNC
endif
endif
ifeq ($(MR_CONTINUOUS_FB_UPDATE),true)
LOCAL_CFLAGS += -DMR_CONTINUOUS_FB_UPDATE
endif
include $(BUILD_EXECUTABLE)
# Trampoline
include $(multirom_local_path)/trampoline/Android.mk
# fw_mounter
include $(multirom_local_path)/fw_mounter/Android.mk
# ZIP installer
include $(multirom_local_path)/install_zip/Android.mk
# Kexec-tools
include $(multirom_local_path)/kexec-tools/Android.mk
# adbd
include $(multirom_local_path)/adbd/Android.mk
# We need static libtruetype but it isn't in standard android makefile :(
LOCAL_PATH := external/freetype/
include $(CLEAR_VARS)
# compile in ARM mode, since the glyph loader/renderer is a hotspot
# when loading complex pages in the browser
#
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES:= \
src/base/ftbbox.c \
src/base/ftbitmap.c \
src/base/ftfstype.c \
src/base/ftglyph.c \
src/base/ftlcdfil.c \
src/base/ftstroke.c \
src/base/fttype1.c \
src/base/ftxf86.c \
src/base/ftbase.c \
src/base/ftsystem.c \
src/base/ftinit.c \
src/base/ftgasp.c \
src/raster/raster.c \
src/sfnt/sfnt.c \
src/smooth/smooth.c \
src/autofit/autofit.c \
src/truetype/truetype.c \
src/cff/cff.c \
src/psnames/psnames.c \
src/pshinter/pshinter.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/builds \
$(LOCAL_PATH)/include \
external/libpng \
external/zlib
LOCAL_CFLAGS += -W -Wall
LOCAL_CFLAGS += -fPIC -DPIC
LOCAL_CFLAGS += "-DDARWIN_NO_CARBON"
LOCAL_CFLAGS += "-DFT2_BUILD_LIBRARY"
LOCAL_STATIC_LIBRARIES += libpng libz
# the following is for testing only, and should not be used in final builds
# of the product
#LOCAL_CFLAGS += "-DTT_CONFIG_OPTION_BYTECODE_INTERPRETER"
LOCAL_CFLAGS += -O2
LOCAL_MODULE:= libft2_mrom_static
include $(BUILD_STATIC_LIBRARY)