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