• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2013, 2014 Intel Corporation
2#
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files (the "Software"),
5# to deal in the Software without restriction, including without limitation
6# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7# and/or sell copies of the Software, and to permit persons to whom the
8# Software is furnished to do so, subject to the following conditions:
9#
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20# IN THE SOFTWARE.
21
22SUBDIRS =
23TESTS =
24
25BUILT_SOURCES =
26CLEANFILES = $(BUILT_SOURCES)
27
28lib_LTLIBRARIES =
29check_PROGRAMS =
30pkgconfigdir = $(libdir)/pkgconfig
31pkgconfig_DATA =
32
33EXTRA_DIST = \
34	es1api/ABI-check \
35	es2api/ABI-check \
36	mapi_abi.py \
37	glapi/SConscript \
38	glapi/registry/gl.xml \
39	shared-glapi/SConscript
40
41AM_CFLAGS = \
42	$(PTHREAD_CFLAGS) \
43	$(MSVC2013_COMPAT_CFLAGS)
44AM_CPPFLAGS =							\
45	$(DEFINES)						\
46	$(SELINUX_CFLAGS)					\
47	-I$(top_srcdir)/include					\
48	-I$(top_srcdir)/src					\
49	-I$(top_builddir)/src/mapi				\
50	-I$(top_srcdir)/src/mapi
51
52include Makefile.sources
53
54MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
55PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
56
57glapi_gen_mapi_deps := \
58	mapi_abi.py \
59	$(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.xml) \
60	$(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.py)
61
62if HAVE_SHARED_GLAPI
63BUILT_SOURCES += shared-glapi/glapi_mapi_tmp.h
64
65lib_LTLIBRARIES += shared-glapi/libglapi.la
66shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES) shared-glapi/glapi_mapi_tmp.h
67shared_glapi_libglapi_la_CFLAGS = \
68	$(AM_CFLAGS) \
69	$(VISIBILITY_CFLAGS)
70shared_glapi_libglapi_la_CPPFLAGS = \
71	$(AM_CPPFLAGS) \
72	-DMAPI_MODE_GLAPI \
73	-DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
74shared_glapi_libglapi_la_LIBADD = \
75	$(PTHREAD_LIBS) \
76	$(SELINUX_LIBS)
77shared_glapi_libglapi_la_LDFLAGS = \
78	-no-undefined \
79	$(GC_SECTIONS) \
80	$(LD_NO_UNDEFINED)
81
82TESTS += shared-glapi-test
83check_PROGRAMS += shared-glapi-test
84
85shared_glapi_test_SOURCES = shared-glapi/tests/check_table.cpp
86shared_glapi_test_CPPFLAGS = \
87	$(AM_CPPFLAGS) \
88	-I$(top_srcdir)/src/gtest/include
89shared_glapi_test_LDADD = \
90	$(top_builddir)/src/mapi/shared-glapi/libglapi.la \
91	$(top_builddir)/src/gtest/libgtest.la
92endif
93
94shared-glapi/glapi_mapi_tmp.h : glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
95	$(MKDIR_GEN)
96	$(PYTHON_GEN) $(srcdir)/mapi_abi.py --mode lib --printer shared-glapi \
97		$(srcdir)/glapi/gen/gl_and_es_API.xml > $@
98
99if HAVE_OPENGL
100noinst_LTLIBRARIES = glapi/libglapi.la
101
102if HAVE_X86_ASM
103if HAVE_X86_64_ASM
104GLAPI_ASM_SOURCES = glapi/glapi_x86-64.S
105else
106GLAPI_ASM_SOURCES = glapi/glapi_x86.S
107endif
108endif
109if HAVE_SPARC_ASM
110GLAPI_ASM_SOURCES = glapi/glapi_sparc.S
111endif
112
113glapi_libglapi_la_SOURCES =
114glapi_libglapi_la_CPPFLAGS = \
115	$(AM_CPPFLAGS) \
116	-I$(top_srcdir)/src/mapi/glapi \
117	-I$(top_srcdir)/src/mesa
118
119if HAVE_APPLEDRI
120glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
121endif
122if HAVE_WINDOWSDRI
123glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
124endif
125
126if HAVE_SHARED_GLAPI
127glapi_libglapi_la_SOURCES += $(MAPI_BRIDGE_FILES) glapi/glapi_mapi_tmp.h
128glapi_libglapi_la_CPPFLAGS += \
129	-DMAPI_MODE_BRIDGE \
130	-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
131else
132glapi_libglapi_la_CPPFLAGS += \
133	-DMAPI_MODE_UTIL
134glapi_libglapi_la_SOURCES += \
135	glapi/glapi_dispatch.c \
136	glapi/glapi_entrypoint.c \
137	glapi/glapi_getproc.c \
138	glapi/glapi_nop.c \
139	glapi/glapi.c \
140	glapi/glapi.h \
141	glapi/glapi_priv.h \
142	$(GLAPI_ASM_SOURCES) \
143	$(MAPI_UTIL_FILES)
144
145TESTS += glapi-test
146check_PROGRAMS += glapi-test
147
148glapi_test_SOURCES = glapi/tests/check_table.cpp
149glapi_test_CPPFLAGS = \
150	$(AM_CPPFLAGS) \
151	-I$(top_srcdir)/src/gtest/include
152
153glapi_test_LDADD = \
154	$(top_builddir)/src/mapi/glapi/libglapi.la \
155	$(top_builddir)/src/gtest/libgtest.la
156endif
157endif
158
159if HAVE_OPENGL_ES1
160TESTS += es1api/ABI-check
161
162BUILT_SOURCES += es1api/glapi_mapi_tmp.h
163
164pkgconfig_DATA += es1api/glesv1_cm.pc
165
166GLES_includedir = $(includedir)/GLES
167GLES_include_HEADERS = \
168	$(top_srcdir)/include/GLES/egl.h \
169	$(top_srcdir)/include/GLES/gl.h \
170	$(top_srcdir)/include/GLES/glext.h \
171	$(top_srcdir)/include/GLES/glplatform.h
172
173lib_LTLIBRARIES += es1api/libGLESv1_CM.la
174
175es1api_libGLESv1_CM_la_SOURCES = entry.c es1api/glapi_mapi_tmp.h
176es1api_libGLESv1_CM_la_CFLAGS = \
177	$(AM_CFLAGS) \
178	$(VISIBILITY_CFLAGS)
179es1api_libGLESv1_CM_la_CPPFLAGS = \
180	$(AM_CPPFLAGS) \
181	-DMAPI_MODE_BRIDGE \
182	-DMAPI_ABI_HEADER=\"es1api/glapi_mapi_tmp.h\"
183es1api_libGLESv1_CM_la_LIBADD = $(GLESv1_CM_LIB_DEPS)
184es1api_libGLESv1_CM_la_LDFLAGS = \
185	-no-undefined \
186	-version-number 1:1 \
187	$(GC_SECTIONS) \
188	$(LD_NO_UNDEFINED)
189
190if HAVE_SHARED_GLAPI
191es1api_libGLESv1_CM_la_LIBADD += shared-glapi/libglapi.la
192endif
193endif
194
195es1api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
196	$(MKDIR_GEN)
197	$(PYTHON_GEN) $(srcdir)/mapi_abi.py --mode lib --printer es1api \
198		$(srcdir)/glapi/gen/gl_and_es_API.xml > $@
199
200if HAVE_OPENGL_ES2
201TESTS += es2api/ABI-check
202
203BUILT_SOURCES += es2api/glapi_mapi_tmp.h
204
205pkgconfig_DATA += es2api/glesv2.pc
206
207GLES2_includedir = $(includedir)/GLES2
208GLES2_include_HEADERS = \
209	$(top_srcdir)/include/GLES2/gl2.h \
210	$(top_srcdir)/include/GLES2/gl2ext.h \
211	$(top_srcdir)/include/GLES2/gl2platform.h
212GLES3_includedir = $(includedir)/GLES3
213GLES3_include_HEADERS = \
214	$(top_srcdir)/include/GLES3/gl3.h \
215	$(top_srcdir)/include/GLES3/gl31.h \
216	$(top_srcdir)/include/GLES3/gl32.h \
217	$(top_srcdir)/include/GLES3/gl3ext.h \
218	$(top_srcdir)/include/GLES3/gl3platform.h
219
220lib_LTLIBRARIES += es2api/libGLESv2.la
221
222es2api_libGLESv2_la_SOURCES = entry.c es2api/glapi_mapi_tmp.h
223es2api_libGLESv2_la_CFLAGS = \
224	$(AM_CFLAGS) \
225	$(VISIBILITY_CFLAGS)
226es2api_libGLESv2_la_CPPFLAGS = \
227	$(AM_CPPFLAGS) \
228	-DMAPI_MODE_BRIDGE \
229	-DMAPI_ABI_HEADER=\"es2api/glapi_mapi_tmp.h\"
230es2api_libGLESv2_la_LIBADD = $(GLESv2_LIB_DEPS)
231es2api_libGLESv2_la_LDFLAGS = \
232	-no-undefined \
233	-version-number 2 \
234	$(GC_SECTIONS) \
235	$(LD_NO_UNDEFINED)
236
237if HAVE_SHARED_GLAPI
238es2api_libGLESv2_la_LIBADD += shared-glapi/libglapi.la
239endif
240endif
241
242es2api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
243	$(MKDIR_GEN)
244	$(PYTHON_GEN) $(srcdir)/mapi_abi.py --mode lib --printer es2api \
245		$(srcdir)/glapi/gen/gl_and_es_API.xml > $@
246
247include $(top_srcdir)/install-lib-links.mk
248