Multiple search paths for HPC report generation (fixes #1049).
Use settings from ~/.cabal/config when creating a sandbox.

This way, the user won't be required to set things like 'split-objs'
individually for each sandbox.
s/darcs/git/
Add a cross-platform setenv implementation.

This is a simplified version of Simon Hengel's patch for the 'base' library [1]
(without unsetEnv and the unix dependency). Tested on Windows and Linux.

[1] http://thread.gmane.org/gmane.comp.lang.haskell.libraries/18001
Make sandbox commands temporarily add .cabal-sandbox/bin to $PATH.

Fixes #1120.
Clarify the error message a bit.

Fixes #1007.
Revert "Clarify the error message a bit."

This reverts commit af86c762a138d8843521f609ea0b92c123dc442f.
Merge branch 'sandbox-setenv' of https://github.com/23Skidoo/cabal
Fix a typo in Cabal/README
Merge pull request #1128 from BardurArantsson/typo-fix-1

Fix a typo in Cabal/README
Show '--config-file' in 'cabal help' output.

Fixes #1113.
Typo.
Keep the full build component dependency graph

Plus add functions for finding all the deps of one or more
components, in dependency order. This will be useful for
building individual targets, e.g. cabal build foo.
New module for handling build targets given on the command line

This will be used for the new "cabal build [target]" feature and
similarly for "cabal repl [target]". That is we can actually specify
what we want to build, like a proper build system.

Targets can be components, modules or files. We go to some effort to
allow targets to be specified in a short convenient form. We allow
case insensitive matching. We only complain when the given form is
ambiguous (and note that we don't let the case insensitive matching
add artificial ambiguity). If it is ambiguous we report the
non-ambigious qualified forms of the targets it could be, e.g.:

  Ambiguous build target 'darcs'. It could be:
  exe:darcs (component)
  lib:darcs (component)

We note the kind of target here (component, module, file) since it's
possible to have ambiguities between them, like a component called
'Foo' and a module 'Foo' if the user entered 'foo'.
Further tweaks to the LocalBuildInfo component info utils

Needed to support the "cabal build [target]" feature.
Also move an existing util function so we can reuse it.
Add 'cabal build [target]' feature

Allows users to specify what targets to build. It builds the given
target and the dependent components.

Currently only component targets are fully supported. Currently using
an individual module or file target will give a warning and it will
build the whole component the module or file belongs to.
Do not link with threaded RTS on ARM.

GHC on ARM doesn't have a threaded RTS, which makes it impossible to build
cabal-install without editing the source by hand (see #1129). This patch makes
cabal-install compile out of the box on ARM.
Merge pull request #1132 from 23Skidoo/no-threaded

Do not link with threaded RTS on ARM.
Merge pull request #1134 from 23Skidoo/show-config-file

Show '--config-file' in 'cabal help' output.
Don't pass unsupported flags to setups built with old Cabal versions.

We must not pass '--disable-benchmarks' to setup scripts built with Cabal <
1.14; the same is also true for '--disable-tests' and Cabal < 1.10.

Fixes #932 and #1004.

Without this patch:

    $ cabal install -w /path/to/ghc-7.2.1/bin/ghc syb
    [...]
    unrecognized option `--disable-benchmarks'
    Failed to install syb-0.3.7

With this patch:

    $ cabal install -w /path/to/ghc-7.2.1/bin/ghc syb
    [...]
    Registering syb-0.3.7...
    Installed syb-0.3.7