scons: Make LLVM a black-white dependency.
[mesa.git] / src / gallium / drivers / llvmpipe / SConscript
1 Import('*')
2
3 if not env['llvm']:
4 print 'warning: LLVM disabled: not building llvmpipe'
5 Return()
6
7 env = env.Clone()
8
9 env.Tool('udis86')
10
11 env.Append(CPPPATH = ['.'])
12
13 env.CodeGenerate(
14 target = 'lp_tile_soa.c',
15 script = 'lp_tile_soa.py',
16 source = ['#src/gallium/auxiliary/util/u_format.csv'],
17 command = 'python $SCRIPT $SOURCE > $TARGET'
18 )
19
20 # XXX: Our dependency scanner only finds depended modules in relative dirs.
21 env.Depends('lp_tile_soa.c', [
22 '#src/gallium/auxiliary/util/u_format_parse.py',
23 '#src/gallium/auxiliary/util/u_format_pack.py',
24 ])
25
26 llvmpipe = env.ConvenienceLibrary(
27 target = 'llvmpipe',
28 source = [
29 'lp_clear.c',
30 'lp_context.c',
31 'lp_draw_arrays.c',
32 'lp_fence.c',
33 'lp_flush.c',
34 'lp_jit.c',
35 'lp_perf.c',
36 'lp_query.c',
37 'lp_rast.c',
38 'lp_rast_tri.c',
39 'lp_scene.c',
40 'lp_scene_queue.c',
41 'lp_screen.c',
42 'lp_setup.c',
43 'lp_setup_line.c',
44 'lp_setup_point.c',
45 'lp_setup_tri.c',
46 'lp_setup_vbuf.c',
47 'lp_state_blend.c',
48 'lp_state_clip.c',
49 'lp_state_derived.c',
50 'lp_state_fs.c',
51 'lp_state_rasterizer.c',
52 'lp_state_sampler.c',
53 'lp_state_surface.c',
54 'lp_state_vertex.c',
55 'lp_state_vs.c',
56 'lp_surface.c',
57 'lp_tex_sample_llvm.c',
58 'lp_texture.c',
59 'lp_tile_image.c',
60 'lp_tile_soa.c',
61 ])
62
63
64 if env['platform'] != 'embedded':
65 env = env.Clone()
66
67 env.Prepend(LIBS = [llvmpipe] + gallium)
68
69 tests = [
70 'blend',
71 'conv',
72 ]
73
74 for test in tests:
75 target = env.Program(
76 target = 'lp_test_' + test,
77 source = ['lp_test_' + test + '.c', 'lp_test_main.c'],
78 )
79 env.InstallProgram(target)
80
81 Export('llvmpipe')