building, rebuilding, problems, ALUT,..

Ian Lynagh igloo at
Wed Apr 18 09:13:18 EDT 2007

On Tue, Apr 17, 2007 at 12:10:48PM +0100, Claus Reinke wrote:
> after a long while, i'm trying to update and rebuild my local ghc HEAD 
> (windows).
> as usual, there are problems:
> 2. filepath has been added sometime after my last attempt

Good point - boot now checks that all the corelibs are here.

> 3. windows configure has acquired yet another extra option, it seems. why 
> can't
>    i just run ./configure and have it find the right things in the PATH, as 
>    on other
>    platforms? the only supported build is mingw, so it should look for 
>    mingw versions,
>    and issue a warning if cygwin versions are found instead (a warning 
>    because some
>    people do want cygwin builds).

A patch to simplify the Windows story would be great, but it's fairly
low priority for me as (a) it does actually work at the moment
(b) removing one or two configure flags doesn't really make much
difference; copy and pasting 3 or 4 is just as easy as 1 or 2, so you
really do have to solve all the issues to get a payoff.

> 4. make falls over in ALUT (i don't have OpenAL installed, so neither that 
> nor ALUT
>    should be built). last part of log appended below.

Right, I've been fixing up the various exciting new failure modes that
have popped up now that we use Cabal to build the libraries. However, I
think that trying to detect that this latest one is going to happen
before configure runs is one step too far.

There are 9 packages that depend on other extralibs:

ALUT (OpenGL, OpenAL)
HGL (X11) (should sometimes depend on Win32 instead?)
OpenAL (OpenGL)
cgi (network, parsec, mtl, xhtml)
fgl (mtl)
network (parsec)
regex-compat (regex-base, regex-posix)
regex-posix (regex-base)

but I think only the GL/AL family, HGL and X11 can decide that they are
unbuildable, so I think that only these can fail in this way:

ALUT (OpenGL, OpenAL)
HGL (X11) (should sometimes depend on Win32 instead?)
OpenAL (OpenGL)

I see 3 possible solutions:

1) If Cabal find the dependencies aren't satisfied then it puts
   "buildable: False" somewhere and exits successfully. I quite like
   this from a consistency point of view (it's what happens when
   ./configure decides that the package is unbuildable).

2) We remove ALUT, GLUT, HGL, OpenAL (and OpenGL too for consistency?)
   from extralibs. I think these are probably among the least use
   extralibs anyway.

3) We declare that if you put unbuildable extralibs in your GHC tree
   then the build might break.

My order of preference is:

    1) (done by someone else)
    2) (also removing OpenGL)
    2) (leaving OpenGL as an extralib)
    1) (done by me)

Anyone else got an opinion (or a Cabal patch?  :-)  )


More information about the cabal-devel mailing list