r600: fix build
[mesa.git] / src / mesa / SConscript
index 04b771a7e16e3af3c0787b8b4d49dcce29bb36f6..9ffc15eeb7bf3d187d377e73c58026fbf2da1097 100644 (file)
@@ -8,32 +8,24 @@ if env['platform'] != 'winddk':
 
        env = env.Clone()
        
-       # Includes
        env.Append(CPPPATH = [
                '#/src/mesa',
-               '#/src/mesa/main',
        ])
        
-       if gcc:
-               env.Append(CFLAGS = [
-                       '-std=c99',
-               ])
-       
-       # x86 assembly
-       if x86 and gcc:
+       if env['platform'] == 'windows':
                env.Append(CPPDEFINES = [
-                       'USE_X86_ASM', 
-                       'USE_MMX_ASM',
-                       'USE_3DNOW_ASM',
-                       'USE_SSE_ASM',
-               ])
-       
-       
-       #######################################################################
-       # Core sources
+                       '_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
+               ])       
+
+       #
+       # Source files
+       #
        
-       MAIN_SOURCES = [
+       main_sources = [
                'main/api_arrayelt.c',
+               'main/api_exec.c',
                'main/api_loopback.c',
                'main/api_noop.c',
                'main/api_validate.c',
@@ -43,14 +35,17 @@ if env['platform'] != 'winddk':
                'main/blend.c',
                'main/bufferobj.c',
                'main/buffers.c',
+               'main/clear.c',
                'main/clip.c',
                'main/colortab.c',
                'main/context.c',
                'main/convolve.c',
+               'main/cpuinfo.c',
                'main/debug.c',
                'main/depth.c',
                'main/depthstencil.c',
                'main/dlist.c',
+               'main/dlopen.c',
                'main/drawpix.c',
                'main/enable.c',
                'main/enums.c',
@@ -74,37 +69,41 @@ if env['platform'] != 'winddk':
                'main/matrix.c',
                'main/mipmap.c',
                'main/mm.c',
+               'main/multisample.c',
                'main/pixel.c',
+               'main/pixelstore.c',
                'main/points.c',
                'main/polygon.c',
                'main/queryobj.c',
                'main/rastpos.c',
                'main/rbadaptors.c',
+               'main/readpix.c',
                'main/renderbuffer.c',
+               'main/scissor.c',
                'main/shaders.c',
+               'main/shared.c',
                'main/state.c',
                'main/stencil.c',
                'main/texcompress.c',
                'main/texcompress_s3tc.c',
                'main/texcompress_fxt1.c',
+               'main/texenv.c',
                'main/texenvprogram.c',
                'main/texformat.c',
+               'main/texgen.c',
+               'main/texgetimage.c',
                'main/teximage.c',
                'main/texobj.c',
+               'main/texparam.c',
                'main/texrender.c',
                'main/texstate.c',
                'main/texstore.c',
                'main/varray.c',
+               'main/viewport.c',
                'main/vtxfmt.c',
        ]
        
-       GLAPI_SOURCES = [
-               'main/dispatch.c',
-               'glapi/glapi.c',
-               'glapi/glthread.c',
-       ]
-       
-       MATH_SOURCES = [
+       math_sources = [
                'math/m_debug_clip.c',
                'math/m_debug_norm.c',
                'math/m_debug_xform.c',
@@ -115,7 +114,7 @@ if env['platform'] != 'winddk':
                'math/m_xform.c',
        ]
        
-       VBO_SOURCES = [
+       vbo_sources = [
                'vbo/vbo_context.c',
                'vbo/vbo_exec.c',
                'vbo/vbo_exec_api.c',
@@ -132,13 +131,13 @@ if env['platform'] != 'winddk':
                'vbo/vbo_save_loopback.c',
        ]
        
-       VF_SOURCES = [
+       vf_sources = [
                'vf/vf.c',
                'vf/vf_generic.c',
                'vf/vf_sse.c',
        ]
        
-       STATETRACKER_SOURCES = [
+       statetracker_sources = [
                'state_tracker/st_atom.c',
                'state_tracker/st_atom_blend.c',
                'state_tracker/st_atom_clip.c',
@@ -161,6 +160,7 @@ if env['platform'] != 'winddk':
                'state_tracker/st_cb_flush.c',
                'state_tracker/st_cb_drawpixels.c',
                'state_tracker/st_cb_fbo.c',
+               'state_tracker/st_cb_get.c',
                'state_tracker/st_cb_feedback.c',
                'state_tracker/st_cb_program.c',
                'state_tracker/st_cb_queryobj.c',
@@ -168,9 +168,11 @@ if env['platform'] != 'winddk':
                'state_tracker/st_cb_readpixels.c',
                'state_tracker/st_cb_strings.c',
                'state_tracker/st_cb_texture.c',
+               'state_tracker/st_cb_viewport.c',
                'state_tracker/st_context.c',
                'state_tracker/st_debug.c',
                'state_tracker/st_draw.c',
+               'state_tracker/st_draw_feedback.c',
                'state_tracker/st_extensions.c',
                'state_tracker/st_format.c',
                'state_tracker/st_framebuffer.c',
@@ -180,7 +182,7 @@ if env['platform'] != 'winddk':
                'state_tracker/st_texture.c',
        ]
        
-       SHADER_SOURCES = [
+       shader_sources = [
                'shader/arbprogparse.c',
                'shader/arbprogram.c',
                'shader/atifragshader.c',
@@ -190,9 +192,10 @@ if env['platform'] != 'winddk':
                'shader/nvvertparse.c',
                'shader/program.c',
                'shader/prog_cache.c',
-               'shader/prog_debug.c',
                'shader/prog_execute.c',
                'shader/prog_instruction.c',
+               'shader/prog_noise.c',
+               'shader/prog_optimize.c',
                'shader/prog_parameter.c',
                'shader/prog_print.c',
                'shader/prog_statevars.c',
@@ -201,7 +204,7 @@ if env['platform'] != 'winddk':
                'shader/shader_api.c',
        ]
        
-       SLANG_SOURCES = [
+       slang_sources = [
                'shader/slang/slang_builtin.c',
                'shader/slang/slang_codegen.c',
                'shader/slang/slang_compile.c',
@@ -212,7 +215,6 @@ if env['platform'] != 'winddk':
                'shader/slang/slang_emit.c',
                'shader/slang/slang_ir.c',
                'shader/slang/slang_label.c',
-               'shader/slang/slang_library_noise.c',
                'shader/slang/slang_link.c',
                'shader/slang/slang_log.c',
                'shader/slang/slang_mem.c',
@@ -225,88 +227,123 @@ if env['platform'] != 'winddk':
                'shader/slang/slang_utility.c',
        ]
        
-       
-       #######################################################################
-       # Assembly sources
-       
-       ASM_C_SOURCES = [
-               'x86/common_x86.c',
-               'x86/x86.c',
-               'x86/3dnow.c',
-               'x86/sse.c',
-               'sparc/sparc.c',
-               'ppc/common_ppc.c',
-               'x86-64/x86-64.c',
-       ]
-       
-       X86_SOURCES = [
-               'x86/common_x86_asm.S',
-               'x86/x86_xform2.S',
-               'x86/x86_xform3.S',
-               'x86/x86_xform4.S',
-               'x86/x86_cliptest.S',
-               'x86/mmx_blend.S',
-               'x86/3dnow_xform1.S',
-               'x86/3dnow_xform2.S',
-               'x86/3dnow_xform3.S',
-               'x86/3dnow_xform4.S',
-               'x86/3dnow_normal.S',
-               'x86/sse_xform1.S',
-               'x86/sse_xform2.S',
-               'x86/sse_xform3.S',
-               'x86/sse_xform4.S',
-               'x86/sse_normal.S',
-               'x86/read_rgba_span_x86.S',
-       ]
-       
-       X86_API = [
-               'x86/glapi_x86.S',
-       ]
-       
-       X86_64_SOURCES = [
-               'x86-64/xform4.S',
-       ]
-       
-       X86_64_API = [
-               'x86-64/glapi_x86-64.S',
-       ]
-       
-       SPARC_SOURCES = [
-               'sparc/clip.S',
-               'sparc/norm.S',
-               'sparc/xform.S',
-       ]
-       
-       SPARC_API = [
-               'sparc/glapi_sparc.S',
+       mesa_sources = (
+               main_sources +
+               math_sources +
+               vbo_sources +
+               vf_sources +
+               statetracker_sources +
+               shader_sources +
+               slang_sources
+       )
+
+       glapi_sources = [
+               'main/dispatch.c',
+               'glapi/glapi.c',
+               'glapi/glapi_getproc.c',
+               'glapi/glthread.c',
        ]
        
-       if x86 and gcc:
-               ASM_SOURCES = ASM_C_SOURCES + X86_SOURCES 
-               API_SOURCES = X86_API
+       #
+       # Assembly sources
+       #
+       if gcc and env['machine'] == 'x86':
+               env.Append(CPPDEFINES = [
+                       'USE_X86_ASM', 
+                       'USE_MMX_ASM',
+                       'USE_3DNOW_ASM',
+                       'USE_SSE_ASM',
+               ])
+               mesa_sources += [
+                       'x86/common_x86.c',
+                       'x86/x86_xform.c',
+                       'x86/3dnow.c',
+                       'x86/sse.c',
+                       'x86/common_x86_asm.S',
+                       'x86/x86_xform2.S',
+                       'x86/x86_xform3.S',
+                       'x86/x86_xform4.S',
+                       'x86/x86_cliptest.S',
+                       'x86/mmx_blend.S',
+                       'x86/3dnow_xform1.S',
+                       'x86/3dnow_xform2.S',
+                       'x86/3dnow_xform3.S',
+                       'x86/3dnow_xform4.S',
+                       'x86/3dnow_normal.S',
+                       'x86/sse_xform1.S',
+                       'x86/sse_xform2.S',
+                       'x86/sse_xform3.S',
+                       'x86/sse_xform4.S',
+                       'x86/sse_normal.S',
+                       'x86/read_rgba_span_x86.S',
+               ]
+               glapi_sources += [
+                       'x86/glapi_x86.S',
+               ]
+       elif gcc and env['machine'] == 'x86_64':
+               env.Append(CPPDEFINES = [
+                       'USE_X86_64_ASM', 
+               ])
+               mesa_sources += [
+                       'x86-64/x86-64.c',
+                       'x86-64/xform4.S',
+               ]
+               glapi_sources += [
+                       'x86-64/glapi_x86-64.S'
+               ]
+       elif gcc and env['machine'] == 'ppc':
+               env.Append(CPPDEFINES = [
+                       'USE_PPC_ASM', 
+                       'USE_VMX_ASM', 
+               ])
+               mesa_sources += [
+                       'ppc/common_ppc.c',
+               ]
+               glapi_sources += [
+               ]
+       elif gcc and env['machine'] == 'sparc':
+               mesa_sources += [
+                       'sparc/sparc.c',
+                       'sparc/clip.S',
+                       'sparc/norm.S',
+                       'sparc/xform.S',
+               ]
+               glapi_sources += [
+                       'sparc/glapi_sparc.S'
+               ]
        else:
-               ASM_SOURCES = []
-               API_SOURCES = []
+               pass
        
-       SOLO_SOURCES = \
-               MAIN_SOURCES + \
-               MATH_SOURCES + \
-               VBO_SOURCES + \
-               VF_SOURCES + \
-               STATETRACKER_SOURCES + \
-               SHADER_SOURCES + \
-               ASM_SOURCES + \
-               SLANG_SOURCES
+       # Generate matypes.h
+       if gcc and env['machine'] in ('x86', 'x86_64'):
+               # See http://www.scons.org/wiki/UsingCodeGenerators
+               gen_matypes = env.Program(
+                       target = 'gen_matypes',
+                       source = 'x86/gen_matypes.c',
+               )
+               matypes = env.Command(
+                       'matypes.h',
+                       gen_matypes,
+                       gen_matypes[0].abspath + ' > $TARGET',
+               )
+               # Add the dir containing the generated header (somewhere inside  the
+               # build dir) to the include path  
+               env.Append(CPPPATH = [matypes[0].dir])
        
+       #
+       # Libraries
+       # 
+
        mesa = env.ConvenienceLibrary(
                target = 'mesa',
-               source = SOLO_SOURCES,
+               source = mesa_sources,
        )
        Export('mesa')
        
        if not dri:
                glapi = env.ConvenienceLibrary(
                        target = 'glapi',
-                       source = GLAPI_SOURCES + API_SOURCES,
+                       source = glapi_sources,
                )
                Export('glapi')
+