## @file\r
# process compress 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
# @param Dict dictionary contains macro and its value\r
# @retval tuple (Generated file name, section alignment)\r
#\r
- def GenSection(self, OutputPath, ModuleName, SecNum, KeyStringList, FfsInf = None, Dict = {}):\r
+ def GenSection(self, OutputPath, ModuleName, SecNum, KeyStringList, FfsInf = None, Dict = {}, IsMakefile = False):\r
\r
- if FfsInf != None:\r
+ if FfsInf is not None:\r
self.CompType = FfsInf.__ExtendMacro__(self.CompType)\r
self.Alignment = FfsInf.__ExtendMacro__(self.Alignment)\r
\r
SectFiles = tuple()\r
+ SectAlign = []\r
Index = 0\r
+ MaxAlign = None\r
for Sect in self.SectionList:\r
Index = Index + 1\r
SecIndex = '%s.%d' %(SecNum, Index)\r
- ReturnSectList, AlignValue = Sect.GenSection(OutputPath, ModuleName, SecIndex, KeyStringList, FfsInf, Dict)\r
+ ReturnSectList, AlignValue = Sect.GenSection(OutputPath, ModuleName, SecIndex, KeyStringList, FfsInf, Dict, IsMakefile=IsMakefile)\r
+ if AlignValue is not None:\r
+ if MaxAlign is None:\r
+ MaxAlign = AlignValue\r
+ if GenFdsGlobalVariable.GetAlignment (AlignValue) > GenFdsGlobalVariable.GetAlignment (MaxAlign):\r
+ MaxAlign = AlignValue\r
if ReturnSectList != []:\r
+ if AlignValue is None:\r
+ AlignValue = "1"\r
for FileData in ReturnSectList:\r
- SectFiles += (FileData,)\r
-\r
+ SectFiles += (FileData,)\r
+ SectAlign.append(AlignValue)\r
\r
OutputFile = OutputPath + \\r
os.sep + \\r
SecNum + \\r
Ffs.SectionSuffix['COMPRESS']\r
OutputFile = os.path.normpath(OutputFile)\r
+ DummyFile = OutputFile + '.dummy'\r
+ GenFdsGlobalVariable.GenerateSection(DummyFile, SectFiles, InputAlign=SectAlign, IsMakefile=IsMakefile)\r
\r
- GenFdsGlobalVariable.GenerateSection(OutputFile, SectFiles, Section.Section.SectionType['COMPRESS'],\r
- CompressionType=self.CompTypeDict[self.CompType])\r
+ GenFdsGlobalVariable.GenerateSection(OutputFile, [DummyFile], Section.Section.SectionType['COMPRESS'],\r
+ CompressionType=self.CompTypeDict[self.CompType], IsMakefile=IsMakefile)\r
OutputFileList = []\r
OutputFileList.append(OutputFile)\r
return OutputFileList, self.Alignment\r