1# Mesa 3-D graphics library
2#
3# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
4# Copyright (C) 2010-2011 LunarG Inc.
5#
6# Permission is hereby granted, free of charge, to any person obtaining a
7# copy of this software and associated documentation files (the "Software"),
8# to deal in the Software without restriction, including without limitation
9# the rights to use, copy, modify, merge, publish, distribute, sublicense,
10# and/or sell copies of the Software, and to permit persons to whom the
11# Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be included
14# in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22# DEALINGS IN THE SOFTWARE.
23
24# Android.mk for libGLES_mesa
25
26LOCAL_PATH := $(call my-dir)
27
28# from Makefile
29SOURCES = \
30	eglapi.c \
31	eglarray.c \
32	eglconfig.c \
33	eglcontext.c \
34	eglcurrent.c \
35	egldisplay.c \
36	egldriver.c \
37	eglfallbacks.c \
38	eglglobals.c \
39	eglimage.c \
40	egllog.c \
41	eglmisc.c \
42	eglmode.c \
43	eglscreen.c \
44	eglstring.c \
45	eglsurface.c \
46	eglsync.c
47
48# ---------------------------------------
49# Build libGLES_mesa
50# ---------------------------------------
51
52include $(CLEAR_VARS)
53
54LOCAL_SRC_FILES := $(SOURCES)
55
56LOCAL_CFLAGS := \
57	-D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_ANDROID \
58	-D_EGL_DRIVER_SEARCH_DIR=\"/system/lib/egl\" \
59	-D_EGL_OS_UNIX=1
60
61LOCAL_STATIC_LIBRARIES :=
62
63LOCAL_SHARED_LIBRARIES := \
64	libglapi \
65	libdl \
66	libhardware \
67	liblog \
68	libcutils
69
70# add libdrm if there are hardware drivers
71ifneq ($(MESA_GPU_DRIVERS),swrast)
72LOCAL_SHARED_LIBRARIES += libdrm
73endif
74
75ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
76LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
77LOCAL_STATIC_LIBRARIES += libmesa_egl_dri2
78
79# require i915_dri and/or i965_dri
80LOCAL_REQUIRED_MODULES += \
81	$(addsuffix _dri, $(filter i915 i965, $(MESA_GPU_DRIVERS)))
82endif
83
84ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
85
86LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GALLIUM
87
88gallium_DRIVERS :=
89
90# swrast
91gallium_DRIVERS += libmesa_pipe_softpipe libmesa_winsys_sw_android
92
93# i915g
94ifneq ($(filter i915g, $(MESA_GPU_DRIVERS)),)
95gallium_DRIVERS += libmesa_winsys_i915 libmesa_pipe_i915
96LOCAL_SHARED_LIBRARIES += libdrm_intel
97endif
98
99# nouveau
100ifneq ($(filter nouveau, $(MESA_GPU_DRIVERS)),)
101gallium_DRIVERS += \
102	libmesa_winsys_nouveau \
103	libmesa_pipe_nvfx \
104	libmesa_pipe_nv50 \
105	libmesa_pipe_nvc0 \
106	libmesa_pipe_nouveau
107LOCAL_SHARED_LIBRARIES += libdrm_nouveau
108endif
109
110# r300g/r600g/radeonsi
111ifneq ($(filter r300g r600g radeonsi, $(MESA_GPU_DRIVERS)),)
112gallium_DRIVERS += libmesa_winsys_radeon
113ifneq ($(filter r300g, $(MESA_GPU_DRIVERS)),)
114gallium_DRIVERS += libmesa_pipe_r300
115endif
116ifneq ($(filter r600g, $(MESA_GPU_DRIVERS)),)
117gallium_DRIVERS += libmesa_pipe_r600
118endif
119ifneq ($(filter radeonsi, $(MESA_GPU_DRIVERS)),)
120gallium_DRIVERS += libmesa_pipe_radeonsi
121endif
122endif
123
124# vmwgfx
125ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
126gallium_DRIVERS += libmesa_winsys_svga libmesa_pipe_svga
127endif
128
129#
130# Notes about the order here:
131#
132#  * libmesa_st_egl depends on libmesa_winsys_sw_android in $(gallium_DRIVERS)
133#  * libmesa_pipe_r300 in $(gallium_DRIVERS) depends on libmesa_st_mesa and
134#    libmesa_glsl
135#  * libmesa_st_mesa depends on libmesa_glsl
136#  * libmesa_glsl depends on libmesa_glsl_utils
137#
138LOCAL_STATIC_LIBRARIES := \
139	libmesa_egl_gallium \
140	libmesa_st_egl \
141	$(gallium_DRIVERS) \
142	libmesa_st_mesa \
143	libmesa_glsl \
144	libmesa_glsl_utils \
145	libmesa_gallium \
146	$(LOCAL_STATIC_LIBRARIES)
147
148endif # MESA_BUILD_GALLIUM
149
150LOCAL_MODULE := libGLES_mesa
151LOCAL_MODULE_RELATIVE_PATH := egl
152
153include $(MESA_COMMON_MK)
154include $(BUILD_SHARED_LIBRARY)
155