summaryrefslogtreecommitdiff
path: root/src/mapi
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2012-05-30 10:08:11 -0600
committerBrian Paul <brianp@vmware.com>2012-05-31 09:40:35 -0600
commitdff36e900c645401b26c9a44106459e96ee7a24d (patch)
tree7ca932a8752ad8bb7ab215d1d496aa696b8ceec8 /src/mapi
parent185ed2105829d6f5eb19edb9abbf0d7977e157c3 (diff)
scons: add code to generate the various GL API files
This fixes recent build breakage when we began building the generated API files from xml as part of the normal build process. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=50475
Diffstat (limited to 'src/mapi')
-rw-r--r--src/mapi/glapi/SConscript25
-rw-r--r--src/mapi/glapi/gen/SConscript42
2 files changed, 67 insertions, 0 deletions
diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript
index 4097a7fe138..ad007a6f436 100644
--- a/src/mapi/glapi/SConscript
+++ b/src/mapi/glapi/SConscript
@@ -2,6 +2,8 @@
# SConscript for glapi
+from sys import executable as python_cmd
+
Import('*')
env = env.Clone()
@@ -47,6 +49,8 @@ for s in mapi_sources:
# Assembly sources
#
if env['gcc'] and env['platform'] not in ('darwin', 'windows'):
+ GLAPI = '#src/mapi/glapi/'
+
if env['machine'] == 'x86':
env.Append(CPPDEFINES = [
'USE_X86_ASM',
@@ -54,6 +58,12 @@ if env['gcc'] and env['platform'] not in ('darwin', 'windows'):
glapi_sources += [
'glapi_x86.S',
]
+ env.CodeGenerate(
+ target = 'glapi_x86.S',
+ script = GLAPI + 'gen/gl_x86_asm.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
elif env['machine'] == 'x86_64':
env.Append(CPPDEFINES = [
'USE_X86_64_ASM',
@@ -61,6 +71,12 @@ if env['gcc'] and env['platform'] not in ('darwin', 'windows'):
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_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
elif env['machine'] == 'sparc':
env.Append(CPPDEFINES = [
'USE_SPARC_ASM',
@@ -68,6 +84,12 @@ if env['gcc'] and env['platform'] not in ('darwin', 'windows'):
glapi_sources += [
'glapi_sparc.S'
]
+ env.CodeGenerate(
+ target = 'glapi_sparc.S',
+ script = GLAPI + 'gen/gl_SPARC_asm.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
else:
pass
@@ -81,3 +103,6 @@ glapi = env.ConvenienceLibrary(
source = glapi_sources,
)
Export('glapi')
+
+
+env.Depends(glapi_sources, glapi_headers)
diff --git a/src/mapi/glapi/gen/SConscript b/src/mapi/glapi/gen/SConscript
new file mode 100644
index 00000000000..81f69dfea47
--- /dev/null
+++ b/src/mapi/glapi/gen/SConscript
@@ -0,0 +1,42 @@
+Import('*')
+
+from sys import executable as python_cmd
+
+
+# Generate the GL API headers that are used by various parts of the
+# Mesa and GLX tree. Other .c and .h files are generated elsewhere
+# if they're only used in one place.
+
+GLAPI = '#src/mapi/glapi/'
+
+glapi_headers = []
+
+glapi_headers += env.CodeGenerate(
+ target = '#src/mesa/main/dispatch.h',
+ script = GLAPI + 'gen/gl_table.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -m remap_table -f $SOURCE > $TARGET',
+ )
+
+glapi_headers += env.CodeGenerate(
+ target = '#src/mapi/glapi/glapitemp.h',
+ script = GLAPI + 'gen/gl_apitemp.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
+
+glapi_headers += env.CodeGenerate(
+ target = '#src/mapi/glapi/glprocs.h',
+ script = GLAPI + 'gen/gl_procs.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
+
+glapi_headers += env.CodeGenerate(
+ target = '#src/mesa/main/remap_helper.h',
+ script = GLAPI + 'gen/remap_helper.py',
+ source = GLAPI + 'gen/gl_API.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
+
+env.Export('glapi_headers')