All installed Haskell prgms have an inplace and an installed version
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>
Mon, 18 Feb 2008 06:18:09 +0000 (06:18 +0000)
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>
Mon, 18 Feb 2008 06:18:09 +0000 (06:18 +0000)
commit3e2748164e3e2e2dc21ca511959671f0f5f2e37f
tree83bad04ee4581aa0ba12b7ef3d3a074f5334550b
parent82dc0d197b39b6462d1a19e4c556f7acdf376ee9
All installed Haskell prgms have an inplace and an installed version
- GHC installs a range of compiled Haskell programs in addition to the actual
  compiler.  To ensure that they all run on the platform targeted by the build
  (which may have different libraries installed than the build host), we need
  to make sure that all compiled Haskell code going into an install is build
  with the stage 1 compiler, not the bootstrap compiler.  Getting this right
  is especially important on the Mac to enable builds that work on Mac OS X
  versions that are older than the one performing the build.
- For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
  hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
  and a version for installation.  The former is build by the bootstrap
  compiler during the stage 1 build and the latter is build by the stage 1
  compiler during the stage 2 build.
- This is really very much as the setup for ghc itself, only that we don't use
  separate stage1/ and stage2/ build directories.  Instead, we clean before
  each build.  CAVEAT: This only works properly if invoked from the
  toplevel Makefile.
- Instead of UseStage1=YES (as used by the previous binary-dist-specific
  recompilation), we now use the same $(stage) variables as used for the
  compiler proper - to increase uniformity and to avoid extra conditionals for
  the install target.
Makefile
libraries/Makefile
mk/config.mk.in
utils/ghc-pkg/Makefile
utils/hasktags/Makefile
utils/hpc/Makefile
utils/hsc2hs/Makefile
utils/pwd/Makefile
utils/runghc/Makefile