hotspot/src/share/tools/MakeDeps/Database.java
Print this page
rev 611 : Merge
*** 34,43 ****
--- 34,44 ----
// recorded if the platform file was seen.
private FileList platformFiles;
private FileList outerFiles;
private FileList indivIncludes;
private FileList grandInclude; // the results for the grand include file
+ private HashMap<String,String> platformDepFiles;
private long threshold;
private int nOuterFiles;
private int nPrecompiledFiles;
private boolean missingOk;
private Platform plat;
*** 55,64 ****
--- 56,66 ----
allFiles = new FileList("allFiles", plat);
platformFiles = new FileList("platformFiles", plat);
outerFiles = new FileList("outerFiles", plat);
indivIncludes = new FileList("IndivIncludes", plat);
grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat);
+ platformDepFiles = new HashMap<String,String>();
threshold = t;
nOuterFiles = 0;
nPrecompiledFiles = 0;
missingOk = false;
*** 207,216 ****
--- 209,222 ----
}
FileList p = allFiles.listForFile(includer);
p.setPlatformDependentInclude(pdName.dirPreStemSuff());
+ // Record the implicit include of this file so that the
+ // dependencies for precompiled headers can mention it.
+ platformDepFiles.put(newIncluder, includer);
+
// Add an implicit dependency on platform
// specific file for the generic file
p = platformFiles.listForFile(newIncluder);
*** 406,415 ****
--- 412,427 ----
// write Precompiled_Files = ...
gd.println("Precompiled_Files = \\");
for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) {
FileList list = (FileList) iter.next();
gd.println(list.getName() + " \\");
+ String platformDep = platformDepFiles.get(list.getName());
+ if (platformDep != null) {
+ // make sure changes to the platform dependent file will
+ // cause regeneration of the pch file.
+ gd.println(platformDep + " \\");
+ }
}
gd.println();
gd.println();
}