mesa: add EXT_dsa glGetVertexArray* 4 functions
[mesa.git] / src / mapi / glapi / SConscript
index 77a5f9bd2e32f774e81bbf92e4d46d364b14314d..a086f435efc12b5d0cb822787955b2143d78ab97 100644 (file)
 # SConscript for glapi
 
 
+from sys import executable as python_cmd
+
 Import('*')
 
-if env['platform'] != 'winddk':
+env = env.Clone()
+
+env.MSVC2013Compat()
 
-    env = env.Clone()
-    
+env.Append(CPPDEFINES = [
+    'MAPI_MODE_UTIL',
+])
+
+if env['platform'] == 'windows':
     env.Append(CPPDEFINES = [
-        'MAPI_GLAPI_CURRENT',
+        '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
+        'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
+        'KHRONOS_DLL_EXPORTS', # declare gl* as __declspec(dllexport) in Khronos headers
+        '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport)
     ])
 
-    if env['platform'] == 'windows':
+env.Append(CPPPATH = [
+    '#/src',
+    '#/src/mapi',
+    '#/src/mesa',
+    Dir('.'), # src/mapi/glapi build path
+    Dir('gen'), # src/mapi/glapi/gen build path
+])
+
+glapi_sources = [
+    'glapi_dispatch.c',
+    'glapi_entrypoint.c',
+    'glapi_getproc.c',
+    'glapi_nop.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['platform'] not in ('cygwin', 'darwin', 'windows'):
+    GLAPI = '#src/mapi/glapi/'
+    sources = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml')
+
+    if env['machine'] == 'x86':
         env.Append(CPPDEFINES = [
-            '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
-            'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
-            'WIN32_THREADS', # use Win32 thread API
+            'USE_X86_ASM',
         ])
+        glapi_sources += [
+            'glapi_x86.S',
+        ]
+        env.CodeGenerate(
+            target = 'glapi_x86.S',
+            script = GLAPI + 'gen/gl_x86_asm.py',
+            source = sources,
+            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 = sources,
+            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 = sources,
+            command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+            )
+    else:
+        pass
 
-    env.Append(CPPPATH = [
-        '#/src/mapi',
-        '#/src/mesa',
-    ])
-    
-    glapi_sources = [
-        'glapi_dispatch.c',
-        'glapi_entrypoint.c',
-        'glapi_getproc.c',
-        'glapi_nop.c',
-        'glthread.c',
-    ]
-    
-    mapi_sources = [
-        'u_current.c',
-        'u_execmem.c',
-        'u_thread.c',
-    ]
-    for s in mapi_sources:
-        o = env.SharedObject(s[:-2], '../mapi/' + s)
-        glapi_sources.append(o)
-
-    #
-    # Assembly sources
-    #
-    if env['gcc'] and env['platform'] != 'windows':
-        if env['machine'] == 'x86':
-            env.Append(CPPDEFINES = [
-                'USE_X86_ASM', 
-                'USE_MMX_ASM',
-                'USE_3DNOW_ASM',
-                'USE_SSE_ASM',
-            ])
-            glapi_sources += [
-                'glapi_x86.S',
-            ]
-        elif env['machine'] == 'x86_64':
-            env.Append(CPPDEFINES = [
-                'USE_X86_64_ASM', 
-            ])
-            glapi_sources += [
-                'glapi_x86-64.S'
-            ]
-        elif env['machine'] == 'ppc':
-            env.Append(CPPDEFINES = [
-                'USE_PPC_ASM', 
-                'USE_VMX_ASM', 
-            ])
-            glapi_sources += [
-            ]
-        elif env['machine'] == 'sparc':
-            glapi_sources += [
-                'glapi_sparc.S'
-            ]
-        else:
-            pass
-    
-    glapi = env.ConvenienceLibrary(
-        target = 'glapi',
-        source = glapi_sources,
-    )
-    Export('glapi')
+glapi = env.ConvenienceLibrary(
+    target = 'glapi',
+    source = glapi_sources,
+)
+Export('glapi')