{\r
fprintf (\r
fMakefile,\r
- "ifeq ($(%s),\"%s\")\n",\r
+ "ifeq (\"$(%s)\",\"%s\")\n",\r
rIf.property.c_str(),\r
rIf.value.c_str() );\r
GenerateMacros (\r
void\r
MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,\r
const vector<File*>& files,\r
+ const vector<If*>& ifs,\r
const string& cc,\r
const string& cflagsMacro,\r
const string& nasmflagsMacro ) const\r
{\r
- if ( files.size () == 0 )\r
- return;\r
+ size_t i;\r
\r
- for ( size_t i = 0; i < files.size (); i++ )\r
+ for ( i = 0; i < files.size (); i++ )\r
{\r
string sourceFilename = files[i]->name;\r
string objectFilename = GetObjectFilename ( sourceFilename );\r
cflagsMacro,\r
nasmflagsMacro ).c_str () );\r
}\r
- \r
- fprintf ( fMakefile, "\n" );\r
+\r
+ for ( i = 0; i < ifs.size(); i++ )\r
+ GenerateObjectFileTargets ( module, ifs[i]->files, ifs[i]->ifs, cc, cflagsMacro, nasmflagsMacro );\r
}\r
\r
void\r
const string& cflagsMacro,\r
const string& nasmflagsMacro ) const\r
{\r
- GenerateObjectFileTargets ( module, module.files, cc, cflagsMacro, nasmflagsMacro );\r
- for ( size_t i = 0; i < module.ifs.size(); i++ )\r
- GenerateObjectFileTargets ( module, module.ifs[i]->files, cc, cflagsMacro, nasmflagsMacro );\r
+ GenerateObjectFileTargets ( module, module.files, module.ifs, cc, cflagsMacro, nasmflagsMacro );\r
+ fprintf ( fMakefile, "\n" );\r
}\r
\r
void\r
{\r
string target ( FixupTargetFilename ( module.GetPath () ) );\r
string archiveFilename = GetModuleArchiveFilename ( module );\r
+\r
+ GenerateMacrosAndTargetsHost ( module );\r
+\r
fprintf ( fMakefile, "%s: %s\n",\r
target.c_str (),\r
archiveFilename.c_str () );\r
"\t${host_gcc} -o %s %s\n\n",\r
target.c_str (),\r
archiveFilename.c_str () );\r
- GenerateMacrosAndTargetsHost ( module );\r
}\r
\r
static MingwKernelModuleHandler kernelmodule_handler;\r
string temp_exp = ros_junk + module.name + ".temp.exp";\r
string gccOptions = ssprintf ("-Wl,-T,%s" SSEP "ntoskrnl.lnk -Wl,--subsystem,native -Wl,--entry,_NtProcessStartup -Wl,--image-base,0xC0000000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll",\r
module.GetBasePath ().c_str () );\r
+\r
+ GenerateMacrosAndTargetsTarget ( module );\r
+\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
archiveFilename.c_str (),\r
fprintf ( fMakefile,\r
"\t${rm} %s\n\n",\r
temp_exp.c_str () );\r
- \r
- GenerateMacrosAndTargetsTarget ( module );\r
}\r
\r
\r
\r
if (module.files.size () > 0)\r
{\r
+ GenerateMacrosAndTargetsTarget ( module );\r
+\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
archiveFilename.c_str (),\r
target.c_str (),\r
archiveFilename.c_str (),\r
importLibraryDependencies.c_str () );\r
- \r
- GenerateMacrosAndTargetsTarget ( module );\r
}\r
else\r
{\r
\r
if (module.files.size () > 0)\r
{\r
+ GenerateMacrosAndTargetsTarget ( module );\r
+\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
archiveFilename.c_str (),\r
target.c_str (),\r
archiveFilename.c_str (),\r
importLibraryDependencies.c_str () );\r
- \r
- GenerateMacrosAndTargetsTarget ( module );\r
}\r
else\r
{\r
\r
if (module.files.size () > 0)\r
{\r
+ GenerateMacrosAndTargetsTarget ( module );\r
+\r
fprintf ( fMakefile, "%s: %s %s\n",\r
target.c_str (),\r
archiveFilename.c_str (),\r
target.c_str (),\r
archiveFilename.c_str (),\r
importLibraryDependencies.c_str () );\r
- \r
- GenerateMacrosAndTargetsTarget ( module );\r
}\r
else\r
{\r