summaryrefslogtreecommitdiff
path: root/src/OpenGL/entrypoint_common.mk
blob: e88e8a0c69e9f3ffc163a338acbd42e6cd74c2f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Copyright (c) 2015, NVIDIA CORPORATION.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and/or associated documentation files (the
# "Materials"), to deal in the Materials without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Materials, and to
# permit persons to whom the Materials are furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# unaltered in all copies or substantial portions of the Materials.
# Any additions, deletions, or changes to the original source files
# must be clearly indicated in accompanying documentation.
#
# If only executable code is distributed, then the accompanying
# documentation must state that "this software is based in part on the
# work of the Khronos Group."
#
# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

# This is the common makefile for libOpenGL.so and libGLES*.so.
# All of thoose are identical except for the set of entrypoints that they
# define.

MAPI = $(top_srcdir)/$(MAPI_PREFIX)
GLAPI = $(MAPI)/glapi

include $(top_srcdir)/src/GLdispatch/vnd-glapi/entry_files.mk
include $(top_srcdir)/src/generate/glvnd_gen.mk

ENTRYPOINT_COMMON_FILES = \
	$(top_srcdir)/src/OpenGL/libopengl.c \
	$(MAPI_GLDISPATCH_ENTRY_FILES) \
	$(MAPI)/stub.c     \
	$(top_srcdir)/src/util/utils_misc.c

noinst_HEADERS = \
	g_glapi_mapi_$(ENTRYPOINT_TARGET)_tmp.h

# TODO: Ideally, we should be able to just include the symbol file in make dist
# so that it doesn't have to be rebuilt. But if we do that, then we'd have to
# use a different path file in LDFLAGS depending on whether or not the file
# was generated.
#EXTRA_DIST = \
#	g_$(ENTRYPOINT_TARGET)_exports.sym

BUILT_SOURCES = \
	g_glapi_mapi_$(ENTRYPOINT_TARGET)_tmp.h \
	g_$(ENTRYPOINT_TARGET)_exports.sym

CLEANFILES = $(BUILT_SOURCES)

g_glapi_mapi_$(ENTRYPOINT_TARGET)_tmp.h : $(glapi_gen_mapi_deps)
	$(call glapi_gen_mapi, $(ENTRYPOINT_TARGET))

g_$(ENTRYPOINT_TARGET)_exports.sym : $(glapi_gen_libopengl_exports_deps)
	$(call glapi_gen_libopengl_exports, $(ENTRYPOINT_TARGET))

if USE_DT_AUXILIARY
DT_AUX_FLAGS = -Xlinker "--auxiliary=libGLdispatch.so.0"
else
DT_AUX_FLAGS =
endif

ENTRYPOINT_COMMON_CFLAGS = \
	-I$(top_srcdir)/include \
	-I$(top_srcdir)/src/GLdispatch/vnd-glapi/mapi \
	-I$(top_srcdir)/src/GLdispatch/ \
	-I$(top_srcdir)/src/util \
	-I$(top_srcdir)/src/util/glvnd_pthread \
	-DMAPI_ABI_HEADER=\"$(builddir)/g_glapi_mapi_$(ENTRYPOINT_TARGET)_tmp.h\" \
	-DSTATIC_DISPATCH_ONLY

ENTRYPOINT_COMMON_DEPENDENCIES = $(builddir)/g_$(ENTRYPOINT_TARGET)_exports.sym

ENTRYPOINT_COMMON_LDFLAGS = -shared \
	$(LINKER_FLAG_NO_UNDEFINED) \
	-export-symbols $(builddir)/g_$(ENTRYPOINT_TARGET)_exports.sym \
	$(DT_AUX_FLAGS)

ENTRYPOINT_COMMON_LIBADD = ../GLdispatch/libGLdispatch.la