
On Tue, Mar 21, 2006 at 11:14:28AM +0000, Malcolm Wallace
Sorry for the delay in response - your message got caught in the haskell.org mail filters.
Daniel Burrows
writes: 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?
Ah, my bad; I had missed some lines in debian/rules: rm -f src/hatlib/Foreign/ForeignPtr.hs rm -f src/hatlib/Foreign/ForeignPtr.hx I imagine this might explain my problem. :-) And indeed, when I pull those lines out, the compilation completes and the build script dies trying to run a target called "install-noinc". I guess maybe I'll look at what's up with that tomorrow. Daniel