SConscript revision dff36e900c645401b26c9a44106459e96ee7a24d
1674060f01e9090cd21b3c5656cc3204912ad17a6Jon BoekenoogenImport('*')
2674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
3674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenfrom sys import executable as python_cmd
4674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
5674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv = env.Clone()
6674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
7674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Prepend(CPPPATH = [
8674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'.',           # the build/<platform>/glx/ directory
9674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'#include',
10674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'#include/GL/internal',
11674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'#src/mesa',
12674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'#src/mapi',
13674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	'#src/mapi/glapi',
14674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	#$(LIBDRM_CFLAGS)
15674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	#$(DRI2PROTO_CFLAGS)
16674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	#$(GLPROTO_CFLAGS)
17674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen	#$(X11_INCLUDES)
18674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen])
19674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
20674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Append(CPPDEFINES = [
21674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    '_REENTRANT',
22674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    #('DEFAULT_DRIVER_DIR', 'DRI_DRIVER_SEARCH_DIR')
23674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen])
24674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
25674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Prepend(LIBS = [
26674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    glapi
27674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen])
28674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
29674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.PkgUseModules('X11')
30674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.PkgUseModules('XCB')
31674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.PkgUseModules('DRM')
32674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
33674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenif env['HAVE_XF86VIDMODE']:
34674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    env.Append(CPPDEFINES = ['XF86VIDMODE'])
35674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    env.PkgUseModules('XF86VIDMODE')
36674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
37674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenif False: # XXX: SHARED_GLAPI
38674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    env.Append(CPPDEFINES = ['GLX_SHARED_GLAPI'])
39674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
40674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogensources = [
41674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'clientattrib.c',
42674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'clientinfo.c',
43674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'create_context.c',
44674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'compsize.c',
45674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'eval.c',
46674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glx_error.c',
47674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxconfig.c',
48674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxcmds.c',
49674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxcurrent.c',
50674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxext.c',
51674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxextensions.c',
52674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_glx.c',
53674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect.c',
54674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_init.c',
55674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_size.c',
56674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_window_pos.c',
57674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_texture_compression.c',
58674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_transpose_matrix.c',
59674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_vertex_array.c',
60674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'indirect_vertex_program.c',
61674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'pixel.c',
62674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'pixelstore.c',
63674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'render2.c',
64674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'renderpix.c',
65674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'single2.c',
66674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'singlepix.c',
67674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'vertarr.c',
68674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'xfont.c',
69674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glx_pbuffer.c',
70674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glx_query.c',
71674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'drisw_glx.c',
72674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'dri_common.c',
73674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'dri_glx.c',
74674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'XF86dri.c',
75674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'glxhash.c',
76674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'dri2_glx.c',
77674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'dri2.c',
78674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    'applegl_glx.c',
79674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen]
80674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
81674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenlibgl = env.SharedLibrary(
82674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target ='GL',
83674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = sources,
84674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen)
85674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
86674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
87674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# Generate GLX-specific .c and .h files here.  Other GL API-related
88674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# files are used, but they're generated in mapi/glapi/gen/ since they're
89674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# used by other targets as well.
90674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
91674060f01e9090cd21b3c5656cc3204912ad17a6Jon BoekenoogenGLAPI = '#src/mapi/glapi/'
92674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
93674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.CodeGenerate(
94674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target = 'indirect.c',
95674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    script = GLAPI + 'gen/glX_proto_send.py',
96674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = GLAPI + 'gen/gl_and_es_API.xml',
97674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET'
98674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    )
99674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
100674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.CodeGenerate(
101674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target = 'indirect_size.c', 
102674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    script = GLAPI + 'gen/glX_proto_size.py',
103674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = GLAPI + 'gen/gl_API.xml',
104674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET'
105674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen)
106674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
107674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.CodeGenerate(
108674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target = 'indirect_init.c', 
109674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    script = GLAPI + 'gen/glX_proto_send.py',
110674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = GLAPI + 'gen/gl_API.xml',
111674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET'
112674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen)
113674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
114674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenheaders = []
115674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
116674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenheaders += env.CodeGenerate(
117674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target = 'indirect_size.h',
118674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    script = GLAPI + 'gen/glX_proto_size.py',
119674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = GLAPI + 'gen/gl_API.xml',
120674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET'
121674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen)
122674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
123674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenheaders += env.CodeGenerate(
124674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    target = 'indirect.h',
125674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    script = GLAPI + 'gen/glX_proto_send.py',
126674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    source = GLAPI + 'gen/gl_API.xml',
127674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET',
128674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen    )
129674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
130674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
131674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Depends(sources, headers)
132674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
133674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
134674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenlibgl = env.InstallSharedLibrary(libgl, version=(1, 2))
135674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen
136674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Alias('glx', libgl)
137674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenenv.Alias('libgl', libgl)
138674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen