ghc-cvs-snapshot with wxHaskell

Georg Martius mai99dgf at
Thu Feb 17 07:02:40 EST 2005


Patrick and I found some answers to the questions/problems we encountered.
Finally got the thing to work. (patches appended)
Versions: ghc-6.4.20050215

1. dep-files

the new ghc produces a different dependency file. It includes also dependencies for imported modules. i.e.
> module A import B
it generates:
> B.o : B.hs
> A.o : A.hs
> A.o : B.hi
where as the old ghc omitted the first line, which is not necessary IMO.
The problem with the wx-Makefile is now that the .o and .hi files should reside in another directory namely out/...
The current approach is to use "sed". However on the new depfiles it generates rules, which are not correct and which lead to the problems Patrick experiences.
I have a possible fix:
     add -odir out/... to the call of ghc -M. This produces correct paths for the .o files.
     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".

  Now the dependency stuff seams to work fine. No double compilation anymore.

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".

3. Package stuff
I included package files in the new style to the configure script.
Problem: the environment variable are not substituted any longer by ghc-pkg ?
My hack: let configure sustitude the variable, i.e.
> wxhlibdir="${libdir}"
> import-dirs: ${wxhlibdir}/imports
instead of
> import-dirs: \${wxhlibdir}/imports

This might cause problems with the rpm install stuff.

Additionally, I had problems with the license field. It seams to be a choice rather a text-field. I took BSD3 since it worked.
@Simon: How can I add a custom license like "wxWindows"
@Daan: Please complete the package files. There are a couple of new entries. Also some exports from wxcore might be better in the hidden-modules field. Honestly I have no idea where it is for.
A had to add a
> extra-libs : wxc-gtk2.4.2-0.8
to wxcore package info. This seams not quite portable :-).
@Daan: please replace this by a proper variable

4. Module name clash
ghc complained:
     Module `Set' is a member of package data-1.0.
     To compile this module, please use -ignore-package data-1.0.

I love ghc's error messages! Great job Simon!

@Daan: the configure script uses /usr as a default prefix. I think /usr/local is more standard here. Additionally the modules are installed to <prefix>/lib/imports. I would rather like <prefix>/lib/wxHaskell/imports.
How do we make sure that nobody else wants to use the path lib/imports?
This is a fairly common, or at least non-specific, directory name in my eyes.


On Thu, 17 Feb 2005 00:44:23 +0100, Patrick Scheibe <mai99dnn at> wrote:

> On Wednesday 16 February 2005 16:48, you wrote:
>> Hi Simon and Daan.
>> I took the stable ghc source from yesterday, 15th of february.
>> I think Simon fixed the creation of .depfiles problem, am I right?
>> Touching of these files is unnecessary now.
>> In earlier versions the ghc seems to make the right thing when you call
>> ghc -M ./dir1/dir2/src/Moduldir/Modul.hs
>> Now there are errors when you call it from outside the modulpath:
>> > Could not find module `ParseEiffel':
>> >   use -v to see a list of the files searched for
>> >   (imported from wxdirect/src/CompileDefs.hs)
>> I fixed this with giving the -i./dir1/dir2/src option to every call.
>> @Simon: is this a feature? Do I make something strange with this fix?
>> Now the compilation runs fine (:-) but when I do a make install, the
>> makefile begins to compile again!?? After a while of compilation it breaks
>> with a "no rule to make.." error. How can ghc forget the compiled stuff?
>> The objects are definitely there, so there is no need to recompile WX.o,
>> ...
>> @Daan: I tried to delete the dependency wx from the install rule of the
>> makefile but that
>> doesn't matter. I would like to install it by myself to see if the lib is
>> working. Do you have a quick bad fix of this?
>> Cheers
>> Patrick


---- Georg Martius,  Tel: (+49 34297) 89434 ----
------- ---------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure.diff
Type: application/octet-stream
Size: 2672 bytes
Desc: not available
Url :
-------------- next part --------------
A non-text attachment was scrubbed...
Name: makefile.diff
Type: application/octet-stream
Size: 672 bytes
Desc: not available
Url :
-------------- next part --------------
A non-text attachment was scrubbed...
Name: makefile.lib.diff
Type: application/octet-stream
Size: 972 bytes
Desc: not available
Url :

More information about the Glasgow-haskell-users mailing list