
"Andres Loeh"
Hello again, (snip) Simon Says:
Yes, this change was made for consistency (someone else reported the breakage). I've also patched Cabal, so perhaps you're using a version from before the fix?
I must be doing something wrong, then. (snip) /usr/bin/ghc -odir dist/build/foo/foo-tmp/foo -hidir dist/build -c foo/foo.c
That's the wrong part.
/usr/bin/ghc -odir dist/build/foo/foo-tmp -hidir dist/build/foo/foo-tmp -o dist/build/foo/foo -hide-all-packages --make -i -i. -package base-1.0 dist/build/foo/foo-tmp/foo/foo.o Main.hs Chasing modules from: Main.hs Compiling Main ( Main.hs, dist/build/foo/foo-tmp/Main.o ) Linking ... gcc: dist/build/foo/foo-tmp/foo/foo.o: No such file or directory
The file foo.o is at dist/build/foo/foo-tmp/foo/foo/foo.o ...
Build.hs has this logic: odir | versionBranch ghc_vers >= [6,4,1] = pref | otherwise = pref `joinFileName` dirOf c -- ghc 6.4.1 fixed a bug in -odir handling -- for C compilations. which is good, but it only does that for libraries, not executables. Damn. This needs to get refactored to share code. I think I fixed this. Should be in the latest darcs and CVS. Andres, can you try this and let me know? peace, isaac