1848b8605SmrgImport('*') 2848b8605Smrg 3848b8605Smrgif not env['x11'] or not env['xcb'] or not env['drm']: 4848b8605Smrg Return() 5848b8605Smrg 6848b8605Smrgfrom sys import executable as python_cmd 7848b8605Smrg 8848b8605Smrgenv = env.Clone() 9848b8605Smrg 10848b8605Smrgenv.Prepend(CPPPATH = [ 11848b8605Smrg '.', # the build/<platform>/glx/ directory 12848b8605Smrg '#include', 13848b8605Smrg '#include/GL/internal', 14b8e80941Smrg '#src/', 15848b8605Smrg '#src/loader', 16848b8605Smrg '#src/mesa', 17848b8605Smrg '#src/mapi', 18848b8605Smrg '#src/mapi/glapi', 19848b8605Smrg #$(LIBDRM_CFLAGS) 20848b8605Smrg #$(DRI2PROTO_CFLAGS) 21848b8605Smrg #$(GLPROTO_CFLAGS) 22848b8605Smrg #$(X11_INCLUDES) 23848b8605Smrg]) 24848b8605Smrg 25848b8605Smrgenv.Append(CPPDEFINES = [ 26848b8605Smrg '_REENTRANT', 27848b8605Smrg]) 28848b8605Smrg 29848b8605Smrgenv.Prepend(LIBS = [ 30848b8605Smrg libloader, 31b8e80941Smrg mesautil, 32848b8605Smrg glapi 33848b8605Smrg]) 34848b8605Smrg 35848b8605Smrgenv.PkgUseModules('X11') 36848b8605Smrgenv.PkgUseModules('XCB') 37848b8605Smrgenv.PkgUseModules('DRM') 38b8e80941Smrgenv.PkgUseModules('XF86VIDMODE') 39848b8605Smrg 40848b8605Smrgsources = [ 41848b8605Smrg 'clientattrib.c', 42848b8605Smrg 'clientinfo.c', 43848b8605Smrg 'create_context.c', 44848b8605Smrg 'compsize.c', 45848b8605Smrg 'eval.c', 46848b8605Smrg 'glx_error.c', 47848b8605Smrg 'glxconfig.c', 48848b8605Smrg 'glxcmds.c', 49848b8605Smrg 'glxcurrent.c', 50848b8605Smrg 'glxext.c', 51848b8605Smrg 'glxextensions.c', 52848b8605Smrg 'indirect_glx.c', 53848b8605Smrg 'indirect.c', 54848b8605Smrg 'indirect_init.c', 55848b8605Smrg 'indirect_size.c', 56848b8605Smrg 'indirect_window_pos.c', 57848b8605Smrg 'indirect_texture_compression.c', 58848b8605Smrg 'indirect_transpose_matrix.c', 59848b8605Smrg 'indirect_vertex_array.c', 60848b8605Smrg 'indirect_vertex_program.c', 61848b8605Smrg 'pixel.c', 62848b8605Smrg 'pixelstore.c', 63848b8605Smrg 'query_renderer.c', 64848b8605Smrg 'render2.c', 65848b8605Smrg 'renderpix.c', 66848b8605Smrg 'single2.c', 67848b8605Smrg 'singlepix.c', 68848b8605Smrg 'vertarr.c', 69848b8605Smrg 'xfont.c', 70848b8605Smrg 'glx_pbuffer.c', 71848b8605Smrg 'glx_query.c', 72848b8605Smrg 'drisw_glx.c', 73848b8605Smrg 'dri_common.c', 74848b8605Smrg 'dri_glx.c', 75848b8605Smrg 'XF86dri.c', 76848b8605Smrg 'glxhash.c', 77848b8605Smrg 'dri2_glx.c', 78848b8605Smrg 'dri2.c', 79b8e80941Smrg 'dri_common_query_renderer.c', 80b8e80941Smrg 'dri_common_interop.c', 81848b8605Smrg #'dri3_glx.c', 82848b8605Smrg 'applegl_glx.c', 83848b8605Smrg] 84848b8605Smrg 85848b8605Smrglibgl = env.SharedLibrary( 86848b8605Smrg target ='GL', 87848b8605Smrg source = sources, 88848b8605Smrg) 89848b8605Smrg 90848b8605Smrg 91848b8605Smrg# Generate GLX-specific .c and .h files here. Other GL API-related 92848b8605Smrg# files are used, but they're generated in mapi/glapi/gen/ since they're 93848b8605Smrg# used by other targets as well. 94848b8605Smrg 95848b8605SmrgGLAPI = '#src/mapi/glapi/' 96848b8605Smrgsources = [GLAPI + 'gen/gl_API.xml'] + env.Glob(GLAPI + 'gen/*.xml') 97848b8605Smrg 98848b8605Smrgenv.CodeGenerate( 99848b8605Smrg target = 'indirect.c', 100848b8605Smrg script = GLAPI + 'gen/glX_proto_send.py', 101848b8605Smrg source = sources, 102848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET' 103848b8605Smrg ) 104848b8605Smrg 105848b8605Smrgenv.CodeGenerate( 106b8e80941Smrg target = 'indirect_size.c', 107848b8605Smrg script = GLAPI + 'gen/glX_proto_size.py', 108848b8605Smrg source = sources, 109848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET' 110848b8605Smrg) 111848b8605Smrg 112848b8605Smrgenv.CodeGenerate( 113b8e80941Smrg target = 'indirect_init.c', 114848b8605Smrg script = GLAPI + 'gen/glX_proto_send.py', 115848b8605Smrg source = sources, 116848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET' 117848b8605Smrg) 118848b8605Smrg 119848b8605Smrgenv.CodeGenerate( 120848b8605Smrg target = 'indirect_size.h', 121848b8605Smrg script = GLAPI + 'gen/glX_proto_size.py', 122848b8605Smrg source = sources, 123b8e80941Smrg command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set --header-tag _INDIRECT_SIZE_H > $TARGET' 124848b8605Smrg) 125848b8605Smrg 126848b8605Smrgenv.CodeGenerate( 127848b8605Smrg target = 'indirect.h', 128848b8605Smrg script = GLAPI + 'gen/glX_proto_send.py', 129848b8605Smrg source = sources, 130848b8605Smrg command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET', 131848b8605Smrg ) 132848b8605Smrg 133848b8605Smrg 134848b8605Smrglibgl = env.InstallSharedLibrary(libgl, version=(1, 2)) 135848b8605Smrg 136848b8605Smrgenv.Alias('glx', libgl) 137848b8605Smrgenv.Alias('libgl', libgl) 138