Build non-stripped version of ntoskrnl.exe if requested
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-05-08 11:51:28 UTC (rev 15119)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-05-08 13:45:50 UTC (rev 15120)
@@ -1969,67 +1969,34 @@
void
MingwKernelModuleHandler::GenerateKernelModuleTarget ()
{
- string targetName ( module.GetTargetName () ); // i.e.
"ntoskrnl.exe"
- string targetMacro ( GetTargetMacro ( module ) ); // i.e.
"$(NTOSKRNL_TARGET)"
- string workingDirectory = GetWorkingDirectory ();
+ string targetMacro ( GetTargetMacro ( module ) );
+ string workingDirectory = GetWorkingDirectory ( );
string objectsMacro = GetObjectsMacro ( module );
string linkDepsMacro = GetLinkingDependenciesMacro ();
string libsMacro = GetLibsMacro ();
- string base_tmp = ros_temp + module.name + ".base.tmp";
- CLEAN_FILE ( base_tmp );
- string junk_tmp = ros_temp + module.name + ".junk.tmp";
- CLEAN_FILE ( junk_tmp );
- string temp_exp = ros_temp + module.name + ".temp.exp";
- CLEAN_FILE ( temp_exp );
- string gccOptions = ssprintf ("-Wl,-T,%s" SSEP "ntoskrnl.lnk
-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s
-Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles
-mdll -Wl,--dll",
- module.GetBasePath ().c_str (),
- module.entrypoint.c_str (),
- module.baseaddress.c_str () );
- GenerateRules ();
-
GenerateImportLibraryTargetIfNeeded ();
- fprintf ( fMakefile, "%s: %s %s $(RSYM_TARGET) | %s\n",
- targetMacro.c_str (),
- objectsMacro.c_str (),
- linkDepsMacro.c_str (),
- GetDirectory(GetTargetFilename(module,NULL)).c_str ()
);
- fprintf ( fMakefile, "\t$(ECHO_LD)\n" );
- fprintf ( fMakefile,
- "\t${gcc} %s %s -Wl,--base-file,%s -o %s %s %s\n",
- GetLinkerMacro ().c_str (),
- gccOptions.c_str (),
- base_tmp.c_str (),
- junk_tmp.c_str (),
- objectsMacro.c_str (),
- linkDepsMacro.c_str () );
- fprintf ( fMakefile,
- "\t-@${rm} %s 2>$(NUL)\n",
- junk_tmp.c_str () );
- string killAt = module.mangledSymbols ? "" : "--kill-at";
- fprintf ( fMakefile,
- "\t${dlltool} --dllname %s --base-file %s --def
ntoskrnl/ntoskrnl.def --output-exp %s %s\n",
- targetName.c_str (),
- base_tmp.c_str (),
- temp_exp.c_str (),
- killAt.c_str () );
- fprintf ( fMakefile,
- "\t-@${rm} %s 2>$(NUL)\n",
- base_tmp.c_str () );
- fprintf ( fMakefile,
- "\t${gcc} %s %s -Wl,%s -o $@ %s %s\n",
- GetLinkerMacro ().c_str (),
- gccOptions.c_str (),
- temp_exp.c_str (),
- objectsMacro.c_str (),
- linkDepsMacro.c_str () );
- fprintf ( fMakefile,
- "\t-@${rm} %s 2>$(NUL)\n",
- temp_exp.c_str () );
- fprintf ( fMakefile, "\t$(ECHO_RSYM)\n" );
- fprintf ( fMakefile,
- "\t$(Q)$(RSYM_TARGET) $@ $@\n\n" );
+ if ( module.non_if_data.files.size () > 0 )
+ {
+ GenerateRules ();
+
+ string dependencies = linkDepsMacro + " " +
objectsMacro;
+
+ string linkerParameters = ssprintf ( "-Wl,-T,%s" SSEP
"ntoskrnl.lnk -Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s
-Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles
-mdll --dll",
+ module.GetBasePath
().c_str (),
+
module.entrypoint.c_str (),
+
module.baseaddress.c_str () );
+ GenerateLinkerCommand ( dependencies,
+ "${gcc}",
+ linkerParameters,
+ objectsMacro,
+ libsMacro );
+ }
+ else
+ {
+ GeneratePhonyTarget();
+ }
}