SConscript revision 63aa8a39c4e7ee996afc87404474cce570ac3729
1b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil#######################################################################
2b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil# SConscript for xlib winsys
3b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
4b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2PhilImport('*')
5b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
6b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philif env['platform'] != 'linux':
7b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    Return()
8b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
9b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philif 'mesa' not in env['statetrackers']:
10b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    print 'warning: Mesa state tracker disabled: skipping build of xlib libGL.so'
11b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    Return()
12b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
13b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philif env['dri']:
14b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    print 'warning: DRI enabled: skipping build of xlib libGL.so'
15b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    Return()
16b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
17b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philif not set(('softpipe', 'llvmpipe', 'cell')).intersection(env['drivers']):
18b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    print 'warning: no supported pipe driver: skipping build of xlib libGL.so'
19b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    Return()
20b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
21b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philenv = env.Clone()
22b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil
23b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Philenv.Append(CPPPATH = [
24b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    '#/src/mesa',
254f2b662ea5180319916f7e376b2d7906075b11cbPierre LALET    '#/src/mesa/main',
26b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil    '#src/gallium/state_trackers/glx/xlib',
272ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon])
282ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon
292ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadonenv.Append(CPPDEFINES = ['USE_XSHM'])
302ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon
312ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadonenv.Prepend(LIBS = [
322ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    st_xlib,
332ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    ws_xlib,
342ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    trace,
352ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    identity,
362ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    glapi,
372ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    mesa,
382ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    glsl,
392ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    gallium,
40e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon])
41e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon
42e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonsources = [
43e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    'xlib.c',
44e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon]
45e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon
46e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonif 'softpipe' in env['drivers']:
47e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE')
48e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    env.Prepend(LIBS = [softpipe])
496057906368d55634d11e1d19a5cca1f127595b11Robin Jarry
50e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonif 'llvmpipe' in env['drivers']:
51e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    env.Tool('llvm')
52e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    if 'LLVM_VERSION' in env:
53e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon        env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
54e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon        env.Tool('udis86')
55e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon        env.Prepend(LIBS = [llvmpipe])
56e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    
57e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonif 'cell' in env['drivers']:
58e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    env.Append(CPPDEFINES = 'GALLIUM_CELL')
59e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    env.Prepend(LIBS = [cell])
60e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon
61e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
62e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonlibgl = env.SharedLibrary(
63e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    target ='GL',
64e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    source = sources,
65e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon)
66e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon
67e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadonif not env['dri']:
68e7dcc76cf326b864ad0b6a1c214ee3be4a1dd53eGuillaume Valadon    # Only install this libGL.so if DRI not enabled
692ec520aa444990a595f5280e666ab4c3f2f3795fGuillaume Valadon    env.InstallSharedLibrary(libgl, version=(1, 5))
70b5f59b6bdb4f84b6f4acdb3ddbe2c5326e8fbfd2Phil