Hadrian: simple targets for building libraries and executables
authorAlp Mestanogullari <alpmestan@gmail.com>
Tue, 11 Dec 2018 18:10:03 +0000 (13:10 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 11 Dec 2018 18:10:04 +0000 (13:10 -0500)
commit7491cedb20d15a54e905205c51aea72a13ac73aa
treee6fe0373831f9eccd6aad2c2823a26486551b118
parent066d3989a45003d2caaf96fab90ec30b55a647ee
Hadrian: simple targets for building libraries and executables

This patch introduces (phony) build targets of the form

    (1) stage<N>:<lib>:<name>   (e.g: stage1:lib:Cabal)
    (2) stage<N>:<exe>:<name>   (e.g: stage2:exe:ghc-bin)

where (1) builds the given library with the stage N compiler and (2)
builds the given executable with the stage N-1 compiler. This patch may
be generating too many such targets but it's a first stab that we can
refine.

This fixes #15949.

Test Plan: hadrian/build.sh stage1:exe:ghc-bin

Reviewers: bgamari, snowleopard

Reviewed By: bgamari

Subscribers: rwbarton, carter

GHC Trac Issues: #15949

Differential Revision: https://phabricator.haskell.org/D5434
hadrian/README.md
hadrian/hadrian.cabal
hadrian/src/Rules.hs
hadrian/src/Rules/SimpleTargets.hs [new file with mode: 0644]