1 Import('*') 2 3 if not env['x11'] or not env['xcb'] or not env['drm']: 4 Return() 5 6 from sys import executable as python_cmd 7 8 env = env.Clone() 9 10 env.Prepend(CPPPATH = [ 11 '.', # the build/<platform>/glx/ directory 12 '#include', 13 '#include/GL/internal', 14 '#src/mesa', 15 '#src/mapi', 16 '#src/mapi/glapi', 17 #$(LIBDRM_CFLAGS) 18 #$(DRI2PROTO_CFLAGS) 19 #$(GLPROTO_CFLAGS) 20 #$(X11_INCLUDES) 21 ]) 22 23 env.Append(CPPDEFINES = [ 24 '_REENTRANT', 25 #('DEFAULT_DRIVER_DIR', 'DRI_DRIVER_SEARCH_DIR') 26 ]) 27 28 env.Prepend(LIBS = [ 29 glapi 30 ]) 31 32 env.PkgUseModules('X11') 33 env.PkgUseModules('XCB') 34 env.PkgUseModules('DRM') 35 36 if env['HAVE_XF86VIDMODE']: 37 env.Append(CPPDEFINES = ['XF86VIDMODE']) 38 env.PkgUseModules('XF86VIDMODE') 39 40 if False: # XXX: SHARED_GLAPI 41 env.Append(CPPDEFINES = ['GLX_SHARED_GLAPI']) 42 43 sources = [ 44 'clientattrib.c', 45 'clientinfo.c', 46 'create_context.c', 47 'compsize.c', 48 'eval.c', 49 'glx_error.c', 50 'glxconfig.c', 51 'glxcmds.c', 52 'glxcurrent.c', 53 'glxext.c', 54 'glxextensions.c', 55 'indirect_glx.c', 56 'indirect.c', 57 'indirect_init.c', 58 'indirect_size.c', 59 'indirect_window_pos.c', 60 'indirect_texture_compression.c', 61 'indirect_transpose_matrix.c', 62 'indirect_vertex_array.c', 63 'indirect_vertex_program.c', 64 'pixel.c', 65 'pixelstore.c', 66 'render2.c', 67 'renderpix.c', 68 'single2.c', 69 'singlepix.c', 70 'vertarr.c', 71 'xfont.c', 72 'glx_pbuffer.c', 73 'glx_query.c', 74 'drisw_glx.c', 75 'dri_common.c', 76 'dri_glx.c', 77 'XF86dri.c', 78 'glxhash.c', 79 'dri2_glx.c', 80 'dri2.c', 81 'applegl_glx.c', 82 ] 83 84 libgl = env.SharedLibrary( 85 target ='GL', 86 source = sources, 87 ) 88 89 90 # Generate GLX-specific .c and .h files here. Other GL API-related 91 # files are used, but they're generated in mapi/glapi/gen/ since they're 92 # used by other targets as well. 93 94 GLAPI = '#src/mapi/glapi/' 95 96 env.CodeGenerate( 97 target = 'indirect.c', 98 script = GLAPI + 'gen/glX_proto_send.py', 99 source = GLAPI + 'gen/gl_and_es_API.xml', 100 command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET' 101 ) 102 103 env.CodeGenerate( 104 target = 'indirect_size.c', 105 script = GLAPI + 'gen/glX_proto_size.py', 106 source = GLAPI + 'gen/gl_API.xml', 107 command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET' 108 ) 109 110 env.CodeGenerate( 111 target = 'indirect_init.c', 112 script = GLAPI + 'gen/glX_proto_send.py', 113 source = GLAPI + 'gen/gl_API.xml', 114 command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET' 115 ) 116 117 headers = [] 118 119 headers += env.CodeGenerate( 120 target = 'indirect_size.h', 121 script = GLAPI + 'gen/glX_proto_size.py', 122 source = GLAPI + 'gen/gl_API.xml', 123 command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET' 124 ) 125 126 headers += env.CodeGenerate( 127 target = 'indirect.h', 128 script = GLAPI + 'gen/glX_proto_send.py', 129 source = GLAPI + 'gen/gl_API.xml', 130 command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET', 131 ) 132 133 134 env.Depends(sources, headers) 135 136 137 libgl = env.InstallSharedLibrary(libgl, version=(1, 2)) 138 139 env.Alias('glx', libgl) 140 env.Alias('libgl', libgl) 141