
Am Samstag 28 März 2009 18:46:39 schrieb Michael Mossey:
I tried the -v, but I seem to have fixed my problem. It's working now. I don't know what I changed. Maybe I typed the paths wrong before. Anyway, it does seem to accept (on Windows) paths with backslashes and it accepts spaces in the path if you put quotes around it.
I'm still interested, though, in how one "installs" packages or modules so they don't need to be on the path specified by -i. I notice there is a file called 'package.conf', which seems related to this.
Use Cabal. a) module A.B.C should be in file A/B/C.hs, where A is a direct subdirectory of the top of your source-tree. b) above your source tree, place the file packagename.cabal, where you tell Cabal the name of the package, its version number, licence, build depends, exposed modules and other stuff (read http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program and http://www.haskell.org/ghc/docs/latest/html/Cabal/authors.html for details) and a Setup.hs, which can often consist of the two lines import Distribution.Simple main = defaultMain If you want to install a package written by somebody else, that should already be present in the bundle you got. Then runghc ./Setup.(l)hs configure with the appropriate options, whether to allow dependencies to be satisfied from the user package database, whether to install per user or globally, install prefix, whether to build the library also for profiling, ... runghc ./Setup.hs build optionally runghc ./Setup.hs haddock runghc ./Setup.hs install That registers the package in the package database, and from then on, it will be automatically found by ghc --make. If you have the cabal executable, it's even easier, just cabal install packagename if it's somebody else's package, that automatically takes care of its (Haskell) dependencies, downloads and installs them if necessary; or simply cabal install in the appropriate directory if it's a package you have just written.