Let dependencies control 'make install'
authorCasper Hornstrup <chorns@users.sourceforge.net>
Mon, 4 Apr 2005 19:39:44 +0000 (19:39 +0000)
committerCasper Hornstrup <chorns@users.sourceforge.net>
Mon, 4 Apr 2005 19:39:44 +0000 (19:39 +0000)
svn path=/branches/xmlbuildsystem/; revision=14487

reactos/media/nls/nls.xml
reactos/tools/rbuild/backend/mingw/mingw.cpp
reactos/tools/rbuild/backend/mingw/mingw.h

index 907972c..0020ebf 100644 (file)
@@ -3,34 +3,6 @@
 <cdfile base="reactos">l_intl.nls</cdfile>\r
 \r
 <installfile base="system32">c_037.nls</installfile>\r
-<installfile base="system32">c_037.nls</installfile>\r
-<installfile base="system32">c_10000.nls</installfile>\r
-<installfile base="system32">c_10006.nls</installfile>\r
-<installfile base="system32">c_10007.nls</installfile>\r
-<installfile base="system32">c_10029.nls</installfile>\r
-<installfile base="system32">c_1006.nls</installfile>\r
-<installfile base="system32">c_10079.nls</installfile>\r
-<installfile base="system32">c_10081.nls</installfile>\r
-<installfile base="system32">c_1026.nls</installfile>\r
-<installfile base="system32">c_1250.nls</installfile>\r
-<installfile base="system32">c_1251.nls</installfile>\r
-<installfile base="system32" newname="ansi.nls">c_1252.nls</installfile>\r
-<installfile base="system32">c_1253.nls</installfile>\r
-<installfile base="system32">c_1254.nls</installfile>\r
-<installfile base="system32">c_1255.nls</installfile>\r
-<installfile base="system32">c_1256.nls</installfile>\r
-<installfile base="system32">c_1257.nls</installfile>\r
-<installfile base="system32">c_1258.nls</installfile>\r
-<installfile base="system32">c_20866.nls</installfile>\r
-<installfile base="system32">c_28591.nls</installfile>\r
-<installfile base="system32">c_28592.nls</installfile>\r
-<installfile base="system32">c_28593.nls</installfile>\r
-<installfile base="system32">c_28594.nls</installfile>\r
-<installfile base="system32">c_28595.nls</installfile>\r
-<installfile base="system32">c_28596.nls</installfile>\r
-<installfile base="system32">c_28597.nls</installfile>\r
-<installfile base="system32">c_28598.nls</installfile>\r
-<installfile base="system32">c_28599.nls</installfile>\r
 <installfile base="system32">c_424.nls</installfile>\r
 <installfile base="system32" newname="oem.nls">c_437.nls</installfile>\r
 <installfile base="system32">c_500.nls</installfile>\r
 <installfile base="system32">c_936.nls</installfile>\r
 <installfile base="system32">c_949.nls</installfile>\r
 <installfile base="system32">c_950.nls</installfile>\r
+<installfile base="system32">c_1006.nls</installfile>\r
+<installfile base="system32">c_1026.nls</installfile>\r
+<installfile base="system32">c_1250.nls</installfile>\r
+<installfile base="system32">c_1251.nls</installfile>\r
+<installfile base="system32" newname="ansi.nls">c_1252.nls</installfile>\r
+<installfile base="system32">c_1253.nls</installfile>\r
+<installfile base="system32">c_1254.nls</installfile>\r
+<installfile base="system32">c_1255.nls</installfile>\r
+<installfile base="system32">c_1256.nls</installfile>\r
+<installfile base="system32">c_1257.nls</installfile>\r
+<installfile base="system32">c_1258.nls</installfile>\r
+<installfile base="system32">c_10000.nls</installfile>\r
+<installfile base="system32">c_10006.nls</installfile>\r
+<installfile base="system32">c_10007.nls</installfile>\r
+<installfile base="system32">c_10029.nls</installfile>\r
+<installfile base="system32">c_10079.nls</installfile>\r
+<installfile base="system32">c_10081.nls</installfile>\r
+<installfile base="system32">c_20866.nls</installfile>\r
+<installfile base="system32">c_28591.nls</installfile>\r
+<installfile base="system32">c_28592.nls</installfile>\r
+<installfile base="system32">c_28593.nls</installfile>\r
+<installfile base="system32">c_28594.nls</installfile>\r
+<installfile base="system32">c_28595.nls</installfile>\r
+<installfile base="system32">c_28596.nls</installfile>\r
+<installfile base="system32">c_28597.nls</installfile>\r
+<installfile base="system32">c_28598.nls</installfile>\r
+<installfile base="system32">c_28599.nls</installfile>\r
 <installfile base="system32" newname="casemap.nls">l_intl.nls</installfile>\r
index 59f0da1..b8d43ce 100644 (file)
@@ -656,7 +656,9 @@ MingwBackend::GetInstallFiles (
 }\r
 \r
 void\r
-MingwBackend::OutputInstallfileCopyCommands ( const string& installDirectory )\r
+MingwBackend::GetNonModuleInstallTargetFiles (\r
+       string installDirectory,\r
+       vector<string>& out ) const\r
 {\r
        for ( size_t i = 0; i < ProjectNode.installfiles.size (); i++ )\r
        {\r
@@ -665,6 +667,37 @@ MingwBackend::OutputInstallfileCopyCommands ( const string& installDirectory )
                string targetFilename = MingwModuleHandler::PassThruCacheDirectory (\r
                        FixupTargetFilename ( targetFilenameNoFixup ),\r
                        true );\r
+               out.push_back ( targetFilename );\r
+       }\r
+}\r
+\r
+void\r
+MingwBackend::GetInstallTargetFiles (\r
+       string installDirectory,\r
+       vector<string>& out ) const\r
+{\r
+       GetNonModuleInstallTargetFiles ( installDirectory,\r
+                                        out );\r
+}\r
+\r
+void\r
+MingwBackend::OutputInstallfileTargets ( const string& installDirectory )\r
+{\r
+       for ( size_t i = 0; i < ProjectNode.installfiles.size (); i++ )\r
+       {\r
+               const InstallFile& installfile = *ProjectNode.installfiles[i];\r
+               string targetFilenameNoFixup = installDirectory + SSEP + installfile.base + SSEP + installfile.newname;\r
+               string targetFilename = MingwModuleHandler::PassThruCacheDirectory (\r
+                       FixupTargetFilename ( targetFilenameNoFixup ),\r
+                       true );\r
+               string targetDirectory = MingwModuleHandler::PassThruCacheDirectory (\r
+                       FixupTargetFilename ( installDirectory + SSEP + installfile.base ),\r
+                       true );\r
+               fprintf ( fMakefile,\r
+                         "%s: %s %s\n",\r
+                         targetFilename.c_str (),\r
+                         installfile.GetPath ().c_str (),\r
+                         targetDirectory.c_str () );\r
                fprintf ( fMakefile,\r
                          "\t$(ECHO_CP)\n" );\r
                fprintf ( fMakefile,\r
@@ -679,19 +712,18 @@ MingwBackend::GenerateInstallTarget ()
 {\r
        string installDirectoryNoFixup = "reactos";\r
        string installDirectory = MingwModuleHandler::PassThruCacheDirectory (\r
-               FixupTargetFilename ( installDirectoryNoFixup ),\r
+               NormalizeFilename ( installDirectoryNoFixup ),\r
                true );\r
-       string installDirectories = GetInstallDirectories ( installDirectoryNoFixup );\r
-       vector<string> vInstallFiles;\r
-       GetInstallFiles ( vInstallFiles );\r
-       string installFiles = v2s ( vInstallFiles, 5 );\r
+       vector<string> vInstallTargetFiles;\r
+       GetInstallTargetFiles ( installDirectoryNoFixup,\r
+                               vInstallTargetFiles );\r
+       string installTargetFiles = v2s ( vInstallTargetFiles, 5 );\r
 \r
        fprintf ( fMakefile,\r
-                 "install: all %s %s %s\n",\r
+                 "install: %s %s\n",\r
                  installDirectory.c_str (),\r
-                 installDirectories.c_str (),\r
-                 installFiles.c_str () );\r
-       OutputInstallfileCopyCommands ( installDirectoryNoFixup );\r
+                 installTargetFiles.c_str () );\r
+       OutputInstallfileTargets ( installDirectoryNoFixup );\r
        fprintf ( fMakefile,\r
                  "\n" );\r
 }\r
index 7843581..48b0ab8 100644 (file)
@@ -48,7 +48,11 @@ private:
        std::string GetInstallDirectories ( const std::string& installDirectory );\r
        void GetNonModuleInstallFiles ( std::vector<std::string>& out ) const;\r
        void GetInstallFiles ( std::vector<std::string>& out ) const;\r
-       void OutputInstallfileCopyCommands ( const std::string& installDirectory );\r
+       void GetNonModuleInstallTargetFiles ( std::string installDirectory,\r
+                                             std::vector<std::string>& out ) const;\r
+       void GetInstallTargetFiles ( std::string installDirectory,\r
+                                    std::vector<std::string>& out ) const;\r
+       void OutputInstallfileTargets ( const std::string& installDirectory );\r
        void GenerateInstallTarget ();\r
        FILE* fMakefile;\r
        bool use_pch;\r