from sys import executable as python_cmd
+# Be conservative and depend on all XML files here. Missing dependencies means
+# broken builds, whereas extraneous dependencies merely means regenerate the
+# .[ch] files -- scons should not recompile them though.
+sources = ['gl_and_es_API.xml'] + env.Glob('*.xml')
+
+
# 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',
+env.CodeGenerate(
+ target = '../../../mesa/main/dispatch.h',
+ script = 'gl_table.py',
+ source = sources,
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',
+env.CodeGenerate(
+ target = '../../../mapi/glapi/glapitable.h',
+ script = 'gl_table.py',
+ source = sources,
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',
+env.CodeGenerate(
+ target = '../../../mapi/glapi/gen/glapitemp.h',
+ script = 'gl_apitemp.py',
+ source = sources,
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',
+env.CodeGenerate(
+ target = '../../../mapi/glapi/glprocs.h',
+ script = 'gl_procs.py',
+ source = sources,
+ command = python_cmd + ' $SCRIPT -c -f $SOURCE > $TARGET'
+ )
+
+env.CodeGenerate(
+ target = '../../../mesa/main/remap_helper.h',
+ script = 'remap_helper.py',
+ source = sources,
command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
)
-env.Export('glapi_headers')
+env.CodeGenerate(
+ target = '../../../mesa/main/enums.c',
+ script = 'gl_enums.py',
+ source = '../registry/gl.xml',
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )
+
+env.CodeGenerate(
+ target = '../../../mesa/main/api_exec.c',
+ script = 'gl_genexec.py',
+ source = sources,
+ command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
+ )