SConscript revision 848b8605
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',
14848b8605Smrg	'#src/loader',
15848b8605Smrg	'#src/mesa',
16848b8605Smrg	'#src/mapi',
17848b8605Smrg	'#src/mapi/glapi',
18848b8605Smrg	#$(LIBDRM_CFLAGS)
19848b8605Smrg	#$(DRI2PROTO_CFLAGS)
20848b8605Smrg	#$(GLPROTO_CFLAGS)
21848b8605Smrg	#$(X11_INCLUDES)
22848b8605Smrg])
23848b8605Smrg
24848b8605Smrgenv.Append(CPPDEFINES = [
25848b8605Smrg    '_REENTRANT',
26848b8605Smrg    #('DEFAULT_DRIVER_DIR', 'DRI_DRIVER_SEARCH_DIR')
27848b8605Smrg])
28848b8605Smrg
29848b8605Smrgenv.Prepend(LIBS = [
30848b8605Smrg    libloader,
31848b8605Smrg    glapi
32848b8605Smrg])
33848b8605Smrg
34848b8605Smrgenv.PkgUseModules('X11')
35848b8605Smrgenv.PkgUseModules('XCB')
36848b8605Smrgenv.PkgUseModules('DRM')
37848b8605Smrg
38848b8605Smrgif env['HAVE_XF86VIDMODE']:
39848b8605Smrg    env.Append(CPPDEFINES = ['XF86VIDMODE'])
40848b8605Smrg    env.PkgUseModules('XF86VIDMODE')
41848b8605Smrg
42848b8605Smrgif False: # XXX: SHARED_GLAPI
43848b8605Smrg    env.Append(CPPDEFINES = ['GLX_SHARED_GLAPI'])
44848b8605Smrg
45848b8605Smrgsources = [
46848b8605Smrg    'clientattrib.c',
47848b8605Smrg    'clientinfo.c',
48848b8605Smrg    'create_context.c',
49848b8605Smrg    'compsize.c',
50848b8605Smrg    'eval.c',
51848b8605Smrg    'glx_error.c',
52848b8605Smrg    'glxconfig.c',
53848b8605Smrg    'glxcmds.c',
54848b8605Smrg    'glxcurrent.c',
55848b8605Smrg    'glxext.c',
56848b8605Smrg    'glxextensions.c',
57848b8605Smrg    'indirect_glx.c',
58848b8605Smrg    'indirect.c',
59848b8605Smrg    'indirect_init.c',
60848b8605Smrg    'indirect_size.c',
61848b8605Smrg    'indirect_window_pos.c',
62848b8605Smrg    'indirect_texture_compression.c',
63848b8605Smrg    'indirect_transpose_matrix.c',
64848b8605Smrg    'indirect_vertex_array.c',
65848b8605Smrg    'indirect_vertex_program.c',
66848b8605Smrg    'pixel.c',
67848b8605Smrg    'pixelstore.c',
68848b8605Smrg    'query_renderer.c',
69848b8605Smrg    'render2.c',
70848b8605Smrg    'renderpix.c',
71848b8605Smrg    'single2.c',
72848b8605Smrg    'singlepix.c',
73848b8605Smrg    'vertarr.c',
74848b8605Smrg    'xfont.c',
75848b8605Smrg    'glx_pbuffer.c',
76848b8605Smrg    'glx_query.c',
77848b8605Smrg    'drisw_glx.c',
78848b8605Smrg    'dri_common.c',
79848b8605Smrg    'dri_glx.c',
80848b8605Smrg    'XF86dri.c',
81848b8605Smrg    'glxhash.c',
82848b8605Smrg    'dri2_glx.c',
83848b8605Smrg    'dri2.c',
84848b8605Smrg    'dri2_query_renderer.c',
85848b8605Smrg    #'dri3_glx.c',
86848b8605Smrg    'applegl_glx.c',
87848b8605Smrg]
88848b8605Smrg
89848b8605Smrglibgl = env.SharedLibrary(
90848b8605Smrg    target ='GL',
91848b8605Smrg    source = sources,
92848b8605Smrg)
93848b8605Smrg
94848b8605Smrg
95848b8605Smrg# Generate GLX-specific .c and .h files here.  Other GL API-related
96848b8605Smrg# files are used, but they're generated in mapi/glapi/gen/ since they're
97848b8605Smrg# used by other targets as well.
98848b8605Smrg
99848b8605SmrgGLAPI = '#src/mapi/glapi/'
100848b8605Smrgsources = [GLAPI + 'gen/gl_API.xml'] + env.Glob(GLAPI + 'gen/*.xml')
101848b8605Smrg
102848b8605Smrgenv.CodeGenerate(
103848b8605Smrg    target = 'indirect.c',
104848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
105848b8605Smrg    source = sources,
106848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET'
107848b8605Smrg    )
108848b8605Smrg
109848b8605Smrgenv.CodeGenerate(
110848b8605Smrg    target = 'indirect_size.c', 
111848b8605Smrg    script = GLAPI + 'gen/glX_proto_size.py',
112848b8605Smrg    source = sources,
113848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET'
114848b8605Smrg)
115848b8605Smrg
116848b8605Smrgenv.CodeGenerate(
117848b8605Smrg    target = 'indirect_init.c', 
118848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
119848b8605Smrg    source = sources,
120848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET'
121848b8605Smrg)
122848b8605Smrg
123848b8605Smrgenv.CodeGenerate(
124848b8605Smrg    target = 'indirect_size.h',
125848b8605Smrg    script = GLAPI + 'gen/glX_proto_size.py',
126848b8605Smrg    source = sources,
127848b8605Smrg    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET'
128848b8605Smrg)
129848b8605Smrg
130848b8605Smrgenv.CodeGenerate(
131848b8605Smrg    target = 'indirect.h',
132848b8605Smrg    script = GLAPI + 'gen/glX_proto_send.py',
133848b8605Smrg    source = sources,
134848b8605Smrg    command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET',
135848b8605Smrg    )
136848b8605Smrg
137848b8605Smrg
138848b8605Smrglibgl = env.InstallSharedLibrary(libgl, version=(1, 2))
139848b8605Smrg
140848b8605Smrgenv.Alias('glx', libgl)
141848b8605Smrgenv.Alias('libgl', libgl)
142