Home | History | Annotate | Download | only in mapi
      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 
     52 include Makefile.sources
     53 
     54 MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
     55 PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
     56 
     57 glapi_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 
     62 if HAVE_SHARED_GLAPI
     63 BUILT_SOURCES += shared-glapi/glapi_mapi_tmp.h
     64 
     65 lib_LTLIBRARIES += shared-glapi/libglapi.la
     66 shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES) shared-glapi/glapi_mapi_tmp.h
     67 shared_glapi_libglapi_la_CFLAGS = \
     68 	$(AM_CFLAGS) \
     69 	$(VISIBILITY_CFLAGS)
     70 shared_glapi_libglapi_la_CPPFLAGS = \
     71 	$(AM_CPPFLAGS) \
     72 	-DMAPI_MODE_GLAPI \
     73 	-DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
     74 shared_glapi_libglapi_la_LIBADD = \
     75 	$(PTHREAD_LIBS) \
     76 	$(SELINUX_LIBS)
     77 shared_glapi_libglapi_la_LDFLAGS = \
     78 	-no-undefined \
     79 	$(GC_SECTIONS) \
     80 	$(LD_NO_UNDEFINED)
     81 
     82 TESTS += shared-glapi-test
     83 check_PROGRAMS += shared-glapi-test
     84 
     85 shared_glapi_test_SOURCES = shared-glapi/tests/check_table.cpp
     86 shared_glapi_test_CPPFLAGS = \
     87 	$(AM_CPPFLAGS) \
     88 	-I$(top_srcdir)/src/gtest/include
     89 shared_glapi_test_LDADD = \
     90 	$(top_builddir)/src/mapi/shared-glapi/libglapi.la \
     91 	$(top_builddir)/src/gtest/libgtest.la
     92 endif
     93 
     94 shared-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 
     99 if HAVE_OPENGL
    100 noinst_LTLIBRARIES = glapi/libglapi.la
    101 
    102 if HAVE_X86_ASM
    103 if HAVE_X86_64_ASM
    104 GLAPI_ASM_SOURCES = glapi/glapi_x86-64.S
    105 else
    106 GLAPI_ASM_SOURCES = glapi/glapi_x86.S
    107 endif
    108 endif
    109 if HAVE_SPARC_ASM
    110 GLAPI_ASM_SOURCES = glapi/glapi_sparc.S
    111 endif
    112 
    113 glapi_libglapi_la_SOURCES =
    114 glapi_libglapi_la_CPPFLAGS = \
    115 	$(AM_CPPFLAGS) \
    116 	-I$(top_srcdir)/src/mapi/glapi \
    117 	-I$(top_srcdir)/src/mesa
    118 
    119 if HAVE_APPLEDRI
    120 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
    121 endif
    122 if HAVE_WINDOWSDRI
    123 glapi_libglapi_la_SOURCES += glapi/glapi_gentable.c
    124 endif
    125 
    126 if HAVE_SHARED_GLAPI
    127 glapi_libglapi_la_SOURCES += $(MAPI_BRIDGE_FILES) glapi/glapi_mapi_tmp.h
    128 glapi_libglapi_la_CPPFLAGS += \
    129 	-DMAPI_MODE_BRIDGE \
    130 	-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
    131 else
    132 glapi_libglapi_la_CPPFLAGS += \
    133 	-DMAPI_MODE_UTIL
    134 glapi_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 
    145 TESTS += glapi-test
    146 check_PROGRAMS += glapi-test
    147 
    148 glapi_test_SOURCES = glapi/tests/check_table.cpp
    149 glapi_test_CPPFLAGS = \
    150 	$(AM_CPPFLAGS) \
    151 	-I$(top_srcdir)/src/gtest/include
    152 
    153 glapi_test_LDADD = \
    154 	$(top_builddir)/src/mapi/glapi/libglapi.la \
    155 	$(top_builddir)/src/gtest/libgtest.la
    156 endif
    157 endif
    158 
    159 if HAVE_OPENGL_ES1
    160 TESTS += es1api/ABI-check
    161 
    162 BUILT_SOURCES += es1api/glapi_mapi_tmp.h
    163 
    164 pkgconfig_DATA += es1api/glesv1_cm.pc
    165 
    166 GLES_includedir = $(includedir)/GLES
    167 GLES_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 
    173 lib_LTLIBRARIES += es1api/libGLESv1_CM.la
    174 
    175 es1api_libGLESv1_CM_la_SOURCES = entry.c es1api/glapi_mapi_tmp.h
    176 es1api_libGLESv1_CM_la_CFLAGS = \
    177 	$(AM_CFLAGS) \
    178 	$(VISIBILITY_CFLAGS)
    179 es1api_libGLESv1_CM_la_CPPFLAGS = \
    180 	$(AM_CPPFLAGS) \
    181 	-DMAPI_MODE_BRIDGE \
    182 	-DMAPI_ABI_HEADER=\"es1api/glapi_mapi_tmp.h\"
    183 es1api_libGLESv1_CM_la_LIBADD = $(GLESv1_CM_LIB_DEPS)
    184 es1api_libGLESv1_CM_la_LDFLAGS = \
    185 	-no-undefined \
    186 	-version-number 1:1 \
    187 	$(GC_SECTIONS) \
    188 	$(LD_NO_UNDEFINED)
    189 
    190 if HAVE_SHARED_GLAPI
    191 es1api_libGLESv1_CM_la_LIBADD += shared-glapi/libglapi.la
    192 endif
    193 endif
    194 
    195 es1api/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 
    200 if HAVE_OPENGL_ES2
    201 TESTS += es2api/ABI-check
    202 
    203 BUILT_SOURCES += es2api/glapi_mapi_tmp.h
    204 
    205 pkgconfig_DATA += es2api/glesv2.pc
    206 
    207 GLES2_includedir = $(includedir)/GLES2
    208 GLES2_include_HEADERS = \
    209 	$(top_srcdir)/include/GLES2/gl2.h \
    210 	$(top_srcdir)/include/GLES2/gl2ext.h \
    211 	$(top_srcdir)/include/GLES2/gl2platform.h
    212 GLES3_includedir = $(includedir)/GLES3
    213 GLES3_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 
    220 lib_LTLIBRARIES += es2api/libGLESv2.la
    221 
    222 es2api_libGLESv2_la_SOURCES = entry.c es2api/glapi_mapi_tmp.h
    223 es2api_libGLESv2_la_CFLAGS = \
    224 	$(AM_CFLAGS) \
    225 	$(VISIBILITY_CFLAGS)
    226 es2api_libGLESv2_la_CPPFLAGS = \
    227 	$(AM_CPPFLAGS) \
    228 	-DMAPI_MODE_BRIDGE \
    229 	-DMAPI_ABI_HEADER=\"es2api/glapi_mapi_tmp.h\"
    230 es2api_libGLESv2_la_LIBADD = $(GLESv2_LIB_DEPS)
    231 es2api_libGLESv2_la_LDFLAGS = \
    232 	-no-undefined \
    233 	-version-number 2 \
    234 	$(GC_SECTIONS) \
    235 	$(LD_NO_UNDEFINED)
    236 
    237 if HAVE_SHARED_GLAPI
    238 es2api_libGLESv2_la_LIBADD += shared-glapi/libglapi.la
    239 endif
    240 endif
    241 
    242 es2api/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 
    247 include $(top_srcdir)/install-lib-links.mk
    248