r300g: fix scons build
authorJoakim Sindholt <opensource@zhasha.com>
Mon, 5 Oct 2009 17:25:04 +0000 (19:25 +0200)
committerJoakim Sindholt <opensource@zhasha.com>
Mon, 5 Oct 2009 17:25:04 +0000 (19:25 +0200)
So I didn't touch r300compiler, but r300g now compiles after having
declarations and code untangled. As nha so gently points out, we shouldn't
have to do this just to comply with MSVC compilers.

src/gallium/drivers/r300/SConscript
src/gallium/drivers/r300/r300_debug.c
src/gallium/drivers/r300/r300_tgsi_to_rc.c
src/gallium/drivers/r300/r300_vs.c
src/mesa/drivers/dri/r300/compiler/SConscript [new file with mode: 0755]

index 493d7b28bc3b4e60080e441a413c006531e0896e..b4c8ba2015a31dd7674799294fb778f01dfae244 100644 (file)
@@ -1,6 +1,10 @@
 Import('*')
 
+r300compiler = SConscript('#/src/mesa/drivers/dri/r300/compiler/SConscript')
+
 env = env.Clone()
+# add the paths for r300compiler
+env.Append(CPPPATH = ['#/src/mesa/drivers/dri/r300/compiler', '#/include', '#/src/mesa'])
 
 r300 = env.ConvenienceLibrary(
     target = 'r300',
@@ -23,7 +27,8 @@ r300 = env.ConvenienceLibrary(
         'r300_vs.c',
         'r300_surface.c',
         'r300_texture.c',
-    ])
+        'r300_tgsi_to_rc.c',
+    ] + r300compiler) + r300compiler
 
 Export('r300')
 
index 15308dda1de7ae156927582d708b4aa4f35933a1..85d69c07479c383348ea24e0dadf02e523d3e1e2 100644 (file)
@@ -48,6 +48,8 @@ void r300_init_debug(struct r300_context * ctx)
 {
     const char * options = debug_get_option("RADEON_DEBUG", 0);
     boolean printhint = false;
+    size_t length;
+    struct debug_option * opt;
 
     if (options) {
         while(*options) {
@@ -56,8 +58,7 @@ void r300_init_debug(struct r300_context * ctx)
                 continue;
             }
 
-            size_t length = strcspn(options, " ,");
-            struct debug_option * opt;
+            length = strcspn(options, " ,");
 
             for(opt = debug_options; opt->name; ++opt) {
                 if (!strncmp(options, opt->name, length)) {
@@ -81,7 +82,7 @@ void r300_init_debug(struct r300_context * ctx)
     if (printhint || ctx->debug & DBG_HELP) {
         debug_printf("You can enable debug output by setting the RADEON_DEBUG environment variable\n"
                      "to a comma-separated list of debug options. Available options are:\n");
-        for(struct debug_option * opt = debug_options; opt->name; ++opt) {
+        for(opt = debug_options; opt->name; ++opt) {
             debug_printf("    %s: %s\n", opt->name, opt->description);
         }
     }
index 0913ca1bd5ba9615afa2dd2cfba0c5ec2ee6e7ab..4534a6dd80d6c04d963acb4eed4fc07e7e73aa1e 100644 (file)
@@ -257,12 +257,13 @@ static void transform_texture(struct rc_instruction * dst, struct tgsi_instructi
 
 static void transform_instruction(struct tgsi_to_rc * ttr, struct tgsi_full_instruction * src)
 {
+    struct rc_instruction * dst;
+    int i;
+
     if (src->Instruction.Opcode == TGSI_OPCODE_END)
         return;
 
-    struct rc_instruction * dst = rc_insert_new_instruction(ttr->compiler, ttr->compiler->Program.Instructions.Prev);
-    int i;
-
+    dst = rc_insert_new_instruction(ttr->compiler, ttr->compiler->Program.Instructions.Prev);
     dst->I.Opcode = translate_opcode(src->Instruction.Opcode);
     dst->I.SaturateMode = translate_saturate(src->Instruction.Saturate);
 
index 12a6e37be629f61449f35066fa2a2a9c43051740..8460cfaf518d348c6b1fff4dac108ae0950e9910 100644 (file)
@@ -35,6 +35,8 @@ static void set_vertex_inputs_outputs(struct r300_vertex_program_compiler * c)
 {
     struct r300_vertex_shader * vs = c->UserData;
     struct tgsi_shader_info* info = &vs->info;
+    struct tgsi_parse_context parser;
+    struct tgsi_full_declaration * decl;
     boolean pointsize = false;
     int out_colors = 0;
     int colors = 0;
@@ -62,8 +64,6 @@ static void set_vertex_inputs_outputs(struct r300_vertex_program_compiler * c)
         }
     }
 
-    struct tgsi_parse_context parser;
-
     tgsi_parse_init(&parser, vs->state.tokens);
 
     while (!tgsi_parse_end_of_tokens(&parser)) {
@@ -72,7 +72,7 @@ static void set_vertex_inputs_outputs(struct r300_vertex_program_compiler * c)
         if (parser.FullToken.Token.Type != TGSI_TOKEN_TYPE_DECLARATION)
             continue;
 
-        struct tgsi_full_declaration * decl = &parser.FullToken.FullDeclaration;
+        decl = &parser.FullToken.FullDeclaration;
 
         if (decl->Declaration.File != TGSI_FILE_OUTPUT)
             continue;
diff --git a/src/mesa/drivers/dri/r300/compiler/SConscript b/src/mesa/drivers/dri/r300/compiler/SConscript
new file mode 100755 (executable)
index 0000000..48fd65f
--- /dev/null
@@ -0,0 +1,30 @@
+Import('*')
+
+env = env.Clone()
+env.Append(CPPPATH = '#/include')
+env.Append(CPPPATH = '#/src/mesa')
+
+# temporary fix
+env['CFLAGS'] = str(env['CFLAGS']).replace('-Werror=declaration-after-statement', '')
+
+r300compiler = env.ConvenienceLibrary(
+    target = 'r300compiler',
+    source = [
+        'radeon_code.c',
+        'radeon_compiler.c',
+        'radeon_nqssadce.c',
+        'radeon_program.c',
+        'radeon_program_alu.c',
+        'radeon_program_pair.c',
+        'r3xx_fragprog.c',
+        'r300_fragprog.c',
+        'r300_fragprog_swizzle.c',
+        'r300_fragprog_emit.c',
+        'r500_fragprog.c',
+        'r500_fragprog_emit.c',
+        'r3xx_vertprog.c',
+        'r3xx_vertprog_dump.c',
+        'memory_pool.c',
+    ])
+
+Return('r300compiler')