]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenMake.py
BaseTools: Fix the bug that FixedPcdGetPtr failure for CArray Pcd
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenMake.py
index 4b2902f47330b57d5cbe2f94bd1c1d4a53840c90..ac24bd8bbe5b21f65ede162885c9d0e2999a15ab 100644 (file)
@@ -386,7 +386,7 @@ ${END}
 #\r
 clean:\r
 \t${BEGIN}${clean_command}\r
-\t${END}\r
+\t${END}\t$(RM) AutoGenTimeStamp\r
 \r
 #\r
 # clean all generated files\r
@@ -395,6 +395,7 @@ cleanall:
 ${BEGIN}\t${cleanall_command}\r
 ${END}\t$(RM) *.pdb *.idb > NUL 2>&1\r
 \t$(RM) $(BIN_DIR)${separator}$(MODULE_NAME).efi\r
+\t$(RM) AutoGenTimeStamp\r
 \r
 #\r
 # clean all dependent libraries built\r
@@ -488,6 +489,11 @@ cleanlib:
         if 'IMAGE_ENTRY_POINT' not in self._AutoGenObject.Macros.keys():\r
             self._AutoGenObject.Macros['IMAGE_ENTRY_POINT'] = ImageEntryPoint\r
 \r
+        PCI_COMPRESS_Flag = False\r
+        for k, v in self._AutoGenObject.Module.Defines.iteritems():\r
+            if 'PCI_COMPRESS' == k and 'TRUE' == v:\r
+                PCI_COMPRESS_Flag = True\r
+\r
         # tools definitions\r
         ToolsDef = []\r
         IncPrefix = self._INC_FLAG_[self._AutoGenObject.ToolChainFamily]\r
@@ -505,6 +511,14 @@ cleanlib:
                     # Remove duplicated include path, if any\r
                     if Attr == "FLAGS":\r
                         Value = RemoveDupOption(Value, IncPrefix, self._AutoGenObject.IncludePathList)\r
+                        if Tool == "OPTROM" and PCI_COMPRESS_Flag:\r
+                            ValueList = Value.split()\r
+                            if ValueList:\r
+                                for i, v in enumerate(ValueList):\r
+                                    if '-e' == v:\r
+                                        ValueList[i] = '-ec'\r
+                                Value = ' '.join(ValueList)\r
+\r
                     ToolsDef.append("%s_%s = %s" % (Tool, Attr, Value))\r
             ToolsDef.append("")\r
 \r
@@ -755,7 +769,11 @@ cleanlib:
                                     break\r
                             else:\r
                                 break\r
-                        RespDict[Key] = Value\r
+\r
+                        if self._AutoGenObject.ToolChainFamily == 'GCC':\r
+                            RespDict[Key] = Value.replace('\\', '/')\r
+                        else:\r
+                            RespDict[Key] = Value\r
                         for Target in BuildTargets:\r
                             for i, SingleCommand in enumerate(BuildTargets[Target].Commands):\r
                                 if FlagDict[Flag]['Macro'] in SingleCommand:\r
@@ -784,6 +802,9 @@ cleanlib:
             if not self.FileDependency[File]:\r
                 self.FileDependency[File] = ['$(FORCE_REBUILD)']\r
                 continue\r
+\r
+            self._AutoGenObject.AutoGenDepSet |= set(self.FileDependency[File])\r
+\r
             # skip non-C files\r
             if File.Ext not in [".c", ".C"] or File.Name == "AutoGen.c":\r
                 continue\r
@@ -854,7 +875,8 @@ cleanlib:
     ## For creating makefile targets for dependent libraries\r
     def ProcessDependentLibrary(self):\r
         for LibraryAutoGen in self._AutoGenObject.LibraryAutoGenList:\r
-            self.LibraryBuildDirectoryList.append(self.PlaceMacro(LibraryAutoGen.BuildDir, self.Macros))\r
+            if not LibraryAutoGen.IsBinaryModule:\r
+                self.LibraryBuildDirectoryList.append(self.PlaceMacro(LibraryAutoGen.BuildDir, self.Macros))\r
 \r
     ## Return a list containing source file's dependencies\r
     #\r