blob: 26b258b956957cac81a0f71788980928461f4850 [file] [log] [blame]
José Fonsecabdaa8be2010-07-20 13:40:01 +01001from sys import executable as python_cmd
José Fonseca0a36a062010-07-15 18:22:39 +01002import distutils.version
3
José Fonseca946f4322009-07-26 23:44:38 +01004Import('*')
5
José Fonsecaea532f02010-04-10 02:41:39 +01006if not env['llvm']:
7 print 'warning: LLVM disabled: not building llvmpipe'
José Fonseca836a9f02009-09-01 12:22:52 +01008 Return()
9
José Fonsecaea532f02010-04-10 02:41:39 +010010env = env.Clone()
11
José Fonsecacf9be462010-01-01 00:20:52 +000012env.Append(CPPPATH = ['.'])
13
José Fonseca589ec332009-10-04 13:04:08 +010014env.CodeGenerate(
15 target = 'lp_tile_soa.c',
16 script = 'lp_tile_soa.py',
17 source = ['#src/gallium/auxiliary/util/u_format.csv'],
José Fonsecabdaa8be2010-07-20 13:40:01 +010018 command = python_cmd + ' $SCRIPT $SOURCE > $TARGET'
José Fonseca589ec332009-10-04 13:04:08 +010019)
20
José Fonsecaeee21b32010-02-26 10:11:52 +000021# XXX: Our dependency scanner only finds depended modules in relative dirs.
22env.Depends('lp_tile_soa.c', [
23 '#src/gallium/auxiliary/util/u_format_parse.py',
José Fonseca9beb3022010-02-26 16:45:22 +000024 '#src/gallium/auxiliary/util/u_format_pack.py',
José Fonsecaeee21b32010-02-26 10:11:52 +000025])
26
Chris Libed78862010-07-14 14:19:11 +010027
Keith Whitwell2de720d2010-10-01 15:13:51 +010028lp_tile_soa_os = env.SharedObject('lp_tile_soa.c')
Chris Libed78862010-07-14 14:19:11 +010029
30
José Fonseca946f4322009-07-26 23:44:38 +010031llvmpipe = env.ConvenienceLibrary(
32 target = 'llvmpipe',
33 source = [
Brian Paul7a051612010-04-16 10:22:33 -060034 'lp_bld_alpha.c',
Brian Pauld75129d2010-04-16 10:28:21 -060035 'lp_bld_blend_aos.c',
36 'lp_bld_blend_logicop.c',
37 'lp_bld_blend_soa.c',
Brian Paulf17d1512010-04-16 10:20:32 -060038 'lp_bld_depth.c',
Brian Paulcf88dcf2010-04-16 10:17:38 -060039 'lp_bld_interp.c',
José Fonseca946f4322009-07-26 23:44:38 +010040 'lp_clear.c',
41 'lp_context.c',
42 'lp_draw_arrays.c',
Brian Paul2876b682009-12-11 17:32:45 -070043 'lp_fence.c',
José Fonseca946f4322009-07-26 23:44:38 +010044 'lp_flush.c',
José Fonseca08dd41f2009-08-23 05:52:20 +010045 'lp_jit.c',
Brian Pauleffd3302010-06-30 11:49:40 -060046 'lp_memory.c',
Brian Paulcd9d9e22010-01-21 14:59:01 -070047 'lp_perf.c',
José Fonseca946f4322009-07-26 23:44:38 +010048 'lp_query.c',
Brian Paul1073e392010-01-19 09:45:51 -070049 'lp_rast.c',
Keith Whitwellf25836d2010-08-27 19:24:51 +010050 'lp_rast_debug.c',
Brian Paul1073e392010-01-19 09:45:51 -070051 'lp_rast_tri.c',
Keith Whitwell663750d2009-12-13 18:17:25 +000052 'lp_scene.c',
53 'lp_scene_queue.c',
José Fonseca946f4322009-07-26 23:44:38 +010054 'lp_screen.c',
José Fonseca946f4322009-07-26 23:44:38 +010055 'lp_setup.c',
Keith Whitwell415b2712009-10-09 10:44:07 +010056 'lp_setup_line.c',
57 'lp_setup_point.c',
Keith Whitwell663750d2009-12-13 18:17:25 +000058 'lp_setup_tri.c',
Keith Whitwell5ce03802010-01-06 16:44:43 +000059 'lp_setup_vbuf.c',
José Fonseca946f4322009-07-26 23:44:38 +010060 'lp_state_blend.c',
61 'lp_state_clip.c',
62 'lp_state_derived.c',
63 'lp_state_fs.c',
Keith Whitwell5b4c43d2010-09-05 13:17:43 +010064 'lp_state_setup.c',
Keith Whitwella6d9d182010-05-28 16:54:35 +010065 'lp_state_gs.c',
José Fonseca946f4322009-07-26 23:44:38 +010066 'lp_state_rasterizer.c',
67 'lp_state_sampler.c',
Zack Rusinb5e381d2010-06-22 12:56:54 -040068 'lp_state_so.c',
José Fonseca946f4322009-07-26 23:44:38 +010069 'lp_state_surface.c',
70 'lp_state_vertex.c',
José Fonseca3f36f4b2009-08-22 19:07:56 +010071 'lp_state_vs.c',
José Fonseca946f4322009-07-26 23:44:38 +010072 'lp_surface.c',
José Fonseca7cebd162010-04-25 12:11:36 +010073 'lp_tex_sample.c',
José Fonseca946f4322009-07-26 23:44:38 +010074 'lp_texture.c',
Brian Paul1eec90d2010-02-22 15:19:45 -070075 'lp_tile_image.c',
Chris Libed78862010-07-14 14:19:11 +010076 lp_tile_soa_os,
José Fonseca946f4322009-07-26 23:44:38 +010077 ])
78
José Fonseca601498a2010-11-01 13:30:22 +000079env.Alias('llvmpipe', llvmpipe)
80
José Fonseca7d043162009-08-01 17:59:19 +010081
José Fonseca9cd2abd2010-02-04 14:36:10 +000082if env['platform'] != 'embedded':
83 env = env.Clone()
José Fonseca7d043162009-08-01 17:59:19 +010084
José Fonseca9cd2abd2010-02-04 14:36:10 +000085 env.Prepend(LIBS = [llvmpipe] + gallium)
José Fonseca87837322009-07-27 01:23:15 +010086
José Fonseca9cd2abd2010-02-04 14:36:10 +000087 tests = [
José Fonsecab29fcc72010-04-20 13:41:10 +020088 'format',
José Fonseca9cd2abd2010-02-04 14:36:10 +000089 'blend',
90 'conv',
Qicheng Christopher Li80ee3a42010-05-24 13:44:13 +010091 'printf',
92 'sincos',
José Fonseca9cd2abd2010-02-04 14:36:10 +000093 ]
José Fonseca7d043162009-08-01 17:59:19 +010094
José Fonseca601498a2010-11-01 13:30:22 +000095 if not env['msvc']:
Vinson Leec89ea8f2010-07-06 17:25:39 -070096 tests.append('round')
97
José Fonseca9cd2abd2010-02-04 14:36:10 +000098 for test in tests:
99 target = env.Program(
100 target = 'lp_test_' + test,
101 source = ['lp_test_' + test + '.c', 'lp_test_main.c'],
102 )
103 env.InstallProgram(target)
José Fonseca89884242009-08-07 09:51:48 +0100104
José Fonseca30a44ee2010-05-11 17:44:52 +0100105Export('llvmpipe')