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 493d7b2..b4c8ba2 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 15308dd..85d69c0 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 0913ca1..4534a6d 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 12a6e37..8460cfa 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')