[Hat] problem specifying location of imported module

Terrence Brannon bauhaus at metaperl.com
Sun Jul 3 14:33:37 EDT 2005


Hello everyeone,

My main file, ex6.hs, imports Pictures.hs:

import Pictures
import Data.Char

{- .. bunch of code then main...-}

main = putStrLn $ show (newHeight imgA imgB)


It compiled to an executable and runs just fine:

terry at Abulafia:~/haskell/craft-of-fp/ex$ hmake -i../Code ex6
/usr/bin/haskell-compiler    -i../Code   -o ex6 ../Code/Pictures.o
ex6.o
terry at Abulafia:~/haskell/craft-of-fp/ex$ ./ex6
32
terry at Abulafia:~/haskell/craft-of-fp/ex$



However, when I
attempt to create an executable traceable by Hat, I have some
problems:

terry at Abulafia:~/haskell/craft-of-fp/ex$ hmake -hat -i../Code ex6
hat-trans   -i../Code ../Code/Pictures.hs
Creating directories Hat Hat/.. Hat/../Code
Wrote Hat/../Code/Pictures.hs
/usr/bin/haskell-compiler     -i../Code  -c -package hat -o
../Code/Hat/Picture\s.o ../Code/Hat/Pictures.hs
ghc-6.2.2: error: directory portion of "../Code/Hat/Pictures.o" does
not exist \(used with "-o" option.)

Above it looks like the wrong directory was created. Hat created the
directory Hat/../Code when I think it should have created the
directory ../Code/Hat.

At any rate, I went ahead and made the directory that the error
complained did not exist and then re-ran, but still had errors:

terry at Abulafia:~/haskell/craft-of-fp/ex$ hmake -hat -i../Code ex6
hat-trans   -i../Code ../Code/Pictures.hs
Wrote Hat/../Code/Pictures.hs
/usr/bin/haskell-compiler     -i../Code  -c -package hat -o
../Code/Hat/Picture\s.o ../Code/Hat/Pictures.hs
ghc-6.2.2: file `../Code/Hat/Pictures.hs' does not exist
terry at Abulafia:~/haskell/craft-of-fp/ex$


Switching to absolute paths for the -i flag did not help and using
-d/tmp to force all .o files to be created in one place did not help
either. 

Any input on getting my entire program traceable is appreciated. If
you care to look at ex6.hs or Pictures.hs, my entire haskell directory
tree can be browsed by the web here:

    http://www.hcoop.net/~terry/haskell/craft-of-fp

ex6.hs is here:

    http://www.hcoop.net/~terry/haskell/craft-of-fp/ex/ex6.hs

and Pictures.hs is here:

    http://www.hcoop.net/~terry/haskell/craft-of-fp/ex/Code/Pictures.hs


========

As an afterthought, I tried making my project from the directory above
both the main file and the imported file, but that failed as well:

terry at Abulafia:~/haskell/craft-of-fp$ hmake -iCode ex/ex6
terry at Abulafia:~/haskell/craft-of-fp$ ex/ex6
32
terry at Abulafia:~/haskell/craft-of-fp$ hmake -hat -iCode ex/ex6
hat-trans   -iCode Code/Pictures.hs
Creating directories Hat Hat/Code
Wrote Hat/Code/Pictures.hs
/usr/bin/haskell-compiler     -iCode  -c -package hat -o Code/Hat/Pictures.o Code/Hat/Pictures.hs
ghc-6.2.2: file `Code/Hat/Pictures.hs' does not exist
terry at Abulafia:~/haskell/craft-of-fp$ 



Regards,
-- 
	Carter's Compass: I know I'm on the right track when,
	   by deleting something, I'm adding functionality.



More information about the Hat mailing list