Android.mk revision f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2e
1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
3b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian###############################################################################
4edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project# Build META EGL library
5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#
6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
7ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wangegl.cfg_config_module :=
8ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wang# OpenGL drivers config file
9ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wangifneq ($(BOARD_EGL_CFG),)
10ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wang
11ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wanginclude $(CLEAR_VARS)
12ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_MODULE := egl.cfg
13ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_MODULE_TAGS := optional
14ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_MODULE_CLASS := ETC
15ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
16ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_SRC_FILES := ../../../../$(BOARD_EGL_CFG)
17ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wanginclude $(BUILD_PREBUILT)
18ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wangegl.cfg_config_module := $(LOCAL_MODULE)
19ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wangendif
20ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wang
21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinclude $(CLEAR_VARS)
22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
2324035338ed6329e4d85fb00cf99a91e2cdd55ba5Mathias AgopianLOCAL_SRC_FILES:= 	       \
24518ec112f468eb67bf681b3eec896d7bfb4ff98dMathias Agopian	EGL/egl_tls.cpp        \
25aca51c06f38155f1435fbc6944d7fc0a9bf1e4e9Jamie Gennis	EGL/egl_cache.cpp      \
26518ec112f468eb67bf681b3eec896d7bfb4ff98dMathias Agopian	EGL/egl_display.cpp    \
27518ec112f468eb67bf681b3eec896d7bfb4ff98dMathias Agopian	EGL/egl_object.cpp     \
2824035338ed6329e4d85fb00cf99a91e2cdd55ba5Mathias Agopian	EGL/egl.cpp 	       \
29518ec112f468eb67bf681b3eec896d7bfb4ff98dMathias Agopian	EGL/eglApi.cpp 	       \
30a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich	EGL/trace.cpp              \
3124035338ed6329e4d85fb00cf99a91e2cdd55ba5Mathias Agopian	EGL/getProcAddress.cpp.arm \
3224035338ed6329e4d85fb00cf99a91e2cdd55ba5Mathias Agopian	EGL/Loader.cpp 	       \
33edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#
34864f839e969ba3417d82ab3ff7906b2f69afa900David Li
358a0cb4ee0b6c351de82987efb472fa38dfaf608aYing WangLOCAL_SHARED_LIBRARIES += libcutils libutils liblog libGLES_trace
36edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectLOCAL_LDLIBS := -lpthread -ldl
37edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectLOCAL_MODULE:= libEGL
38b33d5cff62c912fb0312daca083002558fb4a26bDavid LiLOCAL_LDFLAGS += -Wl,--exclude-libs=ALL
39baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_SHARED_LIBRARIES += libdl
40baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff Brown# we need to access the private Bionic header <bionic_tls.h>
41baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_C_INCLUDES += bionic/libc/private
42edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
43076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias AgopianLOCAL_CFLAGS += -DLOG_TAG=\"libEGL\"
44076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias AgopianLOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
4548685c45bb333c3564596158e2e67267110c9277Mathias AgopianLOCAL_CFLAGS += -fvisibility=hidden
46a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack PalevichLOCAL_CFLAGS += -DEGL_TRACE=1
47076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias Agopian
48201f3b2da572eb27b9d4b3131e6d8c3c92a13de8Jesse Hallifeq ($(BOARD_ALLOW_EGL_HIBERNATION),true)
49201f3b2da572eb27b9d4b3131e6d8c3c92a13de8Jesse Hall  LOCAL_CFLAGS += -DBOARD_ALLOW_EGL_HIBERNATION
50201f3b2da572eb27b9d4b3131e6d8c3c92a13de8Jesse Hallendif
51201f3b2da572eb27b9d4b3131e6d8c3c92a13de8Jesse Hall
52a69e0ed4a38ded9778d37da453899d527c4396b9Mathias Agopianifeq ($(TARGET_BOARD_PLATFORM),msm7k)
53d75f84d6410da934d1b1760fdc0d05d4ba1e8f35Mathias Agopian  LOCAL_CFLAGS += -DADRENO130=1
54d75f84d6410da934d1b1760fdc0d05d4ba1e8f35Mathias Agopianendif
55f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2eMathias Agopianifeq ($(TARGET_BOARD_PLATFORM), omap4)
56f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2eMathias Agopian  LOCAL_CFLAGS += -DWORKAROUND_BUG_10194508=1
57a69e0ed4a38ded9778d37da453899d527c4396b9Mathias Agopianendif
5889c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennisifneq ($(MAX_EGL_CACHE_ENTRY_SIZE),)
5989c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennis  LOCAL_CFLAGS += -DMAX_EGL_CACHE_ENTRY_SIZE=$(MAX_EGL_CACHE_ENTRY_SIZE)
6089c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennisendif
6189c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennis
62f478e6d18cb9eba1ded1f124ce16a899d271689eJamie Gennisifneq ($(MAX_EGL_CACHE_KEY_SIZE),)
63f478e6d18cb9eba1ded1f124ce16a899d271689eJamie Gennis  LOCAL_CFLAGS += -DMAX_EGL_CACHE_KEY_SIZE=$(MAX_EGL_CACHE_KEY_SIZE)
64f478e6d18cb9eba1ded1f124ce16a899d271689eJamie Gennisendif
65f478e6d18cb9eba1ded1f124ce16a899d271689eJamie Gennis
6689c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennisifneq ($(MAX_EGL_CACHE_SIZE),)
6789c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennis  LOCAL_CFLAGS += -DMAX_EGL_CACHE_SIZE=$(MAX_EGL_CACHE_SIZE)
6889c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennisendif
6989c1d61c16c786ecfd258a43fed24bcf8f8456edJamie Gennis
70ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing WangLOCAL_REQUIRED_MODULES := $(egl.cfg_config_module)
71ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wangegl.cfg_config_module :=
72edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
73ac0de62ba3f86400f08c3791ba56b6cb057e1dfaYing Wanginclude $(BUILD_SHARED_LIBRARY)
74edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
75b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian###############################################################################
76b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian# Build the wrapper OpenGL ES 1.x library
77edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#
78edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
79edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinclude $(CLEAR_VARS)
80edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
81b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_SRC_FILES:= 		\
82b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian	GLES_CM/gl.cpp.arm 	\
83edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#
84edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
858a0cb4ee0b6c351de82987efb472fa38dfaf608aYing WangLOCAL_SHARED_LIBRARIES += libcutils liblog libEGL
86edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectLOCAL_LDLIBS := -lpthread -ldl
87edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectLOCAL_MODULE:= libGLESv1_CM
88edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
89baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_SHARED_LIBRARIES += libdl
90baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff Brown# we need to access the private Bionic header <bionic_tls.h>
91baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_C_INCLUDES += bionic/libc/private
92edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
93076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias AgopianLOCAL_CFLAGS += -DLOG_TAG=\"libGLESv1\"
94076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias AgopianLOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
9548685c45bb333c3564596158e2e67267110c9277Mathias AgopianLOCAL_CFLAGS += -fvisibility=hidden
96076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias Agopian
97edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
98b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
99b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
100b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian###############################################################################
101b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian# Build the wrapper OpenGL ES 2.x library
102b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian#
103b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
104b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopianinclude $(CLEAR_VARS)
105b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
106b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_SRC_FILES:= 		\
107b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian	GLES2/gl2.cpp.arm 	\
108b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian#
109b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
1108a0cb4ee0b6c351de82987efb472fa38dfaf608aYing WangLOCAL_SHARED_LIBRARIES += libcutils libutils liblog libEGL
111b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_LDLIBS := -lpthread -ldl
112b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_MODULE:= libGLESv2
113b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
114baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_SHARED_LIBRARIES += libdl
115baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff Brown# we need to access the private Bionic header <bionic_tls.h>
116baa44b89ec159fd65230cbb8ebab62d63a513b0bJeff BrownLOCAL_C_INCLUDES += bionic/libc/private
117b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
118b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_CFLAGS += -DLOG_TAG=\"libGLESv2\"
119b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
120b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias AgopianLOCAL_CFLAGS += -fvisibility=hidden
121b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopian
122b1a39d67be99fe6c4545b25e10ac82a5dd1df634Mathias Agopianinclude $(BUILD_SHARED_LIBRARY)
12301cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
1245ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall# Symlink libGLESv3.so -> libGLESv2.so
1255ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall# Platform modules should link against libGLESv2.so (-lGLESv2), but NDK apps
1265ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall# will be linked against libGLESv3.so.
1275ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse HallLIBGLESV2 := $(LOCAL_INSTALLED_MODULE)
1285ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse HallLIBGLESV3 := $(subst libGLESv2,libGLESv3,$(LIBGLESV2))
1295ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall$(LIBGLESV3): $(LIBGLESV2)
1305ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall	@echo "Symlink: $@ -> $(notdir $<)"
1315ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall	@mkdir -p $(dir $@)
1325ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall	$(hide) ln -sf $(notdir $<) $@
1335ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse HallALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
1345ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall	$(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(LIBGLESV3)
1355ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse HallLIBGLESV2 :=
1365ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse HallLIBGLESV3 :=
1375ea4c7305850ad4003d314597f4a8255b5b45ba4Jesse Hall
13801cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich###############################################################################
13901cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich# Build the ETC1 host static library
14001cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich#
14101cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
14201cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevichinclude $(CLEAR_VARS)
14301cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
14401cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_SRC_FILES:= 		\
14501cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich	ETC1/etc1.cpp 	\
14601cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich#
14701cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
14801cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_LDLIBS := -lpthread -ldl
14901cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_MODULE:= libETC1
15001cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
15101cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevichinclude $(BUILD_HOST_STATIC_LIBRARY)
15201cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
15301cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich###############################################################################
15401cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich# Build the ETC1 device library
15501cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich#
15601cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
15701cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevichinclude $(CLEAR_VARS)
15801cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
15901cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_SRC_FILES:= 		\
16001cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich	ETC1/etc1.cpp 	\
16101cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich#
16201cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
16301cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_LDLIBS := -lpthread -ldl
16401cc538b290ecc9ccfdf1907fb714b76cf0f648bJack PalevichLOCAL_MODULE:= libETC1
16501cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevich
16601cc538b290ecc9ccfdf1907fb714b76cf0f648bJack Palevichinclude $(BUILD_SHARED_LIBRARY)
1672f5a6557ef6a7b9fd33077cfd8a037904d41e3bdDavid Li
1682f5a6557ef6a7b9fd33077cfd8a037904d41e3bdDavid Liinclude $(call all-makefiles-under,$(LOCAL_PATH))
169