Fix code to correctly handle first object file.

It was luckily working because first file was always conditional.

svn path=/trunk/; revision=34854
This commit is contained in:
Hervé Poussineau 2008-07-27 17:12:44 +00:00
parent 241493fe8e
commit e66ffe54fe
2 changed files with 11 additions and 18 deletions

View file

@ -868,7 +868,6 @@ MingwModuleHandler::GetModuleSpecificCompilationUnits ( vector<CompilationUnit*>
void void
MingwModuleHandler::GenerateSourceMacros ( MingwModuleHandler::GenerateSourceMacros (
const char* assignmentOperation,
const IfableData& data ) const IfableData& data )
{ {
size_t i; size_t i;
@ -879,9 +878,8 @@ MingwModuleHandler::GenerateSourceMacros (
{ {
fprintf ( fprintf (
fMakefile, fMakefile,
"%s %s", "%s =",
sourcesMacro.c_str (), sourcesMacro.c_str () );
assignmentOperation );
for ( i = 0; i < compilationUnits.size(); i++ ) for ( i = 0; i < compilationUnits.size(); i++ )
{ {
CompilationUnit& compilationUnit = *compilationUnits[i]; CompilationUnit& compilationUnit = *compilationUnits[i];
@ -911,10 +909,10 @@ MingwModuleHandler::GenerateSourceMacros (
void void
MingwModuleHandler::GenerateObjectMacros ( MingwModuleHandler::GenerateObjectMacros (
const char* assignmentOperation,
const IfableData& data ) const IfableData& data )
{ {
size_t i; size_t i;
const char* assignmentOperation = "=";
const vector<CompilationUnit*>& compilationUnits = data.compilationUnits; const vector<CompilationUnit*>& compilationUnits = data.compilationUnits;
vector<const FileLocation *> headers; vector<const FileLocation *> headers;
@ -930,11 +928,12 @@ MingwModuleHandler::GenerateObjectMacros (
const FileLocation& compilationName = compilationUnit.GetFilename (); const FileLocation& compilationName = compilationUnit.GetFilename ();
const FileLocation *object_file = GetObjectFilename ( &compilationName, module ); const FileLocation *object_file = GetObjectFilename ( &compilationName, module );
fprintf ( fMakefile, fprintf ( fMakefile,
"%s := %s $(%s)\n", "%s := %s\n",
objectsMacro.c_str(), objectsMacro.c_str(),
backend->GetFullName ( *object_file ).c_str (), backend->GetFullName ( *object_file ).c_str () );
objectsMacro.c_str() );
delete object_file; delete object_file;
assignmentOperation = "+=";
break;
} }
} }
fprintf ( fprintf (
@ -1755,9 +1754,7 @@ MingwModuleHandler::GenerateSourceMacro ()
{ {
sourcesMacro = ssprintf ( "%s_SOURCES", module.name.c_str ()); sourcesMacro = ssprintf ( "%s_SOURCES", module.name.c_str ());
GenerateSourceMacros ( GenerateSourceMacros ( module.non_if_data );
"=",
module.non_if_data );
// future references to the macro will be to get its values // future references to the macro will be to get its values
sourcesMacro = ssprintf ("$(%s)", sourcesMacro.c_str ()); sourcesMacro = ssprintf ("$(%s)", sourcesMacro.c_str ());
@ -1768,9 +1765,7 @@ MingwModuleHandler::GenerateObjectMacro ()
{ {
objectsMacro = ssprintf ("%s_OBJS", module.name.c_str ()); objectsMacro = ssprintf ("%s_OBJS", module.name.c_str ());
GenerateObjectMacros ( GenerateObjectMacros ( module.non_if_data );
"=",
module.non_if_data );
// future references to the macro will be to get its values // future references to the macro will be to get its values
objectsMacro = ssprintf ("$(%s)", objectsMacro.c_str ()); objectsMacro = ssprintf ("$(%s)", objectsMacro.c_str ());

View file

@ -134,10 +134,8 @@ private:
const IfableData& data, const IfableData& data,
const std::vector<LinkerFlag*>* linkerFlags, const std::vector<LinkerFlag*>* linkerFlags,
std::set<const Define *>& used_defs ); std::set<const Define *>& used_defs );
void GenerateSourceMacros ( const char* assignmentOperation, void GenerateSourceMacros ( const IfableData& data );
const IfableData& data ); void GenerateObjectMacros ( const IfableData& data );
void GenerateObjectMacros ( const char* assignmentOperation,
const IfableData& data );
std::string GenerateGccIncludeParameters () const; std::string GenerateGccIncludeParameters () const;
std::string GenerateGccParameters () const; std::string GenerateGccParameters () const;
std::string GenerateNasmParameters () const; std::string GenerateNasmParameters () const;