• Edward Z. Yang's avatar
    One-component configure, fixes #2802. · a090a494
    Edward Z. Yang authored
    Described in: https://github.com/ghc-proposals/ghc-proposals/pull/4
    ./Setup configure now takes an argument to specify a specific
    component name that should solely be configured.
    Most of the gyrations in Configure are all about making it so that
    we can feed in internal dependencies via --dependency.
    I dropped the package name match sanity check to handle convenience
    library package name munging.  Consider an internal library named
    'q' in package 'p'.  When we install it to the package database,
    we munged the package name into 'z-p-z-q', so that it doesn't
    conflict with the actual package named 'q'.  Now consider when
    we feed it in with --dependency q=p-0.1-hash-q.  Previously,
    Cabal checked that the 'q' in --dependency matched the package
    name in the database... which it doesn't. So I dropped the check.
    I also had to make register/copy unconditionally install internal
    libraries; otherwise you can't refer to them from later builds.
    Also a miscellaneous refactor: convenience libraries are printed with a
    "header" stanza now (not really a stanza header).
    Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>