Merge from amd64 branch:
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 25 Mar 2010 23:16:12 +0000 (23:16 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 25 Mar 2010 23:16:12 +0000 (23:16 +0000)
44762 (sserapion)
[rbuild]
- Automatically generate reactos.dff using the installfile and installbase attributes found in rbuild files.
-- Fixes race to grab reactos.dff on concurrent builds in the same tree.
-- Makes the result of make install, make livecd and make bootcd the same(some modules arent in reactos.dff but have installfile/base attributes, which means they got intto livecd/install but not bootcd!)

44763 (sserapion)
[rbuild]
Really fix mkhive command.

44764 (sserapion)
[rbuild]
- fix mkhive command try 2.

svn path=/trunk/; revision=46452

1  2 
reactos/ReactOS-amd64.rbuild
reactos/base/shell/explorer/explorer.rbuild
reactos/tools/rbuild/backend/mingw/mingw.cpp
reactos/tools/rbuild/backend/mingw/mingw.h
reactos/tools/rbuild/backend/mingw/modulehandler.cpp
reactos/tools/rbuild/module.cpp
reactos/tools/rbuild/project.cpp
reactos/tools/rbuild/rbuild.h

@@@ -1,6 -1,6 +1,6 @@@
  <?xml version="1.0"?>
  <!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
--<project name="ReactOS" makefile="makefile-amd64.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
++<project name="ReactOS" makefile="makefile-amd64.auto" xmlns:xi="http://www.w3.org/2001/XInclude" allowwarnings="true">
        <xi:include href="config-amd64.rbuild">
                <xi:fallback>
                        <xi:include href="config-amd64.template.rbuild" />
                        <compilerflag>-ftracer</compilerflag>
                        <compilerflag>-momit-leaf-frame-pointer</compilerflag>
                </if>
++              <compilerflag>-fms-extensions</compilerflag>
                <compilerflag>-mpreferred-stack-boundary=4</compilerflag>
                <compilerflag compiler="midl">-m64 --win64</compilerflag>
                <!-- compilerflag compiler="cc,cxx">-gstabs+</compilerflag -->
                <!-- compilerflag compiler="as">-gstabs+</compilerflag -->
                <compilerflag>-U_X86_</compilerflag>
                <compilerflag>-Wno-format</compilerflag>
++              <compilerflag>-fno-leading-underscore</compilerflag>
        </group>
  
        <group linkerset="ld">
@@@ -42,6 -42,6 +44,8 @@@
                <linkerflag>-section-alignment=0x1000</linkerflag>
                <linkerflag>--unique=.eh_frame</linkerflag>
                <linkerflag>-static</linkerflag>
++              <linkerflag>-fno-leading-underscore</linkerflag>
++              <linkerflag>--exclude-all-symbols</linkerflag>
        </group>
  
        <if property="USERMODE" value="1">
Simple merge
@@@ -546,4 -539,97 +546,96 @@@ Project::GetLinkerSet () cons
        case MicrosoftLink: return "mslink";
        default: assert ( false );
        }
 -    return "";
  }
+ void
+ Project::GenerateInstallerFileList()
+ {
+     std::map<std::string, Module*> Result;
+     std::map<std::string, Module*>::iterator i; 
+     std::string buffer = "";
+     printf ( "Generating reactos.dff..." );
+     std::string path = Environment::GetIntermediatePath();
+     path += sSep + "reactos.dff";
+     FILE* f = fopen(path.c_str(), "wb");
+     buffer = "; Main ReactOS package\r\n"
+              ".Set DiskLabelTemplate=\"ReactOS\"                ; Label of disk\r\n"
+              ".Set CabinetNameTemplate=\"reactos.cab\"          ; reactos.cab\r\n"
+              ".Set InfFileName=\"reactos.inf\"                  ; reactos.inf\r\n"
+              ".InfBegin\r\n"
+              "[Version]\r\n"
+              "Signature = \"$ReactOS$\"\r\n"
+              "[Directories]\r\n"
+              "1 = system32\r\n"
+              "2 = system32\\drivers\r\n"
+              "3 = Fonts\r\n"
+              "4 =\r\n"
+              "5 = system32\\drivers\\etc\r\n"
+              "6 = inf\r\n"
+              "7 = bin\r\n"
+              "8 = media\r\n"
+              ".InfEnd\r\n"
+              "; Contents of disk\r\n"
+              ".InfBegin\r\n"
+              "[SourceFiles]\r\n"
+              ".InfEnd\r\n";
+     fprintf(f,buffer.c_str());
+     for(i = modules.begin(); i != modules.end(); ++i)
+     {
+         buffer = "";
+         if(i->second->install)
+         {
+             buffer = i->second->output->relative_path + sSep;
+             buffer += i->second->output->name;
+             if(i->second->installbase == "system32")
+                 buffer += "\t1";
+             if(i->second->installbase == "system32/drivers")
+                 buffer += "\t2";
+             else if(i->second->installbase == "fonts")
+                 buffer += "\t3";
+             else if(i->second->installbase == "")
+                 buffer += "\t4";
+             else if(i->second->installbase == "system32/drivers/etc")
+                 buffer += "\t5";
+             else if(i->second->installbase == "inf")
+                 buffer += "\t6";
+             else if(i->second->installbase == "bin")
+                 buffer += "\t7";
+             else if(i->second->installbase == "media")
+                 buffer += "\t8";
+             fprintf(f, "%s\r\n",buffer.c_str());
+         }
+     }
+     for(size_t j = 0; j< installfiles.size(); j++)
+     {
+         buffer = "";
+         buffer = installfiles[j]->source->relative_path + sSep;
+         buffer += installfiles[j]->target->name;
+         if(installfiles[j]->installbase == "system32")
+             buffer += "\t1";
+         if(installfiles[j]->installbase == "system32/drivers")
+             buffer += "\t2";
+         else if(installfiles[j]->installbase == "fonts")
+             buffer += "\t3";
+         else if(installfiles[j]->installbase == "")
+             buffer += "\t4";
+         else if(installfiles[j]->installbase == "system32/drivers/etc")
+             buffer += "\t5";
+         else if(installfiles[j]->installbase == "inf")
+             buffer += "\t6";
+         else if(installfiles[j]->installbase == "bin")
+             buffer += "\t7";
+         else if(installfiles[j]->installbase == "media")
+             buffer += "\t8";
+         fprintf(f,"%s\r\n",buffer.c_str());
+     }
+       printf ( "done\n" );
+ }
Simple merge