
'ghc -v' on 5.00 and 5.02 (and later versions) will tell you where the package config file is, and the rest of the info can be extracted from that.
Useful to know. However, the value of $libdir is not defined in the package config file, and that is the information I was grepping for in the driver script...
You can assume that package.conf is in $libdir (that's currently how we find it in the first place - $libdir is the only bit of information about the host system that GHC knows when it starts up).
Actually, `ghc -v' (with 5.02.2) seems to dump the entire package config to stdout with $libdir expanded out. This might be sufficient for me, but I need to know whether that behaviour is consistent across all versions of ghc >= 5.00?
We only started doing this in 5.02 I think, and anyway I'm tempted to move it out of the default -v output and into -v3 or maybe -v4.
The format of the interface files is irrelevant to hmake - it doesn't read them, it only checks for their existence. The basic requirement for hmake is that every module mentioned in an import must have a referent. The referent can be a source module (.hs, .lhs, .ly, .gc, etc), or if the sources are not available (e.g. Prelude, or a package module) then an interface (.hi file) will do. Source modules are scanned for further dependencies, but interface-only modules are assumed to be leaves of the graph.
Ok, gotcha. Cheers, Simon