scons: Use LD version script for libgl-xlib.
[mesa.git] / src / gallium / targets / libgl-xlib / SConscript
1 #######################################################################
2 # SConscript for xlib winsys
3
4 Import('*')
5
6 env = env.Clone()
7
8 env.Append(CPPPATH = [
9 '#/src/mapi',
10 '#/src/mesa',
11 '#/src/mesa/main',
12 '#src/gallium/state_trackers/glx/xlib',
13 Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
14 ])
15
16 env.Append(CPPDEFINES = ['USE_XSHM'])
17
18 env.Prepend(LIBS = env['X11_LIBS'])
19 env.Prepend(LIBPATH = env['X11_LIBPATH'])
20
21 # when GLES is enabled, gl* and _glapi_* belong to bridge_glapi and
22 # shared_glapi respectively
23 if env['gles']:
24 env.Prepend(LIBPATH = [shared_glapi.dir])
25 glapi = [bridge_glapi, 'glapi']
26
27 env.Prepend(LIBS = [
28 st_xlib,
29 ws_xlib,
30 glapi,
31 mesautil,
32 mesa,
33 glsl,
34 gallium,
35 ])
36
37 sources = [
38 'xlib.c',
39 ]
40
41 if True:
42 env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_RBUG', 'GALLIUM_SOFTPIPE'])
43 env.Prepend(LIBS = [trace, rbug, softpipe])
44
45 if env['llvm']:
46 env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
47 env.Prepend(LIBS = [llvmpipe])
48
49 if env['platform'] != 'darwin':
50 env.Append(SHLINKFLAGS = [
51 # Disallow undefined symbols
52 '-Wl,-z,defs',
53 # Restrict exported symbols
54 '-Wl,--version-script=%s' % File("libgl-xlib.sym").srcnode().path,
55 ])
56
57 # libGL.so.1.5
58 libgl_1_5 = env.SharedLibrary(
59 target ='GL',
60 source = sources,
61 SHLIBSUFFIX = env['SHLIBSUFFIX'] + '.1.5',
62 )
63
64 # libGL.so.1
65 libgl = env.subst('${SHLIBPREFIX}GL${SHLIBSUFFIX}')
66 libgl_1 = libgl + '.1'
67 env.Command(libgl_1, libgl_1_5, "ln -sf ${SOURCE.file} ${TARGET}")
68 env.Command(libgl, libgl_1, "ln -sf ${SOURCE.file} ${TARGET}")
69
70 env.Alias('libgl-xlib', libgl)