cvs commit: hugs98/src MkInstal.in

Alastair Reid alastair@reid-consulting-uk.ltd.uk
04 Sep 2002 14:29:04 +0100


> I see this doesn't work: convert_libraries uses config.h and
> options.h, which are generated by configure.  But that makes the
> source distribution architecture-dependent, and hardwires the
> original setting of USE_DOUBLE_PRECISION, both undesirable.

I'd like to get future versions of Hugs to use float for Float and
double for Double - but that isn't going to affect this release.

> Only the hierarchical libraries are affected, specifically

>   Foreign.C.Error Foreign.C.Types Foreign.C.TypesISO Foreign.Storable

> It seems the #include is superfluous in the first one, but what to
> do about the other three?


My gut feeling is that the libraries will acquire more ifdefs as time
goes on so trying to eliminate the ones we have is only a short-term
solution.

This suggests that we should distribute the raw libraries with Hugs
and have the user run convert_libraries (probably invoked through the
Makefile which is probably a better way to run things anyway).  

The problem is that this won't work on Windows.  If they have a C
compiler, then they have cpp but they don't necessarily have a usable
shell.  

If we were starting from scratch, we could consider rewriting
convert_libraries as a Makefile something along the lines of:

  CVT_LIBRARIES = <huge list here>
  NOCVT_LIBRARIES = <and another long list>
  HSLIBS_LIBRARIES = <more still>


  libraries_cvt: $(CVT_LIBRARIES) 
  	helper_cvt ...
  libraries_nocvt: $(NOCVT_LIBRARIES)
  	helper_nocvt ...

with the idea that it would be easy enough to provide Win32-compatible
helper functions.

But I don't think we want to get into this now.


So I'm kind of stuck.  

--
Alastair