import distutils.version Import('*') if not env['llvm']: print 'warning: LLVM disabled: not building llvmpipe' Return() env = env.Clone() env.Tool('udis86') env.Append(CPPPATH = ['.']) env.CodeGenerate( target = 'lp_tile_soa.c', script = 'lp_tile_soa.py', source = ['#src/gallium/auxiliary/util/u_format.csv'], command = 'python $SCRIPT $SOURCE > $TARGET' ) # XXX: Our dependency scanner only finds depended modules in relative dirs. env.Depends('lp_tile_soa.c', [ '#src/gallium/auxiliary/util/u_format_parse.py', '#src/gallium/auxiliary/util/u_format_pack.py', ]) # Only enable SSSE3 for lp_tile_soa_sse3.c ssse3_env = env.Clone() if env['gcc'] \ and distutils.version.LooseVersion(env['CCVERSION']) >= distutils.version.LooseVersion('4.3') \ and env['machine'] in ('x86', 'x86_64') : ssse3_env.Append(CCFLAGS = ['-mssse3']) lp_tile_soa_os = ssse3_env.SharedObject('lp_tile_soa.c') llvmpipe = env.ConvenienceLibrary( target = 'llvmpipe', source = [ 'lp_bld_alpha.c', 'lp_bld_blend_aos.c', 'lp_bld_blend_logicop.c', 'lp_bld_blend_soa.c', 'lp_bld_depth.c', 'lp_bld_interp.c', 'lp_clear.c', 'lp_context.c', 'lp_draw_arrays.c', 'lp_fence.c', 'lp_flush.c', 'lp_jit.c', 'lp_memory.c', 'lp_perf.c', 'lp_query.c', 'lp_rast.c', 'lp_rast_tri.c', 'lp_scene.c', 'lp_scene_queue.c', 'lp_screen.c', 'lp_setup.c', 'lp_setup_line.c', 'lp_setup_point.c', 'lp_setup_tri.c', 'lp_setup_vbuf.c', 'lp_state_blend.c', 'lp_state_clip.c', 'lp_state_derived.c', 'lp_state_fs.c', 'lp_state_gs.c', 'lp_state_rasterizer.c', 'lp_state_sampler.c', 'lp_state_so.c', 'lp_state_surface.c', 'lp_state_vertex.c', 'lp_state_vs.c', 'lp_surface.c', 'lp_tex_sample.c', 'lp_texture.c', 'lp_tile_image.c', lp_tile_soa_os, ]) if env['platform'] != 'embedded': env = env.Clone() env.Prepend(LIBS = [llvmpipe] + gallium) tests = [ 'format', 'blend', 'conv', 'printf', 'sincos', ] if not msvc: tests.append('round') for test in tests: target = env.Program( target = 'lp_test_' + test, source = ['lp_test_' + test + '.c', 'lp_test_main.c'], ) env.InstallProgram(target) Export('llvmpipe')