diff --git a/BaseTools/Source/Python/GenFds/EfiSection.py b/BaseTools/Source/Python/GenFds/EfiSection.py index 7e6c88a059..5bb1ae6f66 100644 --- a/BaseTools/Source/Python/GenFds/EfiSection.py +++ b/BaseTools/Source/Python/GenFds/EfiSection.py @@ -1,7 +1,7 @@ ## @file # process rule section generation # -# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -64,6 +64,7 @@ class EfiSection (EfiSectionClassObject): Filename = FfsInf.__ExtendMacro__(self.FileName) BuildNum = FfsInf.__ExtendMacro__(self.BuildNum) StringData = FfsInf.__ExtendMacro__(self.StringData) + ModuleNameStr = FfsInf.__ExtendMacro__('$(MODULE_NAME)') NoStrip = True if FfsInf.ModuleType in ('SEC', 'PEI_CORE', 'PEIM') and SectionType in ('TE', 'PE32'): if FfsInf.KeepReloc is not None: @@ -91,8 +92,9 @@ class EfiSection (EfiSectionClassObject): FileList.append(Filename) elif os.path.exists(Filename): FileList.append(Filename) - elif '.depex' in FfsInf.FinalTargetSuffixMap or FfsInf.Depex: - if IsMakefile: + elif IsMakefile: + SuffixMap = FfsInf.GetFinalTargetSuffixMap() + if '.depex' in SuffixMap: FileList.append(Filename) else: FileList, IsSect = Section.Section.GetFileList(FfsInf, self.FileType, self.FileExtension, Dict, IsMakefile=IsMakefile) @@ -179,6 +181,8 @@ class EfiSection (EfiSectionClassObject): if InfOverrideUiString: Num = SecNum + if IsMakefile and StringData == ModuleNameStr: + StringData = "$(MODULE_NAME)" OutputFile = os.path.join( OutputPath, ModuleName + 'SEC' + str(Num) + Ffs.SectionSuffix.get(SectionType)) GenFdsGlobalVariable.GenerateSection(OutputFile, [], 'EFI_SECTION_USER_INTERFACE', Ui=StringData, IsMakefile=IsMakefile) @@ -192,6 +196,8 @@ class EfiSection (EfiSectionClassObject): f = open(File, 'r') UiString = f.read() f.close() + if IsMakefile and UiString == ModuleNameStr: + UiString = "$(MODULE_NAME)" GenFdsGlobalVariable.GenerateSection(OutputFile, [], 'EFI_SECTION_USER_INTERFACE', Ui=UiString, IsMakefile=IsMakefile) OutputFileList.append(OutputFile) @@ -208,6 +214,8 @@ class EfiSection (EfiSectionClassObject): EdkLogger.error("GenFds", GENFDS_ERROR, "File: %s miss UI Section value" %InfFileName) Num = SecNum + if IsMakefile and StringData == ModuleNameStr: + StringData = "$(MODULE_NAME)" OutputFile = os.path.join( OutputPath, ModuleName + 'SEC' + str(Num) + Ffs.SectionSuffix.get(SectionType)) GenFdsGlobalVariable.GenerateSection(OutputFile, [], 'EFI_SECTION_USER_INTERFACE', Ui=StringData, IsMakefile=IsMakefile) diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py index 0dbffffc9a..5364569b96 100644 --- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py +++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py @@ -502,9 +502,11 @@ class FfsInfStatement(FfsInfStatementClassObject): # For the rule only has simpleFile # MakefilePath = None + if self.IsBinaryModule: + IsMakefile = False if IsMakefile: MakefilePath = self.InfFileName, Arch - if isinstance (Rule, RuleSimpleFile.RuleSimpleFile) : + if isinstance (Rule, RuleSimpleFile.RuleSimpleFile): SectionOutputList = self.__GenSimpleFileSection__(Rule, IsMakefile=IsMakefile) FfsOutput = self.__GenSimpleFileFfs__(Rule, SectionOutputList, MakefilePath=MakefilePath) return FfsOutput diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py index fcb191981c..2f9d58f6bf 100644 --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py @@ -464,9 +464,11 @@ class GenFdsGlobalVariable: if Ui not in [None, '']: #Cmd += ["-n", '"' + Ui + '"'] if IsMakefile: - Cmd += ["-n", "$(MODULE_NAME)"] + if Ui == "$(MODULE_NAME)": + Cmd += ['-n', Ui] + else: + Cmd += ["-n", '"' + Ui + '"'] Cmd += ["-o", Output] - #SaveFileOnChange(CommandFile, ' '.join(Cmd), False) if ' '.join(Cmd).strip() not in GenFdsGlobalVariable.SecCmdList: GenFdsGlobalVariable.SecCmdList.append(' '.join(Cmd).strip()) else: diff --git a/BaseTools/Source/Python/GenFds/GuidSection.py b/BaseTools/Source/Python/GenFds/GuidSection.py index 8362073f97..08665a3d4d 100644 --- a/BaseTools/Source/Python/GenFds/GuidSection.py +++ b/BaseTools/Source/Python/GenFds/GuidSection.py @@ -1,7 +1,7 @@ ## @file # process GUIDed section generation # -# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -272,6 +272,8 @@ class GuidSection(GuidSectionClassObject) : self.Alignment = None self.IncludeFvSection = False self.ProcessRequired = "TRUE" + if IsMakefile and self.Alignment.strip() == '0': + self.Alignment = '1' return OutputFileList, self.Alignment diff --git a/BaseTools/Source/Python/Trim/Trim.py b/BaseTools/Source/Python/Trim/Trim.py index d07edbd5d8..3eb7fa3920 100644 --- a/BaseTools/Source/Python/Trim/Trim.py +++ b/BaseTools/Source/Python/Trim/Trim.py @@ -1,7 +1,7 @@ ## @file # Trim files preprocessed by compiler # -# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -437,7 +437,7 @@ def GenerateVfrBinSec(ModuleName, DebugDir, OutputFile): for CurrentDir, Dirs, Files in os.walk(DebugDir): for FileName in Files: Name, Ext = os.path.splitext(FileName) - if Ext == '.lst': + if Ext == '.c' and Name != 'AutoGen': VfrNameList.append (Name + 'Bin') VfrNameList.append (ModuleName + 'Strings')