comparison src/share/tools/MakeDeps/Database.java @ 213:8b48a7bd2bf7

6697238: missing dependencies for precompiled headers with platform dependent includes Reviewed-by: kvn
author never
date Thu, 12 Jun 2008 16:13:01 -0700
parents a61af66fc99e
children 98cb887364d3
comparison
equal deleted inserted replaced
212:99bf1609e2a5 213:8b48a7bd2bf7
34 // recorded if the platform file was seen. 34 // recorded if the platform file was seen.
35 private FileList platformFiles; 35 private FileList platformFiles;
36 private FileList outerFiles; 36 private FileList outerFiles;
37 private FileList indivIncludes; 37 private FileList indivIncludes;
38 private FileList grandInclude; // the results for the grand include file 38 private FileList grandInclude; // the results for the grand include file
39 private HashMap<String,String> platformDepFiles;
39 private long threshold; 40 private long threshold;
40 private int nOuterFiles; 41 private int nOuterFiles;
41 private int nPrecompiledFiles; 42 private int nPrecompiledFiles;
42 private boolean missingOk; 43 private boolean missingOk;
43 private Platform plat; 44 private Platform plat;
55 allFiles = new FileList("allFiles", plat); 56 allFiles = new FileList("allFiles", plat);
56 platformFiles = new FileList("platformFiles", plat); 57 platformFiles = new FileList("platformFiles", plat);
57 outerFiles = new FileList("outerFiles", plat); 58 outerFiles = new FileList("outerFiles", plat);
58 indivIncludes = new FileList("IndivIncludes", plat); 59 indivIncludes = new FileList("IndivIncludes", plat);
59 grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat); 60 grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat);
61 platformDepFiles = new HashMap<String,String>();
60 62
61 threshold = t; 63 threshold = t;
62 nOuterFiles = 0; 64 nOuterFiles = 0;
63 nPrecompiledFiles = 0; 65 nPrecompiledFiles = 0;
64 missingOk = false; 66 missingOk = false;
207 } 209 }
208 210
209 FileList p = allFiles.listForFile(includer); 211 FileList p = allFiles.listForFile(includer);
210 p.setPlatformDependentInclude(pdName.dirPreStemSuff()); 212 p.setPlatformDependentInclude(pdName.dirPreStemSuff());
211 213
214 // Record the implicit include of this file so that the
215 // dependencies for precompiled headers can mention it.
216 platformDepFiles.put(newIncluder, includer);
217
212 // Add an implicit dependency on platform 218 // Add an implicit dependency on platform
213 // specific file for the generic file 219 // specific file for the generic file
214 220
215 p = platformFiles.listForFile(newIncluder); 221 p = platformFiles.listForFile(newIncluder);
216 222
406 // write Precompiled_Files = ... 412 // write Precompiled_Files = ...
407 gd.println("Precompiled_Files = \\"); 413 gd.println("Precompiled_Files = \\");
408 for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) { 414 for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) {
409 FileList list = (FileList) iter.next(); 415 FileList list = (FileList) iter.next();
410 gd.println(list.getName() + " \\"); 416 gd.println(list.getName() + " \\");
417 String platformDep = platformDepFiles.get(list.getName());
418 if (platformDep != null) {
419 // make sure changes to the platform dependent file will
420 // cause regeneration of the pch file.
421 gd.println(platformDep + " \\");
422 }
411 } 423 }
412 gd.println(); 424 gd.println();
413 gd.println(); 425 gd.println();
414 } 426 }
415 427