stage4/generate_cc/generate_cc.cc
changeset 46 fc1b78ea6d84
parent 41 8998c8b24b60
child 49 c96d1a4c23f8
--- a/stage4/generate_cc/generate_cc.cc	Fri Jul 20 22:07:15 2007 +0200
+++ b/stage4/generate_cc/generate_cc.cc	Wed Jul 25 18:03:27 2007 +0200
@@ -1388,15 +1388,17 @@
     symbol_c *current_configuration;
 
     const char *current_name;
+    const char *current_builddir;
 
     unsigned long common_ticktime;
 
   public:
-    generate_cc_c(stage4out_c *s4o_ptr): 
+    generate_cc_c(stage4out_c *s4o_ptr, const char *builddir): 
             s4o(*s4o_ptr),
-            pous_s4o("POUS", "c"),
-            located_variables_s4o("LOCATED_VARIABLES","h"),
+            pous_s4o(builddir, "POUS", "c"),
+            located_variables_s4o(builddir, "LOCATED_VARIABLES","h"),
             generate_cc_pous(&pous_s4o) {
+      current_builddir = builddir;
       current_configuration = NULL;
     }
             
@@ -1472,7 +1474,7 @@
       common_ticktime = calculate_common_ticktime.get_ticktime();
       
       symbol->configuration_name->accept(*this);
-      stage4out_c config_s4o(current_name, "c");
+      stage4out_c config_s4o(current_builddir, current_name, "c");
       generate_cc_config_c generate_cc_config(&config_s4o);
       symbol->accept(generate_cc_config);
         
@@ -1489,14 +1491,14 @@
 
     void *visit(resource_declaration_c *symbol) {
     	symbol->resource_name->accept(*this);
-    	stage4out_c resources_s4o(current_name, "c");
+    	stage4out_c resources_s4o(current_builddir, current_name, "c");
       generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime);
     	symbol->accept(generate_cc_resources);
     	return NULL;
     }
 
     void *visit(single_resource_declaration_c *symbol) {
-    	stage4out_c resources_s4o("RESOURCE", "c");
+    	stage4out_c resources_s4o(current_builddir, "RESOURCE", "c");
       generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime);
     	symbol->accept(generate_cc_resources);
     	return NULL;
@@ -1516,7 +1518,7 @@
 
 
 
-visitor_c *new_code_generator(stage4out_c *s4o)  {return new generate_cc_c(s4o);}
+visitor_c *new_code_generator(stage4out_c *s4o, const char *builddir)  {return new generate_cc_c(s4o, builddir);}
 void delete_code_generator(visitor_c *code_generator) {delete code_generator;}