summaryrefslogtreecommitdiff
path: root/Tools/Java/Source/FrameworkTasks/org
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-15 01:59:23 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-15 01:59:23 +0000
commita387de3b3233f1dad9b53455958f38a0881acd07 (patch)
tree29a8961c98dc69d8989a988058d1cb267b6e5943 /Tools/Java/Source/FrameworkTasks/org
parentb991a45139b0b5a0b5082b63fa27cf8ef8e6fd1b (diff)
downloadedk2-platforms-a387de3b3233f1dad9b53455958f38a0881acd07.tar.xz
Fixed EDKT498(enchance makedep tool to support asm file), EDKT500(dep file needs to be created for uni file) and tracker ID 454(report real driver entrypoint address through debug output) in PVCS.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2246 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools/Java/Source/FrameworkTasks/org')
-rw-r--r--Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java38
1 files changed, 31 insertions, 7 deletions
diff --git a/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java b/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java
index 20cf44b95d..f1fb824336 100644
--- a/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java
+++ b/Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java
@@ -14,9 +14,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
package org.tianocore.framework.tasks;
+import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
@@ -44,6 +46,7 @@ public class MakeDeps extends Task {
//
// private members, use set/get to access them
//
+ private String targetFile = "";
private String depsFilePath = "";
private IncludePath includePathList = new IncludePath();
private Input inputFileList = new Input();
@@ -54,7 +57,7 @@ public class MakeDeps extends Task {
//
// regular expression for "#include ..." directive
//
- private static final Pattern incPattern = Pattern.compile("[\n\r \t]*#[ \t]*include[ \t\"<]+([^\n\r\"<>]+)");
+ private static final Pattern incPattern = Pattern.compile("[\n\r]+[ \t#]*[ \t]*include[ \t]+[\"<]*([^\n\r\"<>]+)[>\"]*[\n\r]+");
public MakeDeps() {
@@ -70,6 +73,13 @@ public class MakeDeps extends Task {
**/
public void execute() throws BuildException {
//
+ // if target file is specified and it hasn't been generated, don't generate
+ // dep file
+ //
+ if (targetFile.length() != 0 && (new File(targetFile)).exists() == false) {
+ return;
+ }
+ //
// check if the dependency list file is uptodate or not
//
if (isUptodate()) {
@@ -124,6 +134,14 @@ public class MakeDeps extends Task {
FileTimeStamp.update(depsFilePath, depsFile.lastModified());
}
+ public void setTargetFile(String name) {
+ targetFile = name;
+ }
+
+ public String getTargetFile() {
+ return targetFile;
+ }
+
/**
Set method for "DepsFile" attribute
@@ -280,24 +298,30 @@ public class MakeDeps extends Task {
if (!srcFile.exists()) {
continue;
}
-
//
// try cache first
//
Set<String> incFiles = includesCache.get(src);
if (incFiles == null) {
incFiles = new HashSet<String>();
- FileReader fileReader = null;
- BufferedReader bufReader = null;
+ FileInputStream fileReader = null;
+ BufferedInputStream bufReader = null;
String fileContent = "";
int fileLength = (int)srcFile.length();
try {
- fileReader = new FileReader(srcFile);
- bufReader = new BufferedReader(fileReader);
- char[] buf = new char[fileLength];
+ fileReader = new FileInputStream(srcFile);
+ bufReader = new BufferedInputStream(fileReader);
+ byte[] buf = new byte[fileLength];
bufReader.read(buf, 0, fileLength);
+ //
+ // check if the file is utf-16 encoded
+ //
+ if (buf[0] == (byte)0xff || buf[0] == (byte)0xfe) {
+ fileContent = new String(buf, "UTF-16");
+ buf = fileContent.getBytes("UTF-8");
+ }
fileContent = new String(buf);
} catch (IOException e) {
throw new BuildException(e.getMessage());