summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--IntelFsp2Pkg/Tools/GenCfgOpt.py60
1 files changed, 42 insertions, 18 deletions
diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py b/IntelFsp2Pkg/Tools/GenCfgOpt.py
index bcced590ce..af7e14a10a 100644
--- a/IntelFsp2Pkg/Tools/GenCfgOpt.py
+++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py
@@ -810,6 +810,17 @@ EndList
SubItem['value'] = valuestr
return Error
+ def NoDscFileChange (self, OutPutFile):
+ NoFileChange = True
+ if not os.path.exists(OutPutFile):
+ NoFileChange = False
+ else:
+ DscTime = os.path.getmtime(self._DscFile)
+ OutputTime = os.path.getmtime(OutPutFile)
+ if DscTime > OutputTime:
+ NoFileChange = False
+ return NoFileChange
+
def CreateSplitUpdTxt (self, UpdTxtFile):
GuidList = ['FSP_T_UPD_TOOL_GUID','FSP_M_UPD_TOOL_GUID','FSP_S_UPD_TOOL_GUID']
SignatureList = ['0x545F', '0x4D5F','0x535F'] # _T, _M, and _S signature for FSPT, FSPM, FSPS
@@ -823,16 +834,7 @@ EndList
if UpdTxtFile == '':
UpdTxtFile = os.path.join(FvDir, self._MacroDict[GuidList[Index]] + '.txt')
- ReCreate = False
- if not os.path.exists(UpdTxtFile):
- ReCreate = True
- else:
- DscTime = os.path.getmtime(self._DscFile)
- TxtTime = os.path.getmtime(UpdTxtFile)
- if DscTime > TxtTime:
- ReCreate = True
-
- if not ReCreate:
+ if (self.NoDscFileChange (UpdTxtFile)):
# DSC has not been modified yet
# So don't have to re-generate other files
self.Error = 'No DSC file change, skip to create UPD TXT file'
@@ -1056,7 +1058,11 @@ EndList
HeaderFile = os.path.join(FvDir, HeaderFileName)
# Check if header needs to be recreated
- ReCreate = False
+ if (self.NoDscFileChange (HeaderFile)):
+ # DSC has not been modified yet
+ # So don't have to re-generate other files
+ self.Error = 'No DSC file change, skip to create UPD header file'
+ return 256
TxtBody = []
for Item in self._CfgItemList:
@@ -1382,6 +1388,12 @@ EndList
self.Error = "BSF output file '%s' is invalid" % BsfFile
return 1
+ if (self.NoDscFileChange (BsfFile)):
+ # DSC has not been modified yet
+ # So don't have to re-generate other files
+ self.Error = 'No DSC file change, skip to create UPD BSF file'
+ return 256
+
Error = 0
OptionDict = {}
BsfFd = open(BsfFile, "w")
@@ -1467,7 +1479,7 @@ EndList
def Usage():
- print ("GenCfgOpt Version 0.55")
+ print ("GenCfgOpt Version 0.56")
print ("Usage:")
print (" GenCfgOpt UPDTXT PlatformDscFile BuildFvDir [-D Macros]")
print (" GenCfgOpt HEADER PlatformDscFile BuildFvDir InputHFile [-D Macros]")
@@ -1529,13 +1541,25 @@ def Main():
print ("ERROR: %s !" % (GenCfgOpt.Error))
return Ret
elif sys.argv[1] == "HEADER":
- if GenCfgOpt.CreateHeaderFile(OutFile) != 0:
- print ("ERROR: %s !" % GenCfgOpt.Error)
- return 8
+ Ret = GenCfgOpt.CreateHeaderFile(OutFile)
+ if Ret != 0:
+ # No change is detected
+ if Ret == 256:
+ print ("INFO: %s !" % (GenCfgOpt.Error))
+ else :
+ print ("ERROR: %s !" % (GenCfgOpt.Error))
+ return 8
+ return Ret
elif sys.argv[1] == "GENBSF":
- if GenCfgOpt.GenerateBsfFile(OutFile) != 0:
- print ("ERROR: %s !" % GenCfgOpt.Error)
- return 9
+ Ret = GenCfgOpt.GenerateBsfFile(OutFile)
+ if Ret != 0:
+ # No change is detected
+ if Ret == 256:
+ print ("INFO: %s !" % (GenCfgOpt.Error))
+ else :
+ print ("ERROR: %s !" % (GenCfgOpt.Error))
+ return 9
+ return Ret
else:
if argc < 5:
Usage()