\r
string\r
ReplaceExtension ( const string& filename,\r
- const string& newExtension )\r
+ const string& newExtension )\r
{\r
size_t index = filename.find_last_of ( '/' );\r
if (index == string::npos) index = 0;\r
{\r
size_t i;\r
\r
- if ( includes.size() || defines.size() )\r
+ if ( includes.size () > 0 || defines.size () > 0 )\r
{\r
GenerateMacro ( assignmentOperation,\r
cflags_macro,\r
}\r
}\r
\r
- if ( files.size() )\r
+ if ( files.size () > 0 )\r
{\r
- for ( i = 0; i < files.size(); i++ )\r
+ for ( i = 0; i < files.size (); i++ )\r
{\r
if ( files[i]->first )\r
{\r
fprintf (\r
fMakefile,\r
"%s %s",\r
- objs_macro.c_str(),\r
+ objs_macro.c_str (),\r
assignmentOperation );\r
for ( i = 0; i < files.size(); i++ )\r
{\r
- string extension = GetExtension ( files[i]->name );\r
- if ( extension != ".spec"\r
- && extension != ".SPEC"\r
- && !files[i]->first )\r
+ if ( !files[i]->first )\r
{\r
fprintf (\r
fMakefile,\r
const string& windresflagsMacro ) const\r
{\r
string objectFilename = PassThruCacheDirectory ( MingwModuleHandler::GetObjectFilename ( sourceFilename ) );\r
+ string rciFilename = ReplaceExtension ( sourceFilename,\r
+ ".rci" );\r
+ string resFilename = ReplaceExtension ( sourceFilename,\r
+ ".res" );\r
fprintf ( fMakefile,\r
"%s: %s\n",\r
objectFilename.c_str (),\r
sourceFilename.c_str () );\r
fprintf ( fMakefile,\r
- "\t%s %s -o %s ${%s}\n",\r
- "${windres}",\r
+ "\t${gcc} -xc -E -DRC_INVOKED ${%s} %s > %s\n",\r
+ windresflagsMacro.c_str (),\r
sourceFilename.c_str (),\r
- objectFilename.c_str (),\r
- windresflagsMacro.c_str () );\r
+ rciFilename.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\t${wrc} ${%s} %s %s\n",\r
+ windresflagsMacro.c_str (),\r
+ rciFilename.c_str (),\r
+ resFilename.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\t${rm} %s\n",\r
+ rciFilename.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\t${windres} %s -o %s\n",\r
+ resFilename.c_str (),\r
+ objectFilename.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\t${rm} %s\n",\r
+ resFilename.c_str () );\r
}\r
\r
void\r
MingwBuildToolModuleHandler::GenerateBuildToolModuleTarget ( const Module& module )\r
{\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
- string archiveFilename = GetModuleArchiveFilename ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateMacrosAndTargetsHost ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
fprintf ( fMakefile,\r
"\t%s %s -o %s %s %s\n\n",\r
linker.c_str (),\r
GetLinkerMacro ( module ).c_str (),\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
}\r
\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string archiveFilename = GetModuleArchiveFilename ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll",\r
GenerateLinkerCommand ( module,\r
"${gcc}",\r
linkerParameters,\r
- archiveFilename );\r
+ objectsMacro );\r
}\r
else\r
{\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( PassThruCacheDirectory( FixupTargetFilename ( module.GetPath () ) ) );\r
- string workingDirectory = GetWorkingDirectory ( );\r
- string archiveFilename = GetModuleArchiveFilename ( module );\r
+ string workingDirectory = GetWorkingDirectory ();\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll",\r
GenerateLinkerCommand ( module,\r
"${gcc}",\r
linkerParameters,\r
- archiveFilename );\r
+ objectsMacro );\r
}\r
else\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string objectFilenames = GetObjectFilenames ( module );\r
- string archiveFilename = GetModuleArchiveFilename ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll",\r
GenerateLinkerCommand ( module,\r
"${gcc}",\r
linkerParameters,\r
- objectFilenames );\r
+ objectsMacro );\r
}\r
else\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string objectFilenames = GetObjectFilenames ( module );\r
- string archiveFilename = GetModuleArchiveFilename ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- archiveFilename.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib",\r
GenerateLinkerCommand ( module,\r
"${gcc}",\r
linkerParameters,\r
- objectFilenames );\r
+ objectsMacro );\r
}\r
else\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string objectFilenames = GetObjectFilenames ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string linkingDependencies = GetLinkingDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- objectFilenames.c_str (),\r
+ objectsMacro.c_str (),\r
linkingDependencies.c_str () );\r
\r
string linker;\r
GenerateLinkerCommand ( module,\r
linker,\r
linkerParameters,\r
- objectFilenames );\r
+ objectsMacro );\r
}\r
else\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string objectFilenames = GetObjectFilenames ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- objectFilenames.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linker;\r
GenerateLinkerCommand ( module,\r
linker,\r
linkerParameters,\r
- objectFilenames );\r
+ objectsMacro );\r
}\r
else\r
{\r
static string ros_junk ( "$(ROS_TEMPORARY)" );\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string workingDirectory = GetWorkingDirectory ( );\r
- string objectFilenames = GetObjectFilenames ( module );\r
+ string objectsMacro = GetObjectsMacro ( module );\r
string importLibraryDependencies = GetImportLibraryDependencies ( module );\r
\r
GenerateImportLibraryTargetIfNeeded ( module );\r
\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
- objectFilenames.c_str (),\r
+ objectsMacro.c_str (),\r
importLibraryDependencies.c_str () );\r
\r
string linker;\r
GenerateLinkerCommand ( module,\r
linker,\r
linkerParameters,\r
- objectFilenames );\r
+ objectsMacro );\r
}\r
else\r
{\r