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;