creating packages

S.D.Mechveliani mechvel@math.botik.ru
Tue, 29 May 2001 12:44:42 +0400


Who could, please, consult on the package setting in  ghc-5.00.1
?
Let the project  foo  consist of the files   /t/A.hs
                                             /t/t1/B.hs,
B  import  A,
the user work in  /u/  and exploit  foo  in compiling, linking
and interpreting.

Everything seems to work below, except  `ghci -package' 
and                                     `ghc -c -package-name foo'

(ghc-5.00.1 compiled from source for Linux, i386-unknown). 
What I do:

-------------------------------------------------
* apply   ghc --make B;
* move all  *.o  *.hi  files to   /t/export/ ;
* command  cd /t/export/
           ar -q libHSfoo.a *.o    (creating a library)

* create a file  p.txt  containing

  Package {name            = "foo",
           import_dirs     = ["/t/export" ],
           source_dirs     = [],
           library_dirs    = ["/t/export" ],
           hs_libraries    = ["HSfoo"],
           extra_libraries = [],
           include_dirs    = [],    c_includes      = [],
           package_deps    = [],    extra_ghc_opts  = [],
           extra_cc_opts   = [],    extra_ld_opts   = []
          }
  and apply                       ghc-pkg -a < p.txt
  adding a package  foo  to  ghc.
-------------------------------------------------

Then, for the user module   /u/Main.hs
importing  B,
the user commands    cd /u;   ghc -c -package foo Main.hs
                              ghc -o run Main.o -package foo
- and it works.
But              ghci -package foo
yields
  Loading package foo ... can't find .o or .so/.DLL for: HSfoo 
  (libHSfoo.so: cannot open shared object file: No such file or directory)

Then, I added          /t/export/libHSdocon.so,  
but it does not help.

Also             ghc -c -package-name foo C.hs
does not work.
May              ghc -c -package-name 

do automatically all this mess with moving .o, .hi files and 
archivating?

Thank you in advance for the help.

-----------------
Serge Mechveliani
mechvel@botik.ru