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 35ifdef IS_AT_LEAST_OPD1 36 EMUGL_COMMON_CFLAGS += -DEMULATOR_OPENGL_POST_O=1 37endif 38 39ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 18 && echo PreJellyBeanMr2),PreJellyBeanMr2) 40 ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true) 41 EMUGL_COMMON_CFLAGS += -DHAVE_ARM_TLS_REGISTER 42 endif 43endif 44ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 16 && echo PreJellyBean),PreJellyBean) 45 EMUGL_COMMON_CFLAGS += -DALOG_ASSERT=LOG_ASSERT 46 EMUGL_COMMON_CFLAGS += -DALOGE=LOGE 47 EMUGL_COMMON_CFLAGS += -DALOGW=LOGW 48 EMUGL_COMMON_CFLAGS += -DALOGD=LOGD 49 EMUGL_COMMON_CFLAGS += -DALOGV=LOGV 50endif 51 52# Uncomment the following line if you want to enable debug traces 53# in the GLES emulation libraries. 54# EMUGL_COMMON_CFLAGS += -DEMUGL_DEBUG=1 55 56# Include common definitions used by all the modules included later 57# in this build file. This contains the definition of all useful 58# emugl-xxxx functions. 59# 60include $(EMUGL_PATH)/common.mk 61 62# IMPORTANT: ORDER IS CRUCIAL HERE 63# 64# For the import/export feature to work properly, you must include 65# modules below in correct order. That is, if module B depends on 66# module A, then it must be included after module A below. 67# 68# This ensures that anything exported by module A will be correctly 69# be imported by module B when it is declared. 70# 71# Note that the build system will complain if you try to import a 72# module that hasn't been declared yet anyway. 73# 74 75include $(EMUGL_PATH)/shared/OpenglCodecCommon/Android.mk 76 77# System static libraries 78include $(EMUGL_PATH)/system/GLESv1_enc/Android.mk 79include $(EMUGL_PATH)/system/GLESv2_enc/Android.mk 80include $(EMUGL_PATH)/system/renderControl_enc/Android.mk 81include $(EMUGL_PATH)/system/OpenglSystemCommon/Android.mk 82 83# System shared libraries 84include $(EMUGL_PATH)/system/GLESv1/Android.mk 85include $(EMUGL_PATH)/system/GLESv2/Android.mk 86 87include $(EMUGL_PATH)/system/gralloc/Android.mk 88include $(EMUGL_PATH)/system/egl/Android.mk 89 90endif # BUILD_EMULATOR_OPENGL == true 91