
(this is an fptools/library infrastructure question)
i was just trying to compile my monad library from scratch, and the configuration check the makefile does at the beginning (i don't understand how it works) failed complaining that happy 1.14 is needed to compile ghc (and i have 1.13). (incidently happy 1.14 is not released yet) now, i am not trying to compile ghc (just my library), but i am not sure how to fix the makefiles as i don't really understand the fptools build system. do you have any pointers, tips, tricks hints etc?
The configure script will only complain about the lack of Happy if: - the GHC sources are in the tree (ie. fptools/ghc exists), and - the Happy sources are *not* in the tree (ie. fptools/happy does not exist) so to avoid the error, make one of these False :-) Happy 1.14 will be released at some point, since it's required to build the next major version of GHC (6.4).
ideally i would like the makefile for the library to be as simple as possible, but i guess it would be nice if it is compatable with the rest of the fptools stuff. for example, i noticed that the makefile makes two libraries (one with profiling), and also uses some flags to split up the object files in little bits. there are also some common "targets". so are these things described somewhere, so that if i was to write my own makefile, i could try and make it "compatable".
i wouldn't mind (in fact i would prefer to) reusing the "common" make structure as long as i know exactly what files i need to distribute with the library, and the make process does not do unneccessary things. for example, the monad library is written in haskell, and it only uses standard libraries. so the only requirement it has is a running version of ghc (and perhaps haddoc if the documentation is wanted). there is no need to do the whole "configure" thing, checking the size of integers, and what not :-) so can i achive this with the existsing make system, or should i write my own makefile(s)?
It is possible to use the fptools build system for shipping a separate library, but I won't claim that this is easy or well-tested. The build system has a setting called "STANDALONE_PACKAGE" for this purpose. So setting STANDALONE_PACKAGE=YES in your Makefile might help things along a bit. There isn't an easy way to do what you want to do. This is why the library infrastructure project was started :-) You can either use the fptools build system, which requires learning how it works, or you could write your own Makefiles from scratch, which requires re-writing a lot of stuff that the fptools system already does. There is some documentation for the fptools build system, but it doesn't cover packages in much detail: http://www.haskell.org/ghc/docs/latest/html/building/building-guide.html Cheers, Simon
participants (1)
-
Simon Marlow