• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This is the top-level build file for the Android HW OpenGL ES emulation
2# in Android.
3#
4# You must define BUILD_EMULATOR_OPENGL to 'true' in your environment to
5# build the following files.
6#
7# Also define BUILD_EMULATOR_OPENGL_DRIVER to 'true' to build the gralloc
8# stuff as well.
9#
10ifeq (true,$(BUILD_EMULATOR_OPENGL))
11
12# Top-level for all modules
13EMUGL_PATH := $(call my-dir)
14
15# Directory containing common headers used by several modules
16# This is always set to a module's LOCAL_C_INCLUDES
17# See the definition of emugl-begin-module in common.mk
18#
19EMUGL_COMMON_INCLUDES := $(EMUGL_PATH)/host/include/libOpenglRender $(EMUGL_PATH)/system/include
20
21# common cflags used by several modules
22# This is always set to a module's LOCAL_CFLAGS
23# See the definition of emugl-begin-module in common.mk
24#
25EMUGL_COMMON_CFLAGS := -DWITH_GLES2 -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
26
27ifeq (O, $(PLATFORM_VERSION_CODENAME))
28EMUGL_COMMON_CFLAGS += -DGOLDFISH_HIDL_GRALLOC
29endif
30
31ifeq ($(shell test $(PLATFORM_SDK_VERSION) -gt 25 && echo isApi26OrHigher),isApi26OrHigher)
32EMUGL_COMMON_CFLAGS += -DGOLDFISH_HIDL_GRALLOC
33endif
34
35ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 18 && echo PreJellyBeanMr2),PreJellyBeanMr2)
36    ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
37        EMUGL_COMMON_CFLAGS += -DHAVE_ARM_TLS_REGISTER
38    endif
39endif
40ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 16 && echo PreJellyBean),PreJellyBean)
41    EMUGL_COMMON_CFLAGS += -DALOG_ASSERT=LOG_ASSERT
42    EMUGL_COMMON_CFLAGS += -DALOGE=LOGE
43    EMUGL_COMMON_CFLAGS += -DALOGW=LOGW
44    EMUGL_COMMON_CFLAGS += -DALOGD=LOGD
45    EMUGL_COMMON_CFLAGS += -DALOGV=LOGV
46endif
47
48# Uncomment the following line if you want to enable debug traces
49# in the GLES emulation libraries.
50# EMUGL_COMMON_CFLAGS += -DEMUGL_DEBUG=1
51
52# Include common definitions used by all the modules included later
53# in this build file. This contains the definition of all useful
54# emugl-xxxx functions.
55#
56include $(EMUGL_PATH)/common.mk
57
58# IMPORTANT: ORDER IS CRUCIAL HERE
59#
60# For the import/export feature to work properly, you must include
61# modules below in correct order. That is, if module B depends on
62# module A, then it must be included after module A below.
63#
64# This ensures that anything exported by module A will be correctly
65# be imported by module B when it is declared.
66#
67# Note that the build system will complain if you try to import a
68# module that hasn't been declared yet anyway.
69#
70
71include $(EMUGL_PATH)/shared/OpenglCodecCommon/Android.mk
72
73# System static libraries
74include $(EMUGL_PATH)/system/GLESv1_enc/Android.mk
75include $(EMUGL_PATH)/system/GLESv2_enc/Android.mk
76include $(EMUGL_PATH)/system/renderControl_enc/Android.mk
77include $(EMUGL_PATH)/system/OpenglSystemCommon/Android.mk
78
79# System shared libraries
80include $(EMUGL_PATH)/system/GLESv1/Android.mk
81include $(EMUGL_PATH)/system/GLESv2/Android.mk
82
83include $(EMUGL_PATH)/system/gralloc/Android.mk
84include $(EMUGL_PATH)/system/surfaceInterface/Android.mk
85include $(EMUGL_PATH)/system/egl/Android.mk
86
87endif # BUILD_EMULATOR_OPENGL == true
88