+\r
+ //\r
+ // Dependency check\r
+ // \r
+ private boolean isUptodate() {\r
+ long srcTimeStamp = 0;\r
+ String srcName = "";\r
+ long dstTimeStamp = 0;\r
+ String dstName = "";\r
+ long timeStamp = 0;\r
+\r
+ if (!flashDefFile.isEmpty()) {\r
+ srcName = flashDefFile.getValue();\r
+ timeStamp = new File(srcName).lastModified();\r
+ if (timeStamp > srcTimeStamp) {\r
+ srcTimeStamp = timeStamp;\r
+ }\r
+ }\r
+\r
+ if (!mciFile.isEmpty()) {\r
+ srcName = mciFile.getValue();\r
+ timeStamp = new File(srcName).lastModified();\r
+ if (timeStamp > srcTimeStamp) {\r
+ srcTimeStamp = timeStamp;\r
+ }\r
+ }\r
+\r
+ if (!fdImage.isEmpty()) {\r
+ srcName = fdImage.getValue();\r
+ timeStamp = new File(srcName).lastModified();\r
+ if (timeStamp > srcTimeStamp) {\r
+ srcTimeStamp = timeStamp;\r
+ }\r
+ }\r
+\r
+ if (inStrFile.length() != 0) {\r
+ srcName = inStrFile;\r
+ timeStamp = new File(srcName).lastModified();\r
+ if (timeStamp > srcTimeStamp) {\r
+ srcTimeStamp = timeStamp;\r
+ }\r
+ }\r
+\r
+ if (!mciFileArray.isEmpty()) {\r
+ for (int i = 0; i < mciFileArray.nameList.size(); ++i) {\r
+ srcName += mciFileArray.nameList.get(i) + " ";\r
+ timeStamp = new File(mciFileArray.nameList.get(i)).lastModified();\r
+ if (timeStamp > srcTimeStamp) {\r
+ srcTimeStamp = timeStamp;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (!headerFile.isEmpty()) {\r
+ dstName = headerFile.getValue();\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ if (!imageOutFile.isEmpty()) {\r
+ dstName = imageOutFile.getValue();\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ if (!mcoFile.isEmpty()) {\r
+ dstName = mcoFile.getValue();\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ if (!dscFile.isEmpty()) {\r
+ dstName = dscFile.getValue();\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ if (!asmIncFile.isEmpty()) {\r
+ dstName = asmIncFile.getValue();\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ if (outStrFile.length() != 0) {\r
+ dstName = outStrFile;\r
+ File dstFile = new File(dstName);\r
+ if (!dstFile.isAbsolute()) {\r
+ dstName = outputDir + File.separator + dstName;\r
+ dstFile = new File(dstName);\r
+ }\r
+\r
+ if (srcTimeStamp > dstFile.lastModified()) {\r
+ EdkLog.log(this, EdkLog.EDK_VERBOSE, srcName + " has been changed since last build!");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r