configure.ac/meson.build: Add options for library suffixes
[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 new/genCommon.py \
35 new/gen_gldispatch_mapi.py \
36 es1api/ABI-check \
37 es2api/ABI-check \
38 mapi_abi.py \
39 glapi/SConscript \
40 glapi/registry/gl.xml \
41 shared-glapi/SConscript \
42 es1api/meson.build \
43 es2api/meson.build \
44 glapi/meson.build \
45 shared-glapi/meson.build \
46 meson.build
47
48 AM_CFLAGS = \
49 $(PTHREAD_CFLAGS) \
50 $(MSVC2013_COMPAT_CFLAGS)
51 AM_CPPFLAGS = \
52 $(DEFINES) \
53 $(SELINUX_CFLAGS) \
54 -I$(top_srcdir)/include \
55 -I$(top_srcdir)/src \
56 -I$(top_builddir)/src/mapi \
57 -I$(top_srcdir)/src/mapi \
58 -I$(top_builddir)/src/mapi/glapi \
59 -I$(top_srcdir)/src/mapi/glapi
60
61 include Makefile.sources
62
63 MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
64 PYTHON_GEN = $(AM_V_GEN)$(PYTHON) $(PYTHON_FLAGS)
65
66 shared_glapi_gen_mapi_deps := \
67 mapi_abi.py \
68 $(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.xml) \
69 $(wildcard $(top_srcdir)/src/mapi/glapi/gen/*.py)
70
71 glapi_gen_gl_xml := \
72 $(srcdir)/glapi/registry/gl.xml
73 glapi_gen_mapi_script = $(srcdir)/new/gen_gldispatch_mapi.py
74 glapi_gen_mapi_deps = \
75 $(glapi_gen_mapi_script) \
76 $(srcdir)/new/genCommon.py \
77 $(glapi_gen_gl_xml)
78 glapi_gen_mapi = $(AM_V_GEN)$(PYTHON) $(PYTHON_FLAGS) $(glapi_gen_mapi_script)
79
80 if HAVE_SHARED_GLAPI
81 BUILT_SOURCES += shared-glapi/glapi_mapi_tmp.h
82
83 lib_LTLIBRARIES += shared-glapi/libglapi.la
84 shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES) shared-glapi/glapi_mapi_tmp.h
85 shared_glapi_libglapi_la_CFLAGS = \
86 $(AM_CFLAGS) \
87 $(VISIBILITY_CFLAGS)
88 shared_glapi_libglapi_la_CPPFLAGS = \
89 $(AM_CPPFLAGS) \
90 -DMAPI_MODE_GLAPI \
91 -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
92 shared_glapi_libglapi_la_LIBADD = \
93 $(PTHREAD_LIBS) \
94 $(SELINUX_LIBS)
95 shared_glapi_libglapi_la_LDFLAGS = \
96 -no-undefined \
97 $(GC_SECTIONS) \
98 $(LD_NO_UNDEFINED)
99
100 TESTS += shared-glapi-test
101 check_PROGRAMS += shared-glapi-test
102
103 shared_glapi_test_SOURCES = shared-glapi/tests/check_table.cpp
104 shared_glapi_test_CPPFLAGS = \
105 $(AM_CPPFLAGS) \
106 -I$(top_srcdir)/src/gtest/include \
107 -I$(top_srcdir)/src/mesa
108 shared_glapi_test_LDADD = \
109 $(top_builddir)/src/mapi/shared-glapi/libglapi.la \
110 $(top_builddir)/src/gtest/libgtest.la
111 endif
112
113 shared-glapi/glapi_mapi_tmp.h : glapi/gen/gl_and_es_API.xml $(shared_glapi_gen_mapi_deps)
114 $(MKDIR_GEN)
115 $(PYTHON_GEN) $(srcdir)/mapi_abi.py --printer shared-glapi \
116 $(srcdir)/glapi/gen/gl_and_es_API.xml > $@
117
118 if HAVE_OPENGL
119 noinst_LTLIBRARIES = glapi/libglapi.la
120
121 if HAVE_X86_ASM
122 if HAVE_X86_64_ASM
123 GLAPI_ASM_SOURCES = glapi/glapi_x86-64.S
124 else
125 GLAPI_ASM_SOURCES = glapi/glapi_x86.S
126 endif
127 endif
128 if HAVE_SPARC_ASM
129 GLAPI_ASM_SOURCES = glapi/glapi_sparc.S
130 endif
131
132 glapi_libglapi_la_SOURCES =
133 glapi_libglapi_la_CPPFLAGS = \
134 $(AM_CPPFLAGS) \
135 -I$(top_srcdir)/src/mesa
136
137 if HAVE_APPLEDRI
138 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
139 endif
140 if HAVE_WINDOWSDRI
141 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
142 endif
143
144 if HAVE_SHARED_GLAPI
145 glapi_libglapi_la_SOURCES += $(MAPI_BRIDGE_FILES) glapi/glapi_mapi_tmp.h
146 glapi_libglapi_la_CPPFLAGS += \
147 -DMAPI_MODE_BRIDGE \
148 -DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
149 else
150 glapi_libglapi_la_CPPFLAGS += \
151 -DMAPI_MODE_UTIL
152 glapi_libglapi_la_SOURCES += \
153 glapi/glapi_dispatch.c \
154 glapi/glapi_entrypoint.c \
155 glapi/glapi_getproc.c \
156 glapi/glapi_nop.c \
157 glapi/glapi.c \
158 glapi/glapi.h \
159 glapi/glapi_priv.h \
160 $(GLAPI_ASM_SOURCES) \
161 $(MAPI_UTIL_FILES)
162
163 TESTS += glapi-test
164 check_PROGRAMS += glapi-test
165
166 glapi_test_SOURCES = glapi/tests/check_table.cpp
167 glapi_test_CPPFLAGS = \
168 $(AM_CPPFLAGS) \
169 -I$(top_srcdir)/src/gtest/include \
170 -I$(top_srcdir)/src/mesa
171
172 glapi_test_LDADD = \
173 $(top_builddir)/src/mapi/glapi/libglapi.la \
174 $(top_builddir)/src/gtest/libgtest.la
175 endif
176 endif
177
178 if USE_LIBGLVND
179 else
180 if HAVE_OPENGL_ES1
181 TESTS += es1api/ABI-check
182
183 BUILT_SOURCES += es1api/glapi_mapi_tmp.h
184
185 pkgconfig_DATA += es1api/glesv1_cm.pc
186
187 GLES_includedir = $(includedir)/GLES
188 GLES_include_HEADERS = \
189 $(top_srcdir)/include/GLES/egl.h \
190 $(top_srcdir)/include/GLES/gl.h \
191 $(top_srcdir)/include/GLES/glext.h \
192 $(top_srcdir)/include/GLES/glplatform.h
193
194 lib_LTLIBRARIES += es1api/libGLESv1_CM@GLES_LIB_SUFFIX@.la
195
196 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_SOURCES = entry.c es1api/glapi_mapi_tmp.h
197 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_CFLAGS = \
198 $(AM_CFLAGS) \
199 $(VISIBILITY_CFLAGS)
200 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_CPPFLAGS = \
201 $(AM_CPPFLAGS) \
202 -DMAPI_MODE_BRIDGE \
203 -DMAPI_ABI_HEADER=\"es1api/glapi_mapi_tmp.h\"
204 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_LIBADD = $(GLESv1_CM_LIB_DEPS)
205 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_LDFLAGS = \
206 -no-undefined \
207 -version-number 1:1 \
208 $(GC_SECTIONS) \
209 $(LD_NO_UNDEFINED)
210
211 es1api_libGLESv1_CM@GLES_LIB_SUFFIX@_la_LIBADD += shared-glapi/libglapi.la
212 endif # HAVE_OPENGL_ES1
213 endif # USE_LIBGLVND
214
215 es1api/glapi_mapi_tmp.h: $(glapi_gen_mapi_deps)
216 $(MKDIR_GEN)
217 $(glapi_gen_mapi) glesv1 $(glapi_gen_gl_xml) > $@
218
219 if USE_LIBGLVND
220 else
221 if HAVE_OPENGL_ES2
222 TESTS += es2api/ABI-check
223
224 BUILT_SOURCES += es2api/glapi_mapi_tmp.h
225
226 pkgconfig_DATA += es2api/glesv2.pc
227
228 GLES2_includedir = $(includedir)/GLES2
229 GLES2_include_HEADERS = \
230 $(top_srcdir)/include/GLES2/gl2.h \
231 $(top_srcdir)/include/GLES2/gl2ext.h \
232 $(top_srcdir)/include/GLES2/gl2platform.h
233 GLES3_includedir = $(includedir)/GLES3
234 GLES3_include_HEADERS = \
235 $(top_srcdir)/include/GLES3/gl3.h \
236 $(top_srcdir)/include/GLES3/gl31.h \
237 $(top_srcdir)/include/GLES3/gl32.h \
238 $(top_srcdir)/include/GLES3/gl3ext.h \
239 $(top_srcdir)/include/GLES3/gl3platform.h
240
241 lib_LTLIBRARIES += es2api/libGLESv2@GLES_LIB_SUFFIX@.la
242
243 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_SOURCES = entry.c es2api/glapi_mapi_tmp.h
244 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_CFLAGS = \
245 $(AM_CFLAGS) \
246 $(VISIBILITY_CFLAGS)
247 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_CPPFLAGS = \
248 $(AM_CPPFLAGS) \
249 -DMAPI_MODE_BRIDGE \
250 -DMAPI_ABI_HEADER=\"es2api/glapi_mapi_tmp.h\"
251 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_LIBADD = $(GLESv2_LIB_DEPS)
252 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_LDFLAGS = \
253 -no-undefined \
254 -version-number 2 \
255 $(GC_SECTIONS) \
256 $(LD_NO_UNDEFINED)
257
258 es2api_libGLESv2@GLES_LIB_SUFFIX@_la_LIBADD += shared-glapi/libglapi.la
259 endif # HAVE_OPENGL_ES2
260 endif # USE_LIBGLVND
261
262 es2api/glapi_mapi_tmp.h: $(glapi_gen_mapi_deps)
263 $(MKDIR_GEN)
264 $(glapi_gen_mapi) glesv2 $(glapi_gen_gl_xml) > $@
265
266 include $(top_srcdir)/install-lib-links.mk
267
268 if NEED_KHRPLATFORM
269 khrdir = $(includedir)/KHR
270 khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
271 endif