
Sorry for the delay in response - your message got caught in the
haskell.org mail filters.
Daniel Burrows
The first problem that I had is that the script to detect the current ghc version is wrong. It searches for the regular expression "^[0-9]*".
Thanks for suggesting "^[0-9]+" as an alternative. We have gone through several different regular expressions since the 2.04 release in an attempt to exclude strange newlines and pre-processor directives. Your solution might be the cleanest.
make[2]: *** No rule to make target `Foreign/ForeignPtr.hs', needed by `/home/daniel/debian-pkgs/NMU/hat/hat-2.04/debian/build-tools/targets/ix86-Linux/obj/hatlib/ghc6/Hat/Foreign/ForeignPtr.o'. Stop.
ForeignPtr is in Hat/Foreign/, not Foreign/. I dealt with this by copying the file into the correct directory, and I did the same with PreludeBasic.hx (which is in the root of the hatlib source directory but is expected to be in Hat/).
There is definitely something odd happening here. The version in Hat/Foreign/ForeignPtr.hs has already been transformed by hat-trans from Foreign/ForeignPtr.hs When you copied it back to that location, the Makefile then tried to transform it a second time, which is the reason for the subsequent error:
hat-trans: ./Hat/Hack.hx: openFile: does not exist
But I am not sure why the original file Foreign/ForeignPtr.hs was no longer in its original location. It is certainly included in the tarfile, and 'make clean' should not remove it. Perhaps you just need to start again with a freshly unpacked archive and the 'script/confhc-hat' fix? Regards, Malcolm