diff options
| author | José Fonseca <jfonseca@vmware.com> | 2013-01-21 17:47:51 +0000 |
|---|---|---|
| committer | José Fonseca <jfonseca@vmware.com> | 2013-01-21 19:10:54 +0000 |
| commit | 71c87e42e17a160dfc5c2a47c9cbaa297c34c484 (patch) | |
| tree | 595b7d43b1a84ad9f1d37c1d3ce77d22bce503f4 /src | |
| parent | 75b7e1df139676f2456fea4d3a57cf0044d8409e (diff) | |
| download | external_mesa3d-71c87e42e17a160dfc5c2a47c9cbaa297c34c484.tar.gz external_mesa3d-71c87e42e17a160dfc5c2a47c9cbaa297c34c484.tar.bz2 external_mesa3d-71c87e42e17a160dfc5c2a47c9cbaa297c34c484.zip | |
scons: Fix dependencies of generated headers.
It appears that scons implicit dependency scanners fail to chain
dependencies of generated headers when these are outside the build tree.
This patch ensures generated source files are _always_ put in the build
tree. I'm not 100% this will fix all depency issues, but from my
experiments it does seem to fix this.
NOTE: For this to be effective it is necessary to clean the source tree
from generated header/source files.
Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/state_trackers/vega/SConscript | 6 | ||||
| -rw-r--r-- | src/gallium/targets/libgl-xlib/SConscript | 4 | ||||
| -rw-r--r-- | src/glx/SConscript | 9 | ||||
| -rw-r--r-- | src/mapi/glapi/SConscript | 4 | ||||
| -rw-r--r-- | src/mapi/glapi/gen/SConscript | 46 | ||||
| -rw-r--r-- | src/mapi/vgapi/SConscript | 5 | ||||
| -rw-r--r-- | src/mesa/SConscript | 23 | ||||
| -rw-r--r-- | src/mesa/drivers/osmesa/SConscript | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/x11/SConscript | 4 |
9 files changed, 34 insertions, 70 deletions
diff --git a/src/gallium/state_trackers/vega/SConscript b/src/gallium/state_trackers/vega/SConscript index 3dada10133..b68a73299a 100644 --- a/src/gallium/state_trackers/vega/SConscript +++ b/src/gallium/state_trackers/vega/SConscript @@ -9,6 +9,7 @@ env = env.Clone() env.Append(CPPPATH = [ '#/src/mapi', + Dir('.'), ]) env.Append(CPPDEFINES = [ 'VEGA_VERSION_STRING=', @@ -47,13 +48,12 @@ vega_sources = [ 'vgu.c' ] -api_tmp = env.CodeGenerate( - target = '#/src/gallium/state_trackers/vega/api_tmp.h', +api_tmp, = env.CodeGenerate( + target = 'api_tmp.h', script = '#src/mapi/mapi/mapi_abi.py', source = '#src/mapi/vgapi/vgapi.csv', command = python_cmd + ' $SCRIPT --printer vgapi --mode app $SOURCE > $TARGET' ) -env.Depends(vega_sources, api_tmp) st_vega = env.ConvenienceLibrary( target = 'st_vega', diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript index dc1ce89ca4..58ed6d4a30 100644 --- a/src/gallium/targets/libgl-xlib/SConscript +++ b/src/gallium/targets/libgl-xlib/SConscript @@ -10,6 +10,7 @@ env.Append(CPPPATH = [ '#/src/mesa', '#/src/mesa/main', '#src/gallium/state_trackers/glx/xlib', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ]) env.Append(CPPDEFINES = ['USE_XSHM']) @@ -36,9 +37,6 @@ sources = [ 'xlib.c', ] -# The sources depend on the python-generated GL API files/headers. -env.Depends(sources, glapi_headers) - if True: env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_RBUG', 'GALLIUM_GALAHAD', 'GALLIUM_SOFTPIPE']) env.Prepend(LIBS = [trace, rbug, galahad, softpipe]) diff --git a/src/glx/SConscript b/src/glx/SConscript index c921eef703..09e0e16861 100644 --- a/src/glx/SConscript +++ b/src/glx/SConscript @@ -114,16 +114,14 @@ env.CodeGenerate( command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET' ) -headers = [] - -headers += env.CodeGenerate( +env.CodeGenerate( target = 'indirect_size.h', script = GLAPI + 'gen/glX_proto_size.py', source = GLAPI + 'gen/gl_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET' ) -headers += env.CodeGenerate( +env.CodeGenerate( target = 'indirect.h', script = GLAPI + 'gen/glX_proto_send.py', source = GLAPI + 'gen/gl_API.xml', @@ -131,9 +129,6 @@ headers += env.CodeGenerate( ) -env.Depends(sources, headers) - - libgl = env.InstallSharedLibrary(libgl, version=(1, 2)) env.Alias('glx', libgl) diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript index 153374cc55..00cce3e7fd 100644 --- a/src/mapi/glapi/SConscript +++ b/src/mapi/glapi/SConscript @@ -26,6 +26,7 @@ if env['platform'] == 'windows': env.Append(CPPPATH = [ '#/src/mapi', '#/src/mesa', + Dir('..'), # src/mapi build path ]) glapi_sources = [ @@ -103,6 +104,3 @@ 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 index 353d021759..6d36248e78 100644 --- a/src/mapi/glapi/gen/SConscript +++ b/src/mapi/glapi/gen/SConscript @@ -7,43 +7,37 @@ from sys import executable as python_cmd # 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_and_es_API.xml', +env.CodeGenerate( + target = '../../../mesa/main/dispatch.h', + script = 'gl_table.py', + source = 'gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -m remap_table -f $SOURCE > $TARGET', ) -glapi_headers += env.CodeGenerate( - target = '#src/mapi/glapi/glapitable.h', - script = GLAPI + 'gen/gl_table.py', - source = GLAPI + 'gen/gl_and_es_API.xml', +env.CodeGenerate( + target = '../../../mapi/glapi/glapitable.h', + script = 'gl_table.py', + source = 'gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) -glapi_headers += env.CodeGenerate( - target = '#src/mapi/glapi/glapitemp.h', - script = GLAPI + 'gen/gl_apitemp.py', - source = GLAPI + 'gen/gl_and_es_API.xml', +env.CodeGenerate( + target = '../../../mapi/glapi/glapitemp.h', + script = 'gl_apitemp.py', + source = 'gl_and_es_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_and_es_API.xml', +env.CodeGenerate( + target = '../../../mapi/glapi/glprocs.h', + script = 'gl_procs.py', + source = 'gl_and_es_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_and_es_API.xml', +env.CodeGenerate( + target = '../../../mesa/main/remap_helper.h', + script = 'remap_helper.py', + source = 'gl_and_es_API.xml', command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) - -env.Export('glapi_headers') diff --git a/src/mapi/vgapi/SConscript b/src/mapi/vgapi/SConscript index 10241fd08c..fd4467bb23 100644 --- a/src/mapi/vgapi/SConscript +++ b/src/mapi/vgapi/SConscript @@ -7,8 +7,8 @@ Import('*') env = env.Clone() -vgapi_header = env.CodeGenerate( - target = '#src/mapi/vgapi/vgapi_tmp.h', +vgapi_header, = env.CodeGenerate( + target = 'vgapi_tmp.h', script = '../mapi/mapi_abi.py', source = 'vgapi.csv', command = python_cmd + ' $SCRIPT --printer vgapi --mode lib $SOURCE > $TARGET' @@ -23,6 +23,7 @@ env.Append(CPPDEFINES = [ env.Append(CPPPATH = [ '#/include', '#/src/mapi', + Dir('..'), # vgapi/vgapi_tmp.h build path ]) mapi_sources = [ diff --git a/src/mesa/SConscript b/src/mesa/SConscript index e03d6a6a3a..ca9b70bad9 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -14,6 +14,8 @@ env.Append(CPPPATH = [ '#/src/mapi', '#/src/glsl', '#/src/mesa', + Dir('../mapi'), # src/mapi build path + Dir('.'), # src/mesa build path ]) enabled_apis = [] @@ -290,9 +292,6 @@ program_lex = env.CFile('program/lex.yy.c', 'program/program_lexer.l') program_parse = env.CFile('program/program_parse.tab.c', 'program/program_parse.y') -# Make program/program_parse.tab.h reacheable from the include path -env.Append(CPPPATH = [Dir('.').abspath]) - program_sources = [ 'program/arbprogparse.c', 'program/prog_hash_table.c', @@ -341,19 +340,6 @@ if env['gles']: enabled_apis += ['ES1', 'ES2'] - # generate GLES sources - gles_sources = [] - - # generate GLES headers - gles_headers = [] - - env.Depends(gles_sources, gles_headers) - - # gles_sources #include gles_headers with full path - env.Append(CPPPATH = [gles_headers[0].dir.up().up()]) - - mesa_sources += gles_sources - env.Append(CPPDEFINES = ["FEATURE_%s=1" % api for api in enabled_apis]) get_hash_gen_opts = ' '.join(["-a %s" % api for api in enabled_apis]) @@ -366,8 +352,6 @@ get_hash_header = env.CodeGenerate( ' -f $SOURCE > $TARGET' ) -env.Depends(glget_sources, get_hash_header) - # # Assembly sources # @@ -453,9 +437,6 @@ env.CodeGenerate( command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) -# We also depend on the auto-generated GL API headers -env.Depends(mesa_sources, glapi_headers) - def write_git_sha1_h_file(filename): """Mesa looks for a git_sha1.h file at compile time in order to display diff --git a/src/mesa/drivers/osmesa/SConscript b/src/mesa/drivers/osmesa/SConscript index e4f23c2ac5..fb2d98cadc 100644 --- a/src/mesa/drivers/osmesa/SConscript +++ b/src/mesa/drivers/osmesa/SConscript @@ -5,6 +5,7 @@ env = env.Clone() env.Prepend(CPPPATH = [ '#src/mapi', '#src/mesa', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ]) env.Prepend(LIBS = [ @@ -34,5 +35,3 @@ osmesa = env.SharedLibrary( ) env.Alias('osmesa', osmesa) - -env.Depends(sources, glapi_headers) diff --git a/src/mesa/drivers/x11/SConscript b/src/mesa/drivers/x11/SConscript index 984e6cef4e..b0173bee94 100644 --- a/src/mesa/drivers/x11/SConscript +++ b/src/mesa/drivers/x11/SConscript @@ -6,6 +6,7 @@ env.Append(CPPPATH = [ '#/src/mapi', '#/src/mesa', '#/src/mesa/main', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ]) env.Append(CPPDEFINES = ['USE_XSHM']) @@ -30,9 +31,6 @@ sources = [ 'xm_tri.c', ] -# The sources depend on the python-generated GL API files/headers. -env.Depends(sources, glapi_headers) - # libGL.so.1.6 libgl_1_6 = env.SharedLibrary( target ='GL', |
