use ROS_TEMPORARY and ROS_INTERMEDIATE to allow builder to override locations for created files. Fix name conflict with temporary files
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-08 05:22:02 UTC (rev 12881)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-08 06:36:03 UTC (rev 12882)
@@ -78,7 +78,7 @@
 		Module& module = *ProjectNode.modules[i];
 		fprintf ( fMakefile,
 		          " %s",
-		          module.GetPath ().c_str () );
+		          FixupTargetFilename(module.GetPath ()).c_str () );
 	}
 	fprintf ( fMakefile, "\n\t\n\n" );
 }
@@ -105,3 +105,9 @@
 	moduleHandlers.push_back ( new MingwKernelModuleHandler ( fMakefile ) );
 	moduleHandlers.push_back ( new MingwStaticLibraryModuleHandler ( fMakefile ) );
 }
+
+string
+FixupTargetFilename ( const string& targetFilename )
+{
+	return string("$(ROS_INTERMEDIATE)") + targetFilename;
+}

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-08 05:22:02 UTC (rev 12881)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-08 06:36:03 UTC (rev 12882)
@@ -40,4 +40,6 @@
 	FILE* fMakefile;
 };
 
+std::string FixupTargetFilename ( const std::string& targetFilename );
+
 #endif /* MINGW_H */

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-01-08 05:22:02 UTC (rev 12881)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-01-08 06:36:03 UTC (rev 12882)
@@ -33,7 +33,7 @@
 string
 MingwModuleHandler::GetModuleArchiveFilename ( const Module& module ) const
 {
-	return ReplaceExtension ( module.GetPath ().c_str (),
+	return ReplaceExtension ( FixupTargetFilename(module.GetPath ()).c_str (),
 	                          ".a" );
 }
 
@@ -50,7 +50,7 @@
 			dependencies += " ";
 		const Module* importedModule = module.project.LocateModule ( module.libraries[i]->name );
 		assert ( importedModule != NULL );
-		dependencies += importedModule->GetPath ().c_str ();
+		dependencies += FixupTargetFilename(importedModule->GetPath ()).c_str ();
 	}
 	return dependencies;
 }
@@ -74,8 +74,9 @@
 string
 MingwModuleHandler::GetObjectFilename ( const string& sourceFilename ) const
 {
-	return ReplaceExtension ( sourceFilename,
-		                      ".o" );
+	return
+		FixupTargetFilename ( ReplaceExtension ( sourceFilename,
+		                                         ".o" ) );
 }
 
 string
@@ -242,39 +243,45 @@
 void
 MingwKernelModuleHandler::GenerateKernelModuleTarget ( const Module& module )
 {
+	static string ros_junk ( "$(ROS_TEMPORARY)" );
+	//static string ros_output ( "$(ROS_INTERMEDIATE)" );
+	string target ( FixupTargetFilename(module.GetPath()) );
 	string workingDirectory = GetWorkingDirectory ( );
 	string archiveFilename = GetModuleArchiveFilename ( module );
 	string importLibraryDependencies = GetImportLibraryDependencies ( module );
+	string base_tmp = ros_junk + module.name + ".base.tmp";
+	string junk_tmp = ros_junk + module.name + ".junk.tmp";
+	string temp_exp = ros_junk + module.name + ".temp.exp";
 	fprintf ( fMakefile, "%s: %s %s\n",
-	          module.GetPath ().c_str (),
+	          target.c_str (),
 	          archiveFilename.c_str (),
 	          importLibraryDependencies.c_str () );
 	fprintf ( fMakefile,
-	          "\t${gcc} -Wl,--base-file,%s" SSEP "base.tmp -o %s" SSEP "junk.tmp %s %s\n",
-	          workingDirectory.c_str (),
-	          workingDirectory.c_str (),
+	          "\t${gcc} -Wl,--base-file,%s -o %s %s %s\n",
+	          base_tmp.c_str (),
+	          junk_tmp.c_str (),
 	          archiveFilename.c_str (),
 	          importLibraryDependencies.c_str () );
 	fprintf ( fMakefile,
-	          "\t${rm} %s" SSEP "junk.tmp\n",
-	          workingDirectory.c_str () );
+	          "\t${rm} %s\n",
+	          junk_tmp.c_str () );
 	fprintf ( fMakefile,
-	          "\t${dlltool} --dllname %s --base-file %s" SSEP "base.tmp --output-exp %s" SSEP "temp.exp --kill-at\n",
-	          module.GetPath ().c_str (),
-	          workingDirectory.c_str (),
-	          workingDirectory.c_str ());
+	          "\t${dlltool} --dllname %s --base-file %s --output-exp %s --kill-at\n",
+	          target.c_str (),
+	          base_tmp.c_str (),
+	          temp_exp.c_str ());
 	fprintf ( fMakefile,
-	          "\t${rm} %s" SSEP "base.tmp\n",
-	          workingDirectory.c_str () );
+	          "\t${rm} %s\n",
+	          base_tmp.c_str () );
 	fprintf ( fMakefile,
-	          "\t${ld} -Wl,%s" SSEP "temp.exp -o %s %s %s\n",
-	          workingDirectory.c_str (),
-	          module.GetPath ().c_str (),
+	          "\t${ld} -Wl,%s -o %s %s %s\n",
+	          temp_exp.c_str (),
+	          target.c_str (),
 	          archiveFilename.c_str (),
 	          importLibraryDependencies.c_str () );
 	fprintf ( fMakefile,
-	          "\t${rm} %s" SSEP "temp.exp\n",
-	          workingDirectory.c_str () );
+	          "\t${rm} %s\n",
+	          temp_exp.c_str () );
 	
 	GenerateArchiveTarget ( module );
 	GenerateObjectFileTargets ( module );

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-01-08 05:22:02 UTC (rev 12881)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h	2005-01-08 06:36:03 UTC (rev 12882)
@@ -16,6 +16,7 @@
 	std::string GetModuleArchiveFilename ( const Module& module ) const;
 	std::string GetImportLibraryDependencies ( const Module& module ) const;
 	std::string GetSourceFilenames ( const Module& module ) const;
+
 	std::string GetObjectFilename ( const std::string& sourceFilename ) const;
 	std::string GetObjectFilenames ( const Module& module ) const;
 	void GenerateObjectFileTargets ( const Module& module ) const;