####################################################################### # SConscript for glapi from sys import executable as python_cmd Import('*') env = env.Clone() env.Append(CPPDEFINES = [ 'MAPI_MODE_UTIL', ]) if env['platform'] == 'windows': env.Append(CPPDEFINES = [ '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers ]) if env['gles']: env.Append(CPPDEFINES = ['_GLAPI_DLL_EXPORTS']) else: # prevent _glapi_* from being declared __declspec(dllimport) env.Append(CPPDEFINES = ['_GLAPI_NO_EXPORTS']) env.Append(CPPPATH = [ '#/src/mapi', '#/src/mesa', Dir('..'), # src/mapi build path ]) glapi_sources = [ 'glapi_dispatch.c', 'glapi_entrypoint.c', 'glapi_getproc.c', 'glapi_nop.c', 'glthread.c', 'glapi.c', ] mapi_sources = [ 'u_current.c', 'u_execmem.c', ] for s in mapi_sources: o = env.SharedObject(s[:-2], '../' + s) glapi_sources.append(o) # # Assembly sources # if env['gcc'] and env['platform'] not in ('cygwin', 'darwin', 'windows'): GLAPI = '#src/mapi/glapi/' if env['machine'] == 'x86': env.Append(CPPDEFINES = [ 'USE_X86_ASM', ]) glapi_sources += [ 'glapi_x86.S', ] env.CodeGenerate( target = 'glapi_x86.S', script = GLAPI + 'gen/gl_x86_asm.py', source = GLAPI + 'gen/gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) elif env['machine'] == 'x86_64': env.Append(CPPDEFINES = [ 'USE_X86_64_ASM', ]) glapi_sources += [ 'glapi_x86-64.S' ] env.CodeGenerate( target = 'glapi_x86-64.S', script = GLAPI + 'gen/gl_x86-64_asm.py', source = GLAPI + 'gen/gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) elif env['machine'] == 'sparc': env.Append(CPPDEFINES = [ 'USE_SPARC_ASM', ]) glapi_sources += [ 'glapi_sparc.S' ] env.CodeGenerate( target = 'glapi_sparc.S', script = GLAPI + 'gen/gl_SPARC_asm.py', source = GLAPI + 'gen/gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) else: pass if env['toolchain'] == 'crossmingw': # compile these files without -gstabs option glapi_sources = env.compile_without_gstabs(glapi_sources, "glapi_dispatch.c") glapi_sources = env.compile_without_gstabs(glapi_sources, "glapi_getproc.c") glapi = env.ConvenienceLibrary( target = 'glapi', source = glapi_sources, ) Export('glapi')