####################################################################### # SConscript for xlib winsys Import('*') env = env.Clone() env.Append(CPPPATH = [ '#/src/mapi', '#/src/mesa', '#/src/mesa/main', '#src/gallium/state_trackers/glx/xlib', Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ]) env.Append(CPPDEFINES = ['USE_XSHM']) env.Prepend(LIBS = env['X11_LIBS']) env.Prepend(LIBPATH = env['X11_LIBPATH']) # when GLES is enabled, gl* and _glapi_* belong to bridge_glapi and # shared_glapi respectively if env['gles']: env.Prepend(LIBPATH = [shared_glapi.dir]) glapi = [bridge_glapi, 'glapi'] env.Prepend(LIBS = [ st_xlib, ws_xlib, glapi, mesautil, compiler, mesa, glsl, nir, gallium, ]) sources = [ 'xlib.c', ] if True: env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_RBUG', 'GALLIUM_SOFTPIPE']) env.Prepend(LIBS = [trace, rbug, softpipe]) if env['llvm']: env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE']) env.Prepend(LIBS = [llvmpipe]) if env['swr']: env.Append(CPPDEFINES = 'GALLIUM_SWR') env.Prepend(LIBS = [swr]) if env['platform'] != 'darwin': # Disallow undefined symbols, except with Address Sanitizer, since libasan # is not linked on shared libs, as it should be LD_PRELOAD'ed instead if not env['asan']: env.Append(SHLINKFLAGS = [ '-Wl,-z,defs', ]) env.Append(SHLINKFLAGS = [ # Restrict exported symbols '-Wl,--version-script=%s' % File("libgl-xlib.sym").srcnode().path, ]) # libGL.so.1.5 libgl_1_5 = env.SharedLibrary( target ='GL', source = sources, SHLIBSUFFIX = env['SHLIBSUFFIX'] + '.1.5', ) # libGL.so.1 libgl = env.subst('${SHLIBPREFIX}GL${SHLIBSUFFIX}') libgl_1 = libgl + '.1' env.Command(libgl_1, libgl_1_5, "ln -sf ${SOURCE.file} ${TARGET}") env.Command(libgl, libgl_1, "ln -sf ${SOURCE.file} ${TARGET}") env.Alias('libgl-xlib', libgl)