]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/DataSection.py
BaseTools: Remove equality operator with None
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / DataSection.py
index ba3677ed89db77ad558166a24f1dac74eaaf78df..40e345eee77e92267015b2f0e467ddac22e46110 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # process data section generation\r
 #\r
-#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -48,11 +48,11 @@ class DataSection (DataSectionClassObject):
     #   @param  Dict        dictionary contains macro and its value\r
     #   @retval tuple       (Generated file name list, section alignment)\r
     #\r
-    def GenSection(self, OutputPath, ModuleName, SecNum, keyStringList, FfsFile = None, Dict = {}):\r
+    def GenSection(self, OutputPath, ModuleName, SecNum, keyStringList, FfsFile = None, Dict = {}, IsMakefile = False):\r
         #\r
         # Prepare the parameter of GenSection\r
         #\r
-        if FfsFile != None:\r
+        if FfsFile is not None:\r
             self.SectFileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.SectFileName)\r
             self.SectFileName = GenFdsGlobalVariable.MacroExtend(self.SectFileName, Dict, FfsFile.CurrentArch)\r
         else:\r
@@ -69,22 +69,30 @@ class DataSection (DataSectionClassObject):
         Filename = GenFdsGlobalVariable.MacroExtend(self.SectFileName)\r
         if Filename[(len(Filename)-4):] == '.efi':\r
             MapFile = Filename.replace('.efi', '.map')\r
-            if os.path.exists(MapFile):\r
-                CopyMapFile = os.path.join(OutputPath, ModuleName + '.map')\r
-                if not os.path.exists(CopyMapFile) or (os.path.getmtime(MapFile) > os.path.getmtime(CopyMapFile)):\r
-                    CopyLongFilePath(MapFile, CopyMapFile)\r
+            CopyMapFile = os.path.join(OutputPath, ModuleName + '.map')\r
+            if IsMakefile:\r
+                if GenFdsGlobalVariable.CopyList == []:\r
+                    GenFdsGlobalVariable.CopyList = [(MapFile, CopyMapFile)]\r
+                else:\r
+                    GenFdsGlobalVariable.CopyList.append((MapFile, CopyMapFile))\r
+            else:\r
+                if os.path.exists(MapFile):\r
+                    if not os.path.exists(CopyMapFile) or (os.path.getmtime(MapFile) > os.path.getmtime(CopyMapFile)):\r
+                        CopyLongFilePath(MapFile, CopyMapFile)\r
 \r
         #Get PE Section alignment when align is set to AUTO\r
         if self.Alignment == 'Auto' and self.SecType in ('TE', 'PE32'):\r
             ImageObj = PeImageClass (Filename)\r
             if ImageObj.SectionAlignment < 0x400:\r
                 self.Alignment = str (ImageObj.SectionAlignment)\r
-            else:\r
+            elif ImageObj.SectionAlignment < 0x100000:\r
                 self.Alignment = str (ImageObj.SectionAlignment / 0x400) + 'K'\r
+            else:\r
+                self.Alignment = str (ImageObj.SectionAlignment / 0x100000) + 'M'\r
 \r
         NoStrip = True\r
         if self.SecType in ('TE', 'PE32'):\r
-            if self.KeepReloc != None:\r
+            if self.KeepReloc is not None:\r
                 NoStrip = self.KeepReloc\r
 \r
         if not NoStrip:\r
@@ -94,24 +102,25 @@ class DataSection (DataSectionClassObject):
                 CopyLongFilePath(self.SectFileName, FileBeforeStrip)\r
             StrippedFile = os.path.join(OutputPath, ModuleName + '.stripped')\r
             GenFdsGlobalVariable.GenerateFirmwareImage(\r
-                                    StrippedFile,\r
-                                    [GenFdsGlobalVariable.MacroExtend(self.SectFileName, Dict)],\r
-                                    Strip=True\r
-                                    )\r
+                    StrippedFile,\r
+                    [GenFdsGlobalVariable.MacroExtend(self.SectFileName, Dict)],\r
+                    Strip=True,\r
+                    IsMakefile = IsMakefile\r
+                )\r
             self.SectFileName = StrippedFile\r
 \r
         if self.SecType == 'TE':\r
             TeFile = os.path.join( OutputPath, ModuleName + 'Te.raw')\r
             GenFdsGlobalVariable.GenerateFirmwareImage(\r
-                                    TeFile,\r
-                                    [GenFdsGlobalVariable.MacroExtend(self.SectFileName, Dict)],\r
-                                    Type='te'\r
-                                    )\r
+                    TeFile,\r
+                    [GenFdsGlobalVariable.MacroExtend(self.SectFileName, Dict)],\r
+                    Type='te',\r
+                    IsMakefile = IsMakefile\r
+                )\r
             self.SectFileName = TeFile\r
 \r
         OutputFile = os.path.join (OutputPath, ModuleName + 'SEC' + SecNum + Ffs.SectionSuffix.get(self.SecType))\r
         OutputFile = os.path.normpath(OutputFile)\r
-\r
-        GenFdsGlobalVariable.GenerateSection(OutputFile, [self.SectFileName], Section.Section.SectionType.get(self.SecType))\r
+        GenFdsGlobalVariable.GenerateSection(OutputFile, [self.SectFileName], Section.Section.SectionType.get(self.SecType), IsMakefile = IsMakefile)\r
         FileList = [OutputFile]\r
         return FileList, self.Alignment\r