ghc-cvs-snapshot with wxHaskell

Georg Martius mai99dgf at studserv.uni-leipzig.de
Thu Feb 17 09:49:04 EST 2005


On Thu, 17 Feb 2005 14:48:11 +0100, Daan Leijen <daan at cs.uu.nl> wrote:

> Georg Martius wrote:
>> Hi,
>>
>> Patrick and I found some answers to the questions/problems we encountered.
>> Finally got the thing to work. (patches appended)
>
> Great!
>
>> I have a possible fix:
>>     add -odir out/... to the call of ghc -M. This produces correct paths
>> for the .o files.
>
> Ok, this makes sense and, importantly, it also works for older ghc's
>
>>     use "grep" to filter module A
>>     Problem: the .hi files have still the source path.
>>     Question @Daan: Why do they have to by in out/...? It seams to
>> complicate the thing.
>>     Solution: "sed"
>>  I fixed that in "makefile.lib".
>
> I do not understand what you are saying here. Can you explain in more
> detail? What is the issue with .hi files?
example:
  src/A.hs (import src/B.hs with "import B")
ghc -M -odir out
depfile:
  out/B.o: src/B.hs -- this line is new, as said before
  out/A.o: src/A.hs
  out/A.o: src/B.hi -- this line referes to a .hi, which is not there, it is under out/B.hs

The original code in the makefile.lib replaced
	(basename input.hs) with (basename output.o)
and
	*.hi with *.o
which is a quite weird approach to the problem. I'am not sure but I think the new approach is better:
  	let the .o files be correct through the -odir flag
	replace (dir input)/FILE.hi with (dir output)/$FILE.o
However it is just a guess. The thing is that we have no rules for *.hs to *.hi. If so it would be easier.
A more general question: We doesn't -ohi dir/filename.hi is not reflected in the dependencies.
I tried:
> ghc -M -odir out -ohi out/A.hi A.hs
but nothing changed.

>> 2. correct import-search path
>> the make file calls ghc from the wxHaskell-root. Therefore
>> -icurrent/source/path has to be included. I fixed that in "makefile".
>
> This is weird. It works with ghc-6.2.2, so there should not be an
> extra include path. All files are referenced by absolute paths
> everywhere! (that's why I use sed in the first place to process .d files)
Okay it was my fault.
If all dependencies are resolved correctly then it works fine, also with ghc-6.4. Sorry!
The -i$({WXD|WXCORW|...}-SRCDIR) flags can be removed from the makefile.diff.

Cheers,
  Georg


More information about the Glasgow-haskell-users mailing list