fprintf ( fMakefile,\r
"\t$(ECHO_CP)\n" );\r
fprintf ( fMakefile,\r
- "\t${cp} %s %s\n",\r
+ "\t${cp} %s %s 1>$(NUL)\n",\r
sourceFilename.c_str (),\r
normalizedTargetFilename.c_str () );\r
}\r
}\r
}\r
\r
+string\r
+MingwBackend::GetRegistrySourceFiles ()\r
+{\r
+ return "bootdata" SSEP "hivecls.inf "\r
+ "bootdata" SSEP "hivedef.inf "\r
+ "bootdata" SSEP "hiveinst.inf "\r
+ "bootdata" SSEP "hivesft.inf "\r
+ "bootdata" SSEP "hivesys.inf";\r
+}\r
+\r
+string\r
+MingwBackend::GetRegistryTargetFiles ( const string& installDirectory )\r
+{\r
+ string system32ConfigDirectory = MingwModuleHandler::PassThruCacheDirectory (\r
+ NormalizeFilename ( installDirectory + SSEP + "system32" + SSEP "config" ),\r
+ true );\r
+ return system32ConfigDirectory + SSEP "default " +\r
+ system32ConfigDirectory + SSEP "sam " +\r
+ system32ConfigDirectory + SSEP "security " +\r
+ system32ConfigDirectory + SSEP "software " +\r
+ system32ConfigDirectory + SSEP "system";\r
+}\r
+\r
+void\r
+MingwBackend::OutputRegistryInstallTarget ( const string& installDirectory )\r
+{\r
+ string system32ConfigDirectory = MingwModuleHandler::PassThruCacheDirectory (\r
+ NormalizeFilename ( installDirectory + SSEP + "system32" + SSEP "config" ),\r
+ true );\r
+\r
+ string registrySourceFiles = GetRegistrySourceFiles ();\r
+ string registryTargetFiles = GetRegistryTargetFiles ( installDirectory );\r
+ fprintf ( fMakefile,\r
+ "install_registry: %s\n",\r
+ registryTargetFiles.c_str () );\r
+ fprintf ( fMakefile,\r
+ "%s: %s %s $(MKHIVE_TARGET)\n",\r
+ registryTargetFiles.c_str (),\r
+ registrySourceFiles.c_str (),\r
+ system32ConfigDirectory.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\t$(ECHO_MKHIVE)\n" );\r
+ fprintf ( fMakefile,\r
+ "\t$(MKHIVE_TARGET) bootdata %s bootdata" SSEP "hiveinst.inf\n",\r
+ system32ConfigDirectory.c_str () );\r
+ fprintf ( fMakefile,\r
+ "\n" );\r
+}\r
+\r
void\r
MingwBackend::GenerateInstallTarget ()\r
{\r
string installTargetFiles = v2s ( vInstallTargetFiles, 5 );\r
\r
fprintf ( fMakefile,\r
- "install: %s %s\n",\r
+ "install: %s %s install_registry\n",\r
installDirectory.c_str (),\r
installTargetFiles.c_str () );\r
OutputNonModuleInstallTargets ( installDirectoryNoFixup );\r
OutputModuleInstallTargets ( installDirectoryNoFixup );\r
+ OutputRegistryInstallTarget ( installDirectoryNoFixup );\r
fprintf ( fMakefile,\r
"\n" );\r
}\r