8d57db72cfb1174456bd9602a4d79542451ffacd
[mesa.git] / src / gallium / drivers / llvmpipe / SConscript
1 from sys import executable as python_cmd
2 import distutils.version
3
4 Import('*')
5
6 if not env['llvm']:
7 print 'warning: LLVM disabled: not building llvmpipe'
8 Return()
9
10 env = env.Clone()
11
12 env.Tool('udis86')
13
14 env.Append(CPPPATH = ['.'])
15
16 env.CodeGenerate(
17 target = 'lp_tile_soa.c',
18 script = 'lp_tile_soa.py',
19 source = ['#src/gallium/auxiliary/util/u_format.csv'],
20 command = python_cmd + ' $SCRIPT $SOURCE > $TARGET'
21 )
22
23 # XXX: Our dependency scanner only finds depended modules in relative dirs.
24 env.Depends('lp_tile_soa.c', [
25 '#src/gallium/auxiliary/util/u_format_parse.py',
26 '#src/gallium/auxiliary/util/u_format_pack.py',
27 ])
28
29
30 # Only enable SSSE3 for lp_tile_soa_sse3.c
31 ssse3_env = env.Clone()
32 if env['gcc'] \
33 and distutils.version.LooseVersion(env['CCVERSION']) >= distutils.version.LooseVersion('4.3') \
34 and env['machine'] in ('x86', 'x86_64') :
35 ssse3_env.Append(CCFLAGS = ['-mssse3'])
36 lp_tile_soa_os = ssse3_env.SharedObject('lp_tile_soa.c')
37
38
39 llvmpipe = env.ConvenienceLibrary(
40 target = 'llvmpipe',
41 source = [
42 'lp_bld_alpha.c',
43 'lp_bld_blend_aos.c',
44 'lp_bld_blend_logicop.c',
45 'lp_bld_blend_soa.c',
46 'lp_bld_depth.c',
47 'lp_bld_interp.c',
48 'lp_clear.c',
49 'lp_context.c',
50 'lp_draw_arrays.c',
51 'lp_fence.c',
52 'lp_flush.c',
53 'lp_jit.c',
54 'lp_memory.c',
55 'lp_perf.c',
56 'lp_query.c',
57 'lp_rast.c',
58 'lp_rast_tri.c',
59 'lp_scene.c',
60 'lp_scene_queue.c',
61 'lp_screen.c',
62 'lp_setup.c',
63 'lp_setup_line.c',
64 'lp_setup_point.c',
65 'lp_setup_tri.c',
66 'lp_setup_coef.c',
67 'lp_setup_coef_intrin.c',
68 'lp_setup_vbuf.c',
69 'lp_state_blend.c',
70 'lp_state_clip.c',
71 'lp_state_derived.c',
72 'lp_state_fs.c',
73 'lp_state_gs.c',
74 'lp_state_rasterizer.c',
75 'lp_state_sampler.c',
76 'lp_state_so.c',
77 'lp_state_surface.c',
78 'lp_state_vertex.c',
79 'lp_state_vs.c',
80 'lp_surface.c',
81 'lp_tex_sample.c',
82 'lp_texture.c',
83 'lp_tile_image.c',
84 lp_tile_soa_os,
85 ])
86
87
88 if env['platform'] != 'embedded':
89 env = env.Clone()
90
91 env.Prepend(LIBS = [llvmpipe] + gallium)
92
93 tests = [
94 'format',
95 'blend',
96 'conv',
97 'printf',
98 'sincos',
99 ]
100
101 if not msvc:
102 tests.append('round')
103
104 for test in tests:
105 target = env.Program(
106 target = 'lp_test_' + test,
107 source = ['lp_test_' + test + '.c', 'lp_test_main.c'],
108 )
109 env.InstallProgram(target)
110
111 Export('llvmpipe')