Mercurial > hg > graal-compiler
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 |