1848b8605SmrgImport('*')
2848b8605Smrg
3848b8605Smrgif not env['x11'] or not env['xcb'] or not env['drm']:
4848b8605Smrg    Return()
5848b8605Smrg
6848b8605Smrgfrom sys import executable as python_cmd
7848b8605Smrg
8848b8605Smrgenv = env.Clone()
9848b8605Smrg
10848b8605Smrgenv.Prepend(CPPPATH = [
11848b8605Smrg	'.',           # the build/<platform>/glx/ directory
12848b8605Smrg	'#include',
13848b8605Smrg	'#include/GL/internal',
14b8e80941Smrg	'#src/',
15848b8605Smrg	'#src/loader',
16848b8605Smrg	'#src/mesa',
17848b8605Smrg	'#src/mapi',
18848b8605Smrg	'#src/mapi/glapi',
19848b8605Smrg	#$(LIBDRM_CFLAGS)
20848b8605Smrg	#$(DRI2PROTO_CFLAGS)
21848b8605Smrg	#$(GLPROTO_CFLAGS)
22848b8605Smrg	#$(X11_INCLUDES)
23848b8605Smrg])
24848b8605Smrg
25848b8605Smrgenv.Append(CPPDEFINES = [
26848b8605Smrg    '_REENTRANT',
27848b8605Smrg])
28848b8605Smrg
29848b8605Smrgenv.Prepend(LIBS = [
30848b8605Smrg    libloader,
31b8e80941Smrg    mesautil,
32848b8605Smrg    glapi
33848b8605Smrg])
34848b8605Smrg
35848b8605Smrgenv.PkgUseModules('X11')
36848b8605Smrgenv.PkgUseModules('XCB')
37848b8605Smrgenv.PkgUseModules('DRM')
38b8e80941Smrgenv.PkgUseModules('XF86VIDMODE')
39848b8605Smrg
40848b8605Smrgsources = [
41848b8605Smrg    'clientattrib.c',
42848b8605Smrg    'clientinfo.c',
43848b8605Smrg    'create_context.c',
44848b8605Smrg    'compsize.c',
45848b8605Smrg    'eval.c',
46848b8605Smrg    'glx_error.c',
47848b8605Smrg    'glxconfig.c',
48848b8605Smrg    'glxcmds.c',
49848b8605Smrg    'glxcurrent.c',
50848b8605Smrg    'glxext.c',
51848b8605Smrg    'glxextensions.c',
52848b8605Smrg    'indirect_glx.c',
53848b8605Smrg    'indirect.c',
54848b8605Smrg    'indirect_init.c',
55848b8605Smrg    'indirect_size.c',
56848b8605Smrg    'indirect_window_pos.c',
57848b8605Smrg    'indirect_texture_compression.c',
58848b8605Smrg    'indirect_transpose_matrix.c',
59848b8605Smrg    'indirect_vertex_array.c',
60848b8605Smrg    'indirect_vertex_program.c',
61848b8605Smrg    'pixel.c',
62848b8605Smrg    'pixelstore.c',
63848b8605Smrg    'query_renderer.c',
64848b8605Smrg    'render2.c',
65848b8605Smrg    'renderpix.c',
66848b8605Smrg    'single2.c',
67848b8605Smrg    'singlepix.c',
68848b8605Smrg    'vertarr.c',
69848b8605Smrg    'xfont.c',
70848b8605Smrg    'glx_pbuffer.c',
71848b8605Smrg    'glx_query.c',
72848b8605Smrg    'drisw_glx.c',
73848b8605Smrg    'dri_common.c',
74848b8605Smrg    'dri_glx.c',
75848b8605Smrg    'XF86dri.c',
76848b8605Smrg    'glxhash.c',
77848b8605Smrg    'dri2_glx.c',
78848b8605Smrg    'dri2.c',
79b8e80941Smrg    'dri_common_query_renderer.c',
80b8e80941Smrg    'dri_common_interop.c',
81848b8605Smrg    #'dri3_glx.c',
82848b8605Smrg    'applegl_glx.c',
83848b8605Smrg]
84848b8605Smrg
85848b8605Smrglibgl = env.SharedLibrary(
86848b8605Smrg    target ='GL',
87848b8605Smrg    source = sources,
88848b8605Smrg)
89848b8605Smrg
90848b8605Smrg
91848b8605Smrg# Generate GLX-specific .c and .h files here.  Other GL API-related
92848b8605Smrg# files are used, but they're generated in mapi/glapi/gen/ since they're
93848b8605Smrg# used by other targets as well.
94848b8605Smrg
95848b8605SmrgGLAPI = '#src/mapi/glapi/'
96848b8605Smrgsources = [GLAPI + 'gen/gl_API.xml'] + env.Glob(GLAPI + 'gen/*.xml')
97848b8605Smrg
98848b8605Smrgenv.CodeGenerate(
99848b8605Smrg    target = 'indirect.c',
100848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
101848b8605Smrg    source = sources,
102848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET'
103848b8605Smrg    )
104848b8605Smrg
105848b8605Smrgenv.CodeGenerate(
106b8e80941Smrg    target = 'indirect_size.c',
107848b8605Smrg    script = GLAPI + 'gen/glX_proto_size.py',
108848b8605Smrg    source = sources,
109848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET'
110848b8605Smrg)
111848b8605Smrg
112848b8605Smrgenv.CodeGenerate(
113b8e80941Smrg    target = 'indirect_init.c',
114848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
115848b8605Smrg    source = sources,
116848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET'
117848b8605Smrg)
118848b8605Smrg
119848b8605Smrgenv.CodeGenerate(
120848b8605Smrg    target = 'indirect_size.h',
121848b8605Smrg    script = GLAPI + 'gen/glX_proto_size.py',
122848b8605Smrg    source = sources,
123b8e80941Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set --header-tag _INDIRECT_SIZE_H > $TARGET'
124848b8605Smrg)
125848b8605Smrg
126848b8605Smrgenv.CodeGenerate(
127848b8605Smrg    target = 'indirect.h',
128848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
129848b8605Smrg    source = sources,
130848b8605Smrg    command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET',
131848b8605Smrg    )
132848b8605Smrg
133848b8605Smrg
134848b8605Smrglibgl = env.InstallSharedLibrary(libgl, version=(1, 2))
135848b8605Smrg
136848b8605Smrgenv.Alias('glx', libgl)
137848b8605Smrgenv.Alias('libgl', libgl)
138