failover: several fixes to failover pipe module
[mesa.git] / src / mesa / SConscript
1 #######################################################################
2 # SConscript for mesa
3 #
4 # TODO: Split this into per-module SConscripts
5
6
7 Import('*')
8
9
10 #######################################################################
11 # Core sources
12
13 MAIN_SOURCES = [
14 'main/api_arrayelt.c',
15 'main/api_loopback.c',
16 'main/api_noop.c',
17 'main/api_validate.c',
18 'main/accum.c',
19 'main/attrib.c',
20 'main/arrayobj.c',
21 'main/blend.c',
22 'main/bufferobj.c',
23 'main/buffers.c',
24 'main/clip.c',
25 'main/colortab.c',
26 'main/context.c',
27 'main/convolve.c',
28 'main/debug.c',
29 'main/depth.c',
30 'main/depthstencil.c',
31 'main/dlist.c',
32 'main/drawpix.c',
33 'main/enable.c',
34 'main/enums.c',
35 'main/eval.c',
36 'main/execmem.c',
37 'main/extensions.c',
38 'main/fbobject.c',
39 'main/feedback.c',
40 'main/ffvertex_prog.c',
41 'main/fog.c',
42 'main/framebuffer.c',
43 'main/get.c',
44 'main/getstring.c',
45 'main/hash.c',
46 'main/hint.c',
47 'main/histogram.c',
48 'main/image.c',
49 'main/imports.c',
50 'main/light.c',
51 'main/lines.c',
52 'main/matrix.c',
53 'main/mipmap.c',
54 'main/mm.c',
55 'main/pixel.c',
56 'main/points.c',
57 'main/polygon.c',
58 'main/queryobj.c',
59 'main/rastpos.c',
60 'main/rbadaptors.c',
61 'main/renderbuffer.c',
62 'main/shaders.c',
63 'main/state.c',
64 'main/stencil.c',
65 'main/texcompress.c',
66 'main/texcompress_s3tc.c',
67 'main/texcompress_fxt1.c',
68 'main/texenvprogram.c',
69 'main/texformat.c',
70 'main/teximage.c',
71 'main/texobj.c',
72 'main/texrender.c',
73 'main/texstate.c',
74 'main/texstore.c',
75 'main/varray.c',
76 'main/vtxfmt.c',
77 ]
78
79 GLAPI_SOURCES = [
80 'main/dispatch.c',
81 'glapi/glapi.c',
82 'glapi/glthread.c',
83 ]
84
85 MATH_SOURCES = [
86 'math/m_debug_clip.c',
87 'math/m_debug_norm.c',
88 'math/m_debug_xform.c',
89 'math/m_eval.c',
90 'math/m_matrix.c',
91 'math/m_translate.c',
92 'math/m_vector.c',
93 'math/m_xform.c',
94 ]
95
96 VBO_SOURCES = [
97 'vbo/vbo_context.c',
98 'vbo/vbo_exec.c',
99 'vbo/vbo_exec_api.c',
100 'vbo/vbo_exec_array.c',
101 'vbo/vbo_exec_draw.c',
102 'vbo/vbo_exec_eval.c',
103 'vbo/vbo_rebase.c',
104 'vbo/vbo_split.c',
105 'vbo/vbo_split_copy.c',
106 'vbo/vbo_split_inplace.c',
107 'vbo/vbo_save.c',
108 'vbo/vbo_save_api.c',
109 'vbo/vbo_save_draw.c',
110 'vbo/vbo_save_loopback.c',
111 ]
112
113 VF_SOURCES = [
114 'vf/vf.c',
115 'vf/vf_generic.c',
116 'vf/vf_sse.c',
117 ]
118
119 DRAW_SOURCES = [
120 'pipe/draw/draw_clip.c',
121 'pipe/draw/draw_context.c',
122 'pipe/draw/draw_cull.c',
123 'pipe/draw/draw_debug.c',
124 'pipe/draw/draw_flatshade.c',
125 'pipe/draw/draw_offset.c',
126 'pipe/draw/draw_prim.c',
127 'pipe/draw/draw_stipple.c',
128 'pipe/draw/draw_twoside.c',
129 'pipe/draw/draw_unfilled.c',
130 'pipe/draw/draw_validate.c',
131 'pipe/draw/draw_vbuf.c',
132 'pipe/draw/draw_vertex.c',
133 'pipe/draw/draw_vertex_cache.c',
134 'pipe/draw/draw_vertex_fetch.c',
135 'pipe/draw/draw_vertex_shader.c',
136 'pipe/draw/draw_vertex_shader_llvm.c',
137 'pipe/draw/draw_vf.c',
138 'pipe/draw/draw_vf_generic.c',
139 'pipe/draw/draw_vf_sse.c',
140 'pipe/draw/draw_wide_prims.c',
141 ]
142
143 TGSIEXEC_SOURCES = [
144 'pipe/tgsi/exec/tgsi_exec.c',
145 'pipe/tgsi/exec/tgsi_sse2.c',
146 ]
147
148 TGSIUTIL_SOURCES = [
149 'pipe/tgsi/util/tgsi_build.c',
150 'pipe/tgsi/util/tgsi_dump.c',
151 'pipe/tgsi/util/tgsi_parse.c',
152 'pipe/tgsi/util/tgsi_util.c',
153 ]
154
155 STATECACHE_SOURCES = [
156 'pipe/cso_cache/cso_hash.c',
157 'pipe/cso_cache/cso_cache.c',
158 ]
159
160 PIPEUTIL_SOURCES = [
161 'pipe/util/p_debug.c',
162 'pipe/util/p_tile.c',
163 'pipe/util/p_util.c',
164 ]
165
166 STATETRACKER_SOURCES = [
167 'state_tracker/st_atom.c',
168 'state_tracker/st_atom_blend.c',
169 'state_tracker/st_atom_clip.c',
170 'state_tracker/st_atom_constbuf.c',
171 'state_tracker/st_atom_depth.c',
172 'state_tracker/st_atom_framebuffer.c',
173 'state_tracker/st_atom_pixeltransfer.c',
174 'state_tracker/st_atom_sampler.c',
175 'state_tracker/st_atom_scissor.c',
176 'state_tracker/st_atom_shader.c',
177 'state_tracker/st_atom_rasterizer.c',
178 'state_tracker/st_atom_stipple.c',
179 'state_tracker/st_atom_texture.c',
180 'state_tracker/st_atom_viewport.c',
181 'state_tracker/st_cb_accum.c',
182 'state_tracker/st_cb_bufferobjects.c',
183 'state_tracker/st_cb_clear.c',
184 'state_tracker/st_cb_flush.c',
185 'state_tracker/st_cb_drawpixels.c',
186 'state_tracker/st_cb_fbo.c',
187 'state_tracker/st_cb_feedback.c',
188 'state_tracker/st_cb_program.c',
189 'state_tracker/st_cb_queryobj.c',
190 'state_tracker/st_cb_rasterpos.c',
191 'state_tracker/st_cb_readpixels.c',
192 'state_tracker/st_cb_strings.c',
193 'state_tracker/st_cb_texture.c',
194 'state_tracker/st_cache.c',
195 'state_tracker/st_context.c',
196 'state_tracker/st_debug.c',
197 'state_tracker/st_draw.c',
198 'state_tracker/st_extensions.c',
199 'state_tracker/st_format.c',
200 'state_tracker/st_framebuffer.c',
201 'state_tracker/st_mesa_to_tgsi.c',
202 'state_tracker/st_program.c',
203 'state_tracker/st_texture.c',
204 ]
205
206 SHADER_SOURCES = [
207 'shader/arbprogparse.c',
208 'shader/arbprogram.c',
209 'shader/atifragshader.c',
210 'shader/grammar/grammar_mesa.c',
211 'shader/nvfragparse.c',
212 'shader/nvprogram.c',
213 'shader/nvvertparse.c',
214 'shader/program.c',
215 'shader/prog_cache.c',
216 'shader/prog_debug.c',
217 'shader/prog_execute.c',
218 'shader/prog_instruction.c',
219 'shader/prog_parameter.c',
220 'shader/prog_print.c',
221 'shader/prog_statevars.c',
222 'shader/programopt.c',
223 'shader/shader_api.c',
224 ]
225
226 SLANG_SOURCES = [
227 'shader/slang/slang_builtin.c',
228 'shader/slang/slang_codegen.c',
229 'shader/slang/slang_compile.c',
230 'shader/slang/slang_compile_function.c',
231 'shader/slang/slang_compile_operation.c',
232 'shader/slang/slang_compile_struct.c',
233 'shader/slang/slang_compile_variable.c',
234 'shader/slang/slang_emit.c',
235 'shader/slang/slang_ir.c',
236 'shader/slang/slang_label.c',
237 'shader/slang/slang_library_noise.c',
238 'shader/slang/slang_link.c',
239 'shader/slang/slang_log.c',
240 'shader/slang/slang_mem.c',
241 'shader/slang/slang_preprocess.c',
242 'shader/slang/slang_print.c',
243 'shader/slang/slang_simplify.c',
244 'shader/slang/slang_storage.c',
245 'shader/slang/slang_typeinfo.c',
246 'shader/slang/slang_vartable.c',
247 'shader/slang/slang_utility.c',
248 ]
249
250
251 #######################################################################
252 # Assembly sources
253
254 ASM_C_SOURCES = [
255 'x86/common_x86.c',
256 'x86/x86.c',
257 'x86/3dnow.c',
258 'x86/sse.c',
259 'x86/rtasm/x86sse.c',
260 'sparc/sparc.c',
261 'ppc/common_ppc.c',
262 'x86-64/x86-64.c',
263 ]
264
265 X86_SOURCES = [
266 'x86/common_x86_asm.S',
267 'x86/x86_xform2.S',
268 'x86/x86_xform3.S',
269 'x86/x86_xform4.S',
270 'x86/x86_cliptest.S',
271 'x86/mmx_blend.S',
272 'x86/3dnow_xform1.S',
273 'x86/3dnow_xform2.S',
274 'x86/3dnow_xform3.S',
275 'x86/3dnow_xform4.S',
276 'x86/3dnow_normal.S',
277 'x86/sse_xform1.S',
278 'x86/sse_xform2.S',
279 'x86/sse_xform3.S',
280 'x86/sse_xform4.S',
281 'x86/sse_normal.S',
282 'x86/read_rgba_span_x86.S',
283 ]
284
285 X86_API = [
286 'x86/glapi_x86.S',
287 ]
288
289 X86_64_SOURCES = [
290 'x86-64/xform4.S',
291 ]
292
293 X86_64_API = [
294 'x86-64/glapi_x86-64.S',
295 ]
296
297 SPARC_SOURCES = [
298 'sparc/clip.S',
299 'sparc/norm.S',
300 'sparc/xform.S',
301 ]
302
303 SPARC_API = [
304 'sparc/glapi_sparc.S',
305 ]
306
307 if x86:
308 ASM_SOURCES = ASM_C_SOURCES + X86_SOURCES
309 API_SOURCES = X86_API
310 else:
311 ASM_SOURCES = []
312 API_SOURCES = []
313
314
315 #######################################################################
316 # Driver sources
317
318
319 X11_DRIVER_SOURCES = [
320 'pipe/xlib/glxapi.c',
321 'pipe/xlib/fakeglx.c',
322 'pipe/xlib/xfonts.c',
323 'pipe/xlib/xm_api.c',
324 'pipe/xlib/xm_winsys.c',
325 'pipe/xlib/xm_winsys_aub.c',
326 'pipe/xlib/brw_aub.c',
327 ]
328
329 OSMESA_DRIVER_SOURCES = [
330 'drivers/osmesa/osmesa.c',
331 ]
332
333 GLIDE_DRIVER_SOURCES = [
334 'drivers/glide/fxapi.c',
335 'drivers/glide/fxdd.c',
336 'drivers/glide/fxddspan.c',
337 'drivers/glide/fxddtex.c',
338 'drivers/glide/fxsetup.c',
339 'drivers/glide/fxtexman.c',
340 'drivers/glide/fxtris.c',
341 'drivers/glide/fxvb.c',
342 'drivers/glide/fxglidew.c',
343 'drivers/glide/fxg.c',
344 ]
345
346 SVGA_DRIVER_SOURCES = [
347 'drivers/svga/svgamesa.c',
348 'drivers/svga/svgamesa8.c',
349 'drivers/svga/svgamesa15.c',
350 'drivers/svga/svgamesa16.c',
351 'drivers/svga/svgamesa24.c',
352 'drivers/svga/svgamesa32.c',
353 ]
354
355 FBDEV_DRIVER_SOURCES = [
356 'drivers/fbdev/glfbdev.c',
357 ]
358
359
360 ### All the core C sources
361
362 SOLO_SOURCES = \
363 MAIN_SOURCES + \
364 MATH_SOURCES + \
365 VBO_SOURCES + \
366 VF_SOURCES + \
367 DRAW_SOURCES + \
368 TGSIEXEC_SOURCES + \
369 TGSIUTIL_SOURCES + \
370 PIPEUTIL_SOURCES + \
371 STATECACHE_SOURCES + \
372 STATETRACKER_SOURCES + \
373 SHADER_SOURCES + \
374 ASM_SOURCES + \
375 SLANG_SOURCES
376
377 CORE_SOURCES = \
378 GLAPI_SOURCES + API_SOURCES + \
379 SOLO_SOURCES
380
381 ALL_SOURCES = \
382 GLAPI_SOURCES + API_SOURCES + \
383 SOLO_SOURCES + \
384 ASM_SOURCES + \
385 X11_DRIVER_SOURCES + \
386 FBDEV_DRIVER_SOURCES + \
387 OSMESA_DRIVER_SOURCES
388
389
390 ######################################################################
391 # Gallium sources
392
393 SConscript([
394 'pipe/SConscript',
395 ])
396
397
398 ######################################################################
399 # libGL
400
401 if not dri:
402 STAND_ALONE_DRIVER_SOURCES = \
403 CORE_SOURCES + \
404 X11_DRIVER_SOURCES
405
406 Import(
407 'softpipe',
408 'i915simple',
409 'i965simple'
410 )
411
412 pipe_drivers = [
413 softpipe,
414 i965simple
415 ]
416
417 env.SharedLibrary(
418 target ='GL',
419 source = STAND_ALONE_DRIVER_SOURCES,
420 LIBS = [softpipe, i965simple] + env['LIBS'],
421 )
422
423
424 ######################################################################
425 # Driver sources
426
427 if dri:
428 mesa = env.ConvenienceLibrary(
429 target = 'mesa',
430 source = SOLO_SOURCES,
431 )
432 env.Prepend(LIBS = [mesa])
433
434 SConscript([
435 'drivers/dri/SConscript',
436 ])