3f8fcc02e55e7c14431badfdf1e7703baf5fccb3
[mesa.git] / src / mapi / Makefile.am
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
22 SUBDIRS =
23 TESTS =
24
25 BUILT_SOURCES =
26 CLEANFILES = $(BUILT_SOURCES)
27
28 lib_LTLIBRARIES =
29 check_PROGRAMS =
30 pkgconfigdir = $(libdir)/pkgconfig
31 pkgconfig_DATA =
32
33 EXTRA_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
41 AM_CFLAGS = \
42 $(PTHREAD_CFLAGS) \
43 $(MSVC2013_COMPAT_CFLAGS)
44 AM_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 -I$(top_builddir)/src/mapi/glapi \
52 -I$(top_srcdir)/src/mapi/glapi
53
54 include Makefile.sources
55
56 MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
57 PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
58
59 glapi_gen_mapi_deps := \
60 mapi_abi.py \
61 $(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.xml) \
62 $(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.py)
63
64 if HAVE_SHARED_GLAPI
65 BUILT_SOURCES += shared-glapi/glapi_mapi_tmp.h
66
67 lib_LTLIBRARIES += shared-glapi/libglapi.la
68 shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES) shared-glapi/glapi_mapi_tmp.h
69 shared_glapi_libglapi_la_CFLAGS = \
70 $(AM_CFLAGS) \
71 $(VISIBILITY_CFLAGS)
72 shared_glapi_libglapi_la_CPPFLAGS = \
73 $(AM_CPPFLAGS) \
74 -DMAPI_MODE_GLAPI \
75 -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
76 shared_glapi_libglapi_la_LIBADD = \
77 $(PTHREAD_LIBS) \
78 $(SELINUX_LIBS)
79 shared_glapi_libglapi_la_LDFLAGS = \
80 -no-undefined \
81 $(GC_SECTIONS) \
82 $(LD_NO_UNDEFINED)
83
84 TESTS += shared-glapi-test
85 check_PROGRAMS += shared-glapi-test
86
87 shared_glapi_test_SOURCES = shared-glapi/tests/check_table.cpp
88 shared_glapi_test_CPPFLAGS = \
89 $(AM_CPPFLAGS) \
90 -I$(top_srcdir)/src/gtest/include
91 shared_glapi_test_LDADD = \
92 $(top_builddir)/src/mapi/shared-glapi/libglapi.la \
93 $(top_builddir)/src/gtest/libgtest.la
94 endif
95
96 shared-glapi/glapi_mapi_tmp.h : glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
97 $(MKDIR_GEN)
98 $(PYTHON_GEN) $(srcdir)/mapi_abi.py --printer shared-glapi \
99 $(srcdir)/glapi/gen/gl_and_es_API.xml > $@
100
101 if HAVE_OPENGL
102 noinst_LTLIBRARIES = glapi/libglapi.la
103
104 if HAVE_X86_ASM
105 if HAVE_X86_64_ASM
106 GLAPI_ASM_SOURCES = glapi/glapi_x86-64.S
107 else
108 GLAPI_ASM_SOURCES = glapi/glapi_x86.S
109 endif
110 endif
111 if HAVE_SPARC_ASM
112 GLAPI_ASM_SOURCES = glapi/glapi_sparc.S
113 endif
114
115 glapi_libglapi_la_SOURCES =
116 glapi_libglapi_la_CPPFLAGS = \
117 $(AM_CPPFLAGS) \
118 -I$(top_srcdir)/src/mesa
119
120 if HAVE_APPLEDRI
121 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
122 endif
123 if HAVE_WINDOWSDRI
124 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
125 endif
126
127 if HAVE_SHARED_GLAPI
128 glapi_libglapi_la_SOURCES += $(MAPI_BRIDGE_FILES) glapi/glapi_mapi_tmp.h
129 glapi_libglapi_la_CPPFLAGS += \
130 -DMAPI_MODE_BRIDGE \
131 -DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
132 else
133 glapi_libglapi_la_CPPFLAGS += \
134 -DMAPI_MODE_UTIL
135 glapi_libglapi_la_SOURCES += \
136 glapi/glapi_dispatch.c \
137 glapi/glapi_entrypoint.c \
138 glapi/glapi_getproc.c \
139 glapi/glapi_nop.c \
140 glapi/glapi.c \
141 glapi/glapi.h \
142 glapi/glapi_priv.h \
143 $(GLAPI_ASM_SOURCES) \
144 $(MAPI_UTIL_FILES)
145
146 TESTS += glapi-test
147 check_PROGRAMS += glapi-test
148
149 glapi_test_SOURCES = glapi/tests/check_table.cpp
150 glapi_test_CPPFLAGS = \
151 $(AM_CPPFLAGS) \
152 -I$(top_srcdir)/src/gtest/include
153
154 glapi_test_LDADD = \
155 $(top_builddir)/src/mapi/glapi/libglapi.la \
156 $(top_builddir)/src/gtest/libgtest.la
157 endif
158 endif
159
160 if HAVE_OPENGL_ES1
161 TESTS += es1api/ABI-check
162
163 BUILT_SOURCES += es1api/glapi_mapi_tmp.h
164
165 pkgconfig_DATA += es1api/glesv1_cm.pc
166
167 GLES_includedir = $(includedir)/GLES
168 GLES_include_HEADERS = \
169 $(top_srcdir)/include/GLES/egl.h \
170 $(top_srcdir)/include/GLES/gl.h \
171 $(top_srcdir)/include/GLES/glext.h \
172 $(top_srcdir)/include/GLES/glplatform.h
173
174 lib_LTLIBRARIES += es1api/libGLESv1_CM.la
175
176 es1api_libGLESv1_CM_la_SOURCES = entry.c es1api/glapi_mapi_tmp.h
177 es1api_libGLESv1_CM_la_CFLAGS = \
178 $(AM_CFLAGS) \
179 $(VISIBILITY_CFLAGS)
180 es1api_libGLESv1_CM_la_CPPFLAGS = \
181 $(AM_CPPFLAGS) \
182 -DMAPI_MODE_BRIDGE \
183 -DMAPI_ABI_HEADER=\"es1api/glapi_mapi_tmp.h\"
184 es1api_libGLESv1_CM_la_LIBADD = $(GLESv1_CM_LIB_DEPS)
185 es1api_libGLESv1_CM_la_LDFLAGS = \
186 -no-undefined \
187 -version-number 1:1 \
188 $(GC_SECTIONS) \
189 $(LD_NO_UNDEFINED)
190
191 es1api_libGLESv1_CM_la_LIBADD += shared-glapi/libglapi.la
192 endif
193
194 es1api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
195 $(MKDIR_GEN)
196 $(PYTHON_GEN) $(srcdir)/mapi_abi.py --printer es1api \
197 $(srcdir)/glapi/gen/gl_and_es_API.xml > $@
198
199 if HAVE_OPENGL_ES2
200 TESTS += es2api/ABI-check
201
202 BUILT_SOURCES += es2api/glapi_mapi_tmp.h
203
204 pkgconfig_DATA += es2api/glesv2.pc
205
206 GLES2_includedir = $(includedir)/GLES2
207 GLES2_include_HEADERS = \
208 $(top_srcdir)/include/GLES2/gl2.h \
209 $(top_srcdir)/include/GLES2/gl2ext.h \
210 $(top_srcdir)/include/GLES2/gl2platform.h
211 GLES3_includedir = $(includedir)/GLES3
212 GLES3_include_HEADERS = \
213 $(top_srcdir)/include/GLES3/gl3.h \
214 $(top_srcdir)/include/GLES3/gl31.h \
215 $(top_srcdir)/include/GLES3/gl32.h \
216 $(top_srcdir)/include/GLES3/gl3ext.h \
217 $(top_srcdir)/include/GLES3/gl3platform.h
218
219 lib_LTLIBRARIES += es2api/libGLESv2.la
220
221 es2api_libGLESv2_la_SOURCES = entry.c es2api/glapi_mapi_tmp.h
222 es2api_libGLESv2_la_CFLAGS = \
223 $(AM_CFLAGS) \
224 $(VISIBILITY_CFLAGS)
225 es2api_libGLESv2_la_CPPFLAGS = \
226 $(AM_CPPFLAGS) \
227 -DMAPI_MODE_BRIDGE \
228 -DMAPI_ABI_HEADER=\"es2api/glapi_mapi_tmp.h\"
229 es2api_libGLESv2_la_LIBADD = $(GLESv2_LIB_DEPS)
230 es2api_libGLESv2_la_LDFLAGS = \
231 -no-undefined \
232 -version-number 2 \
233 $(GC_SECTIONS) \
234 $(LD_NO_UNDEFINED)
235
236 es2api_libGLESv2_la_LIBADD += shared-glapi/libglapi.la
237 endif
238
239 es2api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
240 $(MKDIR_GEN)
241 $(PYTHON_GEN) $(srcdir)/mapi_abi.py --printer es2api \
242 $(srcdir)/glapi/gen/gl_and_es_API.xml > $@
243
244 include $(top_srcdir)/install-lib-links.mk
245
246 if NEED_KHRPLATFORM
247 khrdir = $(includedir)/KHR
248 khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
249 endif