mirror of https://github.com/acidanthera/audk.git
BaseTools: Append FILE_GUID to BaseName.
This patch makes sure the EFI file in $(BIN_DIR) is unique. If there are modules with same BaseName, the FILE_GUID is appended. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yingke Liu <yingke.d.liu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17608 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
684fec3c96
commit
867d1cd4cd
|
@ -66,6 +66,8 @@
|
|||
# $(LIBS) Static library files of current module
|
||||
# $(<tool>_FLAGS) Tools flags of current module
|
||||
# $(MODULE_NAME) Current module name
|
||||
# $(MODULE_NAME_GUID) Current module name with module FILE_GUID if same $(MODULE_NAME) exists
|
||||
# in different modules, otherwise its value is same as $(MODULE_NAME)
|
||||
# $(MODULE_TYPE) Current module type
|
||||
# $(MODULE_GUID) Current module guid
|
||||
# $(ARCH) Architecture of current module
|
||||
|
@ -334,7 +336,7 @@
|
|||
<Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC, Command.ARMLINUXGCC>
|
||||
"$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)
|
||||
$(CP) ${dst} $(OUTPUT_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi
|
||||
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
||||
-$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR)
|
||||
<Command.GCC>
|
||||
|
@ -345,11 +347,11 @@
|
|||
#The below 2 lines are only needed for UNIXGCC tool chain, which genereates PE image directly
|
||||
#
|
||||
-$(OBJCOPY) $(OBJCOPY_ADDDEBUGFLAG) ${src}
|
||||
-$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR)
|
||||
-$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR)(+)$(MODULE_NAME_GUID).debug
|
||||
|
||||
"$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)
|
||||
$(CP) ${dst} $(OUTPUT_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi
|
||||
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
||||
|
||||
<Command.XCODE>
|
||||
|
@ -359,7 +361,7 @@
|
|||
-$(DSYMUTIL) ${src}
|
||||
"$(GENFW)" -e $(MODULE_TYPE) -o ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff $(GENFW_FLAGS)
|
||||
$(CP) ${dst} $(OUTPUT_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)
|
||||
$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi
|
||||
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
||||
|
||||
[Dependency-Expression-File]
|
||||
|
@ -516,7 +518,7 @@
|
|||
|
||||
<Command>
|
||||
"$(GENFW)" -o ${dst} -j $(MICROCODE_BINARY_FILES) $(GENFW_FLAGS)
|
||||
-$(CP) ${dst} $(BIN_DIR)
|
||||
-$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).bin
|
||||
|
||||
[EFI-Image-File]
|
||||
<InputFile>
|
||||
|
@ -542,7 +544,7 @@
|
|||
?.efi, ?.EFI, ?.Efi
|
||||
|
||||
<OutputFile>
|
||||
$(BIN_DIR)(+)$(MODULE_NAME).rom
|
||||
$(BIN_DIR)(+)$(MODULE_NAME_GUID).rom
|
||||
|
||||
<Command>
|
||||
$(OPTROM) -i $(PCI_DEVICE_ID) -f $(PCI_VENDOR_ID) -l $(PCI_CLASS_CODE) -r $(PCI_REVISION) -o $dst $(OPTROM_FLAGS) $src
|
||||
|
|
|
@ -17,6 +17,7 @@ import Common.LongFilePathOs as os
|
|||
import re
|
||||
import os.path as path
|
||||
import copy
|
||||
import uuid
|
||||
|
||||
import GenC
|
||||
import GenMake
|
||||
|
@ -2285,12 +2286,26 @@ class ModuleAutoGen(AutoGen):
|
|||
|
||||
return self._FixedAtBuildPcds
|
||||
|
||||
def _GetUniqueBaseName(self):
|
||||
BaseName = self.Name
|
||||
for Module in self.PlatformInfo.ModuleAutoGenList:
|
||||
if Module.MetaFile == self.MetaFile:
|
||||
continue
|
||||
if Module.Name == self.Name:
|
||||
EdkLogger.warn('build', 'Modules have same BaseName:\n %s\n %s' % (Module.MetaFile, self.MetaFile))
|
||||
if uuid.UUID(Module.Guid) == uuid.UUID(self.Guid):
|
||||
EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n'
|
||||
' %s\n %s' % (Module.MetaFile, self.MetaFile))
|
||||
BaseName = '%s_%s' % (self.Name, self.Guid)
|
||||
return BaseName
|
||||
|
||||
# Macros could be used in build_rule.txt (also Makefile)
|
||||
def _GetMacros(self):
|
||||
if self._Macro == None:
|
||||
self._Macro = sdict()
|
||||
self._Macro["WORKSPACE" ] = self.WorkspaceDir
|
||||
self._Macro["MODULE_NAME" ] = self.Name
|
||||
self._Macro["MODULE_NAME_GUID" ] = self._GetUniqueBaseName()
|
||||
self._Macro["MODULE_GUID" ] = self.Guid
|
||||
self._Macro["MODULE_VERSION" ] = self.Version
|
||||
self._Macro["MODULE_TYPE" ] = self.ModuleType
|
||||
|
|
|
@ -241,6 +241,7 @@ PLATFORM_OUTPUT_DIR = ${platform_output_directory}
|
|||
#
|
||||
MODULE_NAME = ${module_name}
|
||||
MODULE_GUID = ${module_guid}
|
||||
MODULE_NAME_GUID = ${module_name_guid}
|
||||
MODULE_VERSION = ${module_version}
|
||||
MODULE_TYPE = ${module_type}
|
||||
MODULE_FILE = ${module_file}
|
||||
|
@ -569,6 +570,7 @@ cleanlib:
|
|||
|
||||
"module_name" : self._AutoGenObject.Name,
|
||||
"module_guid" : self._AutoGenObject.Guid,
|
||||
"module_name_guid" : self._AutoGenObject._GetUniqueBaseName(),
|
||||
"module_version" : self._AutoGenObject.Version,
|
||||
"module_type" : self._AutoGenObject.ModuleType,
|
||||
"module_file" : self._AutoGenObject.MetaFile.Name,
|
||||
|
@ -846,6 +848,7 @@ PLATFORM_OUTPUT_DIR = ${platform_output_directory}
|
|||
#
|
||||
MODULE_NAME = ${module_name}
|
||||
MODULE_GUID = ${module_guid}
|
||||
MODULE_NAME_GUID = ${module_name_guid}
|
||||
MODULE_VERSION = ${module_version}
|
||||
MODULE_TYPE = ${module_type}
|
||||
MODULE_FILE = ${module_file}
|
||||
|
@ -970,6 +973,7 @@ ${BEGIN}\t-@${create_directory_command}\n${END}\
|
|||
|
||||
"module_name" : self._AutoGenObject.Name,
|
||||
"module_guid" : self._AutoGenObject.Guid,
|
||||
"module_name_guid" : self._AutoGenObject._GetUniqueBaseName(),
|
||||
"module_version" : self._AutoGenObject.Version,
|
||||
"module_type" : self._AutoGenObject.ModuleType,
|
||||
"module_file" : self._AutoGenObject.MetaFile,
|
||||
|
|
Loading…
Reference in New Issue