Cabal --builddir
Duncan Coutts
duncan.coutts at worc.ox.ac.uk
Tue Feb 24 17:51:43 EST 2009
On Tue, 2009-02-24 at 14:24 +0000, Neil Mitchell wrote:
> Hi,
>
> Cabal documents itself as having a --builddir command to change the
> placement of dist stuff, which is fantastic.
>
> However, running with GHC 6.8.3, Cabal 1.6.0.2, I get:
>
> cabal build --builddir=../../../_make/Tools/ext/haddock-0.9/dist
> setup.exe: Unrecognised flags:
> --builddir=../../../_make/Tools/ext/haddock-0.9/dist
>
> i.e. cabal accepts the --builddir command, but the setup that cabal
> builds doesn't. Why?
Hmm. Does your ghc-6.8 have Cabal-1.6.0.2 registered? If you built
Cabal-1.6.0.2 and cabal-install with ghc-6.10 but not also for 6.8 then
cabal-install will be forced to pick an older Cabal lib when compiling
Setup scripts for 6.8.
You can check what it is doing. Clean and run with -v3 and near the top
you should see something like:
Using external setup method with build-type Simple
Creating ./mydist/setup (and its parents)
Using Cabal library version 1.2.3.0
Using ./mydist/setup/setup.hs as setup script.
Setup script is out of date, compiling...
("/usr/local/bin/ghc-6.8.2",["-v","--make", ... etc
So if it's forced to pick an older Cabal lib version then the Setup will
not grok --builddir.
Really of course we should notice this earlier and complain that we
cannot use this new feature while using the older lib version. We should
file a ticket about that. In fact the whole issue with what the Setup
command line must accept is a tricky issue when it comes to working with
custom build systems.
Duncan
More information about the cabal-devel
mailing list